2014/02/12

linux cron

何も考えずにcrontabを使っているが。。。


■cronサービス
/etc/rc.d/init.d/crond status

■cronの設定ファイル

cronの設定ファイルは、以下の表の通りです。crond は、毎分、以下の設定ファイルの内容に変更がないかを確認し、変更があった場合には、それを反映して実行します。

/var/spool/cron/user    全ユーザ    ユーザの自動タスク設定ファイル
===>このファイルの作成/編集は、 'crontab -e' とコマンドを実行して行ないます。

/etc/crontab    root    毎時、毎日、毎月、毎週の自動タスクのメイン設定ファイル
/etc/cron.hourly    root    毎時実行される自動タスク設定ファイルを置くディレクトリ
/etc/cron.daily    root    毎日実行される自動タスク設定ファイルを置くディレクトリ
/etc/cron.monthly    root    毎月実行される自動タスク設定ファイルを置くディレクトリ
/etc/cron.weekly    root    毎週実行される自動タスク設定ファイルを置くディレクトリ
/etc/cron.d    root    上記以外の自動タスク設定ファイルを置くディレクトリ

分    0~59
時    0~23
日    1~31
月    1~12 or jan~dec
曜日    0~7 [0,7は日曜日] or sun~sat
コマンド    有効なコマンドを記述します。空白を含むことも可能ですが、標準のBourne Shellの書式に従って記述します。


リスト     0,15,30,45     分フィールドで指定した場合、15分に一度処理を実行します。
範囲     1-5     曜日フィールドで指定した場合、月曜日~金曜日に処理を実行します。
共存     1,3,7-9     時間フィールドで指定した場合、1時、3時、7時、8時、9時に処理を実行します。
間隔値     1-5/2     時間フィールドで指定した場合、1時、3時、5時に処理を実行します。なお、間隔値は、「/」の後ろに指定した値の間隔で処理を実行します。


■「/etc/crontab」
通常、このファイルには、以下のように、「cron.monthly」、「cron.weekly」、「cron.daily」、「cron.hourly」配下のファイルが、指定時間ごとに実行されるように設定されています。


■アクセス制御
vi /etc/cron.allow


■ansibleでcron 削除
ansible ** -s -i hosts -m command -a "touch /tmp/mycron"
ansible ** -s -i hosts -m command -a "crontab /tmp/mycron"
ansible ** -s -i hosts -m command -a "rm /tmp/mycron"