アフィリエイト広告を利用しています

2017年07月22日

cronの設定

Linuxの管理ツールを使用せずに手動で設定することになった。

設定状況確認
 # crontab -l
 # crontab -u [ユーザ名] -l

設定ファイル確認
 # cat /etc/crontab

実行ログ表示
 # tail -f /var/log/cron
 # tail -n N /var/log/cron
   -f はログの監視を継続、ーn で表示行数を指定でき、Nがその行数

エラーログを残す
 30 * * * * 実行ファイル名 >> エラーログファイル 2>&1
 末尾の 2>&1 をつけたらエラー情報がファイルに書き込まれるようになった。

以下のように設定した。毎時、30分、35分に実行。1行目はphpのプログラム、2行目はシェルスクリプト
3行目はコメント行の例。先頭に#を書くとコメントとなる。
 30 * * * * /usr/bin/php 実行ファイル名 >> エラーログファイル 2>&1
 35 * * * * シェルスクリプト名 >> エラーログファイル 2>&1
# 35 * * * * シェルスクリプト名 >> エラーログファイル 2>&1

参考
http://www.server-memo.net/tips/crontabfile.html

crontab -e で登録した内容は /etc/crontab には書き込まれない。/var/spool/cron/[ユーザ名] に書き込まれる。

参考
http://qiita.com/takahashi-kazuki/items/77d669d4414c6ec185f9

思わぬエラー

cron設定は終了したつもりでいたら、動作しない。

 30 * * * * /usr/bin/php 実行ファイル名 >> エラーログファイル 2>&1
 30 * * * * シェルスクリプト名 >> エラーログファイル 2>&1

2つのファイルのオーナーが違っていたので、同じエラーログファイルにはアクセスできなくなっていた。

エラーログファイルをPHP用とシェル用に分けて、解決した。

 30 * * * * /usr/bin/php 実行ファイル名 >> /tmp/error.log 2>&1
 30 * * * * シェルスクリプト名 >> /tmp/error_sh.log 2>&1


動作エラーの原因は尽きることがない!。

 30 * * * * /usr/bin/php 実行ファイル名 >> エラーログファイル 2>&1

とはかけないので、

 30 * * * * シェルスクリプト名 >> エラーログファイル 2>&1

動作した。

タグ:crontab

posted by db-engineer at 05:02 | Comment(0) | Linux

この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/6475465
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
検索
最新記事
カテゴリーアーカイブ
プロフィール
db-engineerさんの画像
db-engineer
プロフィール
タグクラウド