2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Linux】cronからスクリプトを実行できない事象の調査手順

Last updated at Posted at 2022-05-15

はじめに

自宅サーバにてcron設定すると良く詰まるので調査手順を纏めました!
自分の見直し用でもあるので今後もエラー対応時に随時更新します!

前提情報

OS:ubuntu 20.04 LTS

  • 「cron → bash → python」 の順で実行させたい
  • bashの手動実行は正常に稼働する
  • cronからの定期実行は実行されない

cronを使用する注意点

  • 環境変数を使う場合は配慮
  • 実行ユーザを配慮
  • スクリプトも含めフルパスで記述
  • スペルミス

cron.log出力

デフォルト設定ではcron.logは出力されないため下記の設定ファイルを編集しログを出力させる。

ターミナル
$ cd /etc/rsyslog.d
$ sudo vi 50-default.conf
50-default.conf
(変更前)
#cron.*                          /var/log/cron.log
(変更後)
cron.*                          /var/log/cron.log

私の自宅サーバ環境では10行目にcron設定項目がありました。
cron設定の反映は下記コマンドでrsyslogを再起動時に行われます。

ターミナル
$ sudo systemctl restart rsyslog

cron.logは下記コマンドにて確認できます。

ターミナル
(ログ全数出力)
$ cat /var/log/cron.log

(最新10件の出力)
$ tail /var/log/cron.log

参考サイト
https://www.server-memo.net/ubuntu/ubuntu_cron_log.html

ログレベルの調整

cron.logを出力させるだけでは、メッセージ全件が出力されません。
そのため、エラーメッセージを出力するように下記の通り設定しログレベルを引き上げます。

ターミナル
$ sudo vi /etc/default/cron
/etc/default/cron
(最終行を追加)
# This file has been deprecated. Please add custom options for cron using
# $ systemctl edit cron.service
# or
# $ systemctl edit --full cron.service
EXTRA_OPTS='-L 15' #追加

設定反映は下記コマンドでcronを再起動します。

ターミナル
$ sudo /etc/init.d/cron restart

エラー時は下記のようにcron.logに表示されます。
2行目のExit Codeが確認できたらExit Codeでググります。

/var/log/cron.log (抜粋)
May 14 21:00:01 ubuntu CRON[23196]: (root) CMD ([23197] <<実行コマンド>>)
May 14 21:00:10 ubuntu CRON[23196]: (CRON) error (grandchild #23197 failed with exit status 1)
May 14 21:00:10 ubuntu CRON[23196]: (root) MAIL (mailed 1495 bytes of output but got status 0x004b from MTA#012)
May 14 21:00:10 ubuntu CRON[23196]: (root) END ([23197] <<実行コマンド>>)

スクリプトの標準出力

cronに設定しているスクリプトの標準エラーを出力させるように設定します。

cron
* * * * * sudo sh /src/sample.sh >> /tmp/log/sample.log 2>&1

まとめ

何時間もエラー調査して結果的にスペルミスだったこともあるので、今一度スペルを確認すること!!!!!
(自戒の意味を込めて)

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?