cronの設定(Linux)

cronの設定の仕方は、基本的にはAIXとほぼ同じ。
詳しくは以下のページ参照。
http://g-network.boo.jp/wiki/2017/03/post-259/
 
AIXのcronとは異なる部分について以下に記載する。
 
 
・全ユーザのcron設定の格納場所
/var/spool/cron/(ユーザ名のファイル)
 
・crontabコマンドの書式
crontab [-u ユーザ名] [-e | -l] 
  -e 修正する
  -l  設定内容を表示する
 
・cronの結果をメールで飛ばさないようにする方法
cronには実行した処理に出力があった場合にメールを送信する機能がデフォルトで入っている。そのため5分おきに実行し続けるような処理の場合にメールの容量がどんどん増えてしまうことがあるので、メールを飛ばさないようにすることが多い。

メールを飛ばさないようにする方法には以下の3つがある。
①各cronの設定行に、> /dev/null 2>&1 をつけて何も出力しないようにする
 
②設定ファイルのMAILTOを「MAILTO=””」にする。設定する箇所は以下の通り複数ある。
 /etc/crontab
 /etc/cron.d/0hourly
 /var/spool/cron/(ユーザ名)
 
③crondの設定を変える
 /etc/sysconfig/crondのCRONDARGSを、「CRONDARGS=”-m off”」とする。
 設定後にcrondを再起動する必要がある。
  service crond restart
 
※ちなみにメールが飛ばないようにpostfixのデーモン停止しておけばいいのではと思うかもしれないが、そうしたとしてもcrondはかまわずmailを投げてしまう。その結果、/var/spool/postfix/maildropにキューのファイルがたまり続けてしまう。放っておくとそのうちinodeが枯渇して、そのファイルシステムでファイルが作れなくなる(経験済みw)
 
・cron設定のリストア
/var/spool/cron/(ユーザ名)のファイルのバックアップを取得してあるならば、以下のコマンドで簡単にリストアできる。
 
crontab (バックアップファイルのパス)
 
これで設定は元に戻り、さらに即時反映される。

コメント

タイトルとURLをコピーしました