LoginSignup
27
20

More than 3 years have passed since last update.

cronを実行したログを出力する設定

Last updated at Posted at 2019-12-19

はじめに

cronを実行したログを、ログファイルに出力する設定を行った。

環境

Ubuntu 16.04.5 LTS

手順

このファイルを開く。

vi /etc/rsyslog.d/50-default.conf

デフォルトで、この行がコメントになっている筈なので、コメントを外して更新する。

cron.*                         /var/log/cron.log

しかし、ReadOnlyになっていたため更新ができず。書き込みできるように、パーミッションを変更する。

sudo chmod 646 /etc/rsyslog.d/50-default.conf
(変更前) -rw-r--r--
(変更後) -rw-r--rw-

cronのログは、rsyslogで出力する仕組みになっている。上記の設定を有効にするために、rsyslogのサービスを再起動する必要がある。

service rsyslog restart

サービスが起動されている事を念のために確認しておく。

service --status-all | grep rsyslog

ログはここに出力されるようになります。cronのログを、rsyslogが、書き込んでくれます。最初のログが、cron.logに書き込まれるタイミングで、cron.logが新規作成されます。

/var/log/cron.log

参考

cronのログを、rsyslogで書き出すのではなく、cronで実行されたコマンドを、標準出力したログにする

crontab -eで、下記の2行を追加する。

1 12 * * * cd $HOME && date "+\%Y/\%m/\%d \%H:\%M:\%S" >> ./syori01.log
2 12 * * * cd $HOME && /usr/local/rbenv/shims/ruby syori01.rb >> ./syori01.log

解説

12時01分に、システム日付と時間を、syori01.logに書き込み、続けて、12時02分に、syori01.rbというrubyのブログラムを実行して、syori01.logに標準出力します。注意点は、cronに日付を指定する場合、%をエスケープしないと上手くいなかいという点です。

・rubyが入っている場所は、which rubyをして見つけます。
・当処理は、Homeディレクトリで実行しています。

参考

27
20
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
27
20