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