linuxBean14.04(188)cronの実行ログ、cronで実行させたコマンド出力、の取得方法

2018-11-30

旧ブログ

t f B! P L
cronの動作ログも、cronで実行したコマンドの出力もデフォルトではどこにも記録されていません。cronで実行しているはずのコマンドがうんともすんともしないときにデバッグするために、これらを記録するように変更しました。

前の関連記事:linuxBean14.04(187)ローカルフォルダからGoogleフォトにアップロードする方法


cronの実行ログをとる


Where is the cron / crontab log? - Ask Ubuntu

ここにcronのログの取り方が書いてありました。

/etc/rsyslog.dにある50-default.confをrootで開きます。
cron.*    /var/log/cron.log
cron.*で始まる行が#でコメントアウトされていれば、#を外します。

sudo service rsyslog restart

rsyslogを再起動します。

これでcornのログが/var/log/cron.logに出力されます。

試しにcrontab -lとしてみると次のようにログが出力されます。

Nov 30 22:00:18 pq-VirtualBox crontab[2525]: (pq) LIST (pq)

pqは実行したユーザー名、LISTがcronのコマンドに該当します。

Nov 30 22:44:04 pq-VirtualBox crontab[6589]: (pq) REPLACE (pq)

crontab cron.confでジョブを登録するとREPLACEがログに残ります。

Nov 30 22:50:01 pq-VirtualBox CRON[20306]: (pq) CMD (/media/sf__VirtualBox/\347\224\273\345\203\217\343\202\265\343\203\274\343\203\220\343\203\274\347\224\250/togooglephoto.sh)

crontabで登録したジョブが実行されるとCMDと実行したcronコマンドがログに残ります。

パスにある日本語はバイト列に変換されて表示されます。

Nov 30 22:50:03 pq-VirtualBox CRON[20305]: (CRON) info (No MTA installed, discarding output)

CMDの行の次には、MTAがインストールされていないので出力を破棄しました、とでてきます。

これは出力結果をメールで送信する設計になっているのに、メール転送ソフト(MTA)がインストールされていないのが原因です("(CRON) info (No MTA installed, discarding output)" error in the syslog - Ask Ubuntu)。

しかし、出力結果は次にやるようにローカルファイルにリダイレクトしたほうが簡単です。

cronで実行したコマンドの出力を取得する


*/2 * * * * pwd >> ~/cronjob.log 2>&1

これをcrontabで登録すると2分おきに、pwdを実行し、その標準エラー出力と標準出力を~/cronjob.logファイルに追記していきます。

Nov 30 23:48:01 pq-VirtualBox CRON[23952]: (pq) CMD (pwd >> ~/cronjob.log 2>&1)

/var/log/cron.logにはこのように記録され、No MTA installed, discarding outputの行はでてきません。

参考にしたサイト


Where is the cron / crontab log? - Ask Ubuntu
cronの実行ログ、cronで実行させたコマンド出力、の取得方法の回答があります。

"(CRON) info (No MTA installed, discarding output)" error in the syslog - Ask Ubuntu
cronで実行させたコマンドをリダイレクトしていないときに残るcronのログ。

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ