linuxに組み込まれているcronプロセスがこれらの要件を実現してくれます。cronはshellスクリプトと組み合わせれば、非常に複雑なコマンドでも問題ありません。

cron紹介

よく使用するcrontabコマンドはcron tableの略で、cronの設定ファイルであり、ジョブリストとも呼ばれます。関連する設定ファイルは以下のフォルダ内にあります。

  • /var/spool/cron/ ディレクトリには、rootを含む各ユーザーのcrontabタスクが保存されており、各タスクは作成者の名前で命名されています。
  • /etc/crontab このファイルは各種の管理・保守タスクのスケジュールを担当します。
  • /etc/cron.d/ このディレクトリは、実行するcrontabファイルやスクリプトを保存するために使用します。
  • スクリプトを/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthlyディレクトリに置いて、毎時/毎日/毎週/毎月実行することもできます。

crontabの使い方

よく使うコマンドは以下の通りです:

crontab [-u username]    //省略用户表表示操作当前用户的crontab
    -e      (编辑工作表)
    -l      (列出工作表里的命令)
    -r      (删除工作作)

次を使用しますcrontab -e現在のユーザーのワークシート編集に入ります。一般的なvimインターフェースです。各行が1つのコマンドです。

crontabのコマンド構成は 時間+アクション で、その時間には分、時、日、月、週の5種類があり、演算子には

  • * 値の範囲内のすべての数字
  • /数字をいくつおきに
  • -XからZまで
  • ,個別の数字

サンプル

サンプル1:毎1分ごとにmyCommandを実行

* * * * * myCommand

サンプル2:毎時3分と15分に実行

3,15 * * * * myCommand

サンプル3:午前8時から11時までの3分と15分に実行

3,15 8-11 * * * myCommand

サンプル4:2日ごとの午前8時から11時までの3分と15分に実行

3,15 8-11 */2  *  * myCommand

サンプル5:毎週月曜日の午前8時から11時までの3分と15分に実行

3,15 8-11 * * 1 myCommand

サンプル6:毎晩21:30にsmbを再起動

30 21 * * * /etc/init.d/smb restart

サンプル7:毎月1日、10日、22日の4:45にsmbを再起動

45 4 1,10,22 * * /etc/init.d/smb restart

サンプル8:毎週土曜日と日曜日の1:10にsmbを再起動

10 1 * * 6,0 /etc/init.d/smb restart

サンプル9:毎日18:00から23:00までの間、30分ごとにsmbを再起動

0,30 18-23 * * * /etc/init.d/smb restart

サンプル10:毎週土曜日の午後11:00にsmbを再起動

0 23 * * 6 /etc/init.d/smb restart

サンプル11:毎時smbを再起動

0 */1 * * * /etc/init.d/smb restart

サンプル12:午後11時から午前7時までの間、1時間ごとにsmbを再起動

0 23-7/1 * * * /etc/init.d/smb restart