linux note
     linuxのコマンドがカテゴリ別の一覧で確認できます。



 

Linux Note(トップページ) > システム管理 > プログラムの実行予約 > crontab コマンドによる自動実行







[Note] crontab コマンドによる自動実行

システム管理においては、バックアップ等の定期的な作業は自動的に実行されるように設定(予約)しておくことが必要です。これは人間の手間(コスト)を下げるのみならず、ヒューマンエラーをなくすことで正確性を期すこともできる為、一石二鳥と思われます。
定期的にプログラム(正確にはlinux上のジョブ)を実行するには、crondというデーモンを用います。多くのディストリビューションにおいてデフォルトで使用できるデーモンとなっております。
また、このcrondのスケジューリングを管理するには「crontab」コマンドを用います。

cronでジョブの自動実行を指定するには、以下のように「crontab」コマンドにオプション「-e」を付けて、crontabファイルを編集します。

(オプション「-l」にて設定されているcronジョブの一覧の表示
 オプション「-r」にて設定されているcronジョブを全て削除)

 $ crontab -e

そうしますと、以下のように viエディタ などのデフォルトで設定されているエディタにてcrontabファイルが開かれます。

 ~
 ~
 ~
 ・・・

 ”/tmp/crontab.XXXX2d5aUQ” 0L, 0C

そのファイルを以下のように編集して保存します。

 #WeeklyBK
 #m h day mon sun-sat command
 0 23 * * 6   /usr/loca/bin/weeklybk  
 ・・・

 ”/tmp/crontab.XXXX2d5aUQ” 5L, 1C

(ちなみに viで保存して終了するには[Esc]→「:wq」→「Enter」になります。)

上記の#があるコメント行のうち「#m h day mon sun-sat command」は「分 時 日 月 曜日 子コマンドのフルパス」を意味します。日本人の感覚では、○月×日△時□分という順にしてしまいますが、これを逆から並べて指定します。そして、その後に「曜日」「コマンド」を指定する形になります。

ですので、上記の例ですと、月に関わらず(*)、日にちに関わらず(*)、土曜日(6)の、23時0分にバックアップ用のプログラム(ジョブ)を実行させるということになります。つまり、毎週土曜日の23時にバックアップ作業が自動実行されるということです。

時刻の指定の仕方の特殊なケースとしては、上記の23時を12時と23時としたい場合は「12,23」とすることで両時刻に実行されます。
また、土曜日に3時間おきに実行したい場合は「23」を「*/3」とします。
さらに14時~23時の3時間ごとであれば「23」を「14-23/5」にします。これにより14時、17時、20時、23時に実行されます。

基本的な実行時の指定は以下のようになっています。


項目
指定の方法
0~59の整数
0~59の整数
1~31の整数
1~12の整数、またはjan~decまでの文字列
曜日
0~7の整数(0、7が日曜、1:月曜~6:土曜)
コマンド
実行させたいコマンド




[ カテゴリ一覧 ]

 |  エディタ  |  システム管理  |  テキスト操作  |  ファイルシステム  |  ファイル操作  | 
 |  ファイル管理  |  ユーザーやグループの管理  |