【cron】指定時間にPHPプログラムを実行する。設定覚え書き(ドライブネットワーク)

結構、cronというかSSHでの設定は嫌ですね。
自社サーバーならまだいいけど、クライアントのサーバーを設定するのは結構気をつけるし疲れます。

クライアントのサーバー「Drive Network(ドライブネットワーク)」ですが、設定方法をメモしておきます。
他のサーバーは、管理画面がありそこでcron設定が出来ますが、管理画面がなくSSHのみでの設定の場合に役立つかもしれません。

サーバー:FreeBSD Linuxなら同じかと。
当方、Mac OS X Lionのターミナルを使って作業。OSXならどのバージョンでも大丈夫。

1)SSH接続
UNIXコマンド 「ssh システムアカウント名@サイトドメイン」を入力します。
Drive Networkの場合は、csからはじまる番号がシステムアカウント名となるので、「ssh cs123456789@test.com」という感じで。
Drive Networkは、アカウントを複数作れますが「admin」のアカウントを使用してください。
※admin@〜のアカウントのシステムアカウント名を使って下さいね。 分からなければ、Drive Networkのオンラインヘルプページ→アカウント情報一覧で、システムアカウント名とパスワードなど確認できます。

ssh〜コマンドを入力するとパスワードの入力が求められるので、admin@〜のパスワードを入力して下さい。
※パスワードは、表示されません。

パスワードが正しく通ると、下記赤枠のメッセージが表示されます。

上記の「0 0 * * 1 /usr/local/bin/php /home/cs123456789/test.com/htdocs/test/test.php」のような一行は、指示コマンドです。

Drive Networkは、「/home/契約アカウント番号/ドメイン/htdocs/〜」がファイル名の指示になります。ファイル名は、homeディレクトリからの相対パスで書いて下さい。

2)あとは、設定だけです。
crontab -l で設定内容の確認。
crontab -r で設定削除。削除するかと聞かれたら、「y」か「n」を入力で削除できます。
crontab -e で編集。viというエディタがターミナル内でたちあがるので、そこで操作。

3)基本的なviの操作は以下のような感じです。

crontab -e

まず出てきた画面が以下です。この画面で入力された文字を消す場合は、矢印キーで移動して「x」キーで削除。

新規の場合は、何も入力されていないので、
「esc」キーを押して、viを入力モードに変えます。「esc」押すだけです。
挿入コマンド「i」を押します。これはコマンドなので、実際に「i」は入力されません。
その後、例えば「0 0 * * 1 /usr/local/bin/php /home/cs123456789/test.com/htdocs/test/test.php」とペーストすればOK。
ペーストは出来るので、あらかじめテキストエディットなどでコマンドを書いておくと便利です。
cronの指示は、改行せずに一行で書きます。複数指示がある場合は、2行目、3行目と書きます。

今回、cronの指示に「/usr/local/bin/php」と入れてあるのは、その後に続く「/home/cs123456789/test.com/htdocs/test/test.php」 がPHPのプログラムだからです。
指定時間に、自動で指定のファイルのPHPプログラムを実行するという事です。
※指示は、必ず半角スペースで区切って入力して下さい。

入力が終わったら、再度「esc」を押し、コマンドモードに戻し、「:w」で保存。「:q」でviを終了です。
ちなみに、保存せず戻りたい場合は、「:q!」と押せば良いです。
入力している時に間違えたら、一旦「esc」でコマンドモードに戻る「x」を押し、また「esc」を押し入力モードに戻って下さいね。

終わったら、確認のため、「crontab -l」で確認して下さい。

4)最後に、cronの書き方です。

上記3)をサンプルに説明します。

*□*□*□*□*□/usr/local/bin/php□/home/cs123456789/test.com/htdocs/test/test.php
※□は、半角スペースの意味です。

最初の5つの「*」を置き換えます。
5つの「*」は左から1つずつ意味があり、
分(0-59) 時(1-24) 日(1-31) 月(1-12) 曜日(0-7) となっています。

30 9 * * * で9時半に実行
*/3 * * * * で3分おきに実行
0 */1 * * *  で1時間おきに実行
0 0 * * 1 で月曜日の0時0分に実行

などなど

ターミナルは、最後「exit」と入力し終了して下さい。

 

カテゴリー:PHP, Tipsコメント(2)

コメント

  • こんにちは。
    参考にさせていただいており、ありがとうございます。
    私もドライブネットワークの共用レンタルサーバーを利用しています。
    参考にさせていただいたとおり、設定しましたが動きません。
    14 21 * * * /usr/local/bin/php /home/cs12345/ドメイン/htdocs/cgi-bin/**.php

    動きましたでしょうか?

    2012年1月26日 9:23 PM | 関谷

  • ご丁寧にご教授いただきありがとうございました。
    よく調べてみると、cron自体は動いていたのですが
    実行したphpファイル内にエラーがありました。。。
    解決できました。ありがとうございます。

    2012年1月27日 8:35 PM | 関谷

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントフィード

トラックバックURL: https://takanix.com/wp-trackback.php?p=267