強力なcrontab
2193 ワード
Unix-likeシステムには、
プロファイル システムレベル
フォーマットの設定
環境変数は、プロファイルで定義できます.
コンフィギュレーション・ファイルは、行ごとに1つのタスクを定義します.各列の間に少なくとも1つの空白文字で区切られます.
時間のフォーマットは通常5列で、それぞれ分:0-59 時間:0-23 日付:0-31 月:0-12または名前 週間:0-7または名前 各フィールドには、次のような表示方法があります.時間範囲は、 の複数の時点または範囲は、 時間間隔は時間範囲の後ろに書いてあり、
また、
例は次のとおりです.
遭遇する可能性のある穴 crontabは正しく構成されていますが、実行されません.注意システムのcronサービスが起動しているかどうか: システムグローバル構成 スクリプトの実行に失敗し、コマンドが見つかりませんでした.crontabがタスクを実行する場合、デフォルトでは環境変数はありません.環境変数を構成で明示的に指定するか、絶対パスを使用してコマンドを実行できます.
crontab
のタイミングタスクサービスがあります.最近では、起動自動起動サービスや定期的に証明書をリフレッシュするのに便利です.プロファイル
#
$ crontab [-u user] {-e | -l | -r}
# `-e` ,`-l` ,`-r`
#
$ vim /etc/crontab
crontab -e
を使用してユーザーレベルのプロファイルを変更し、編集を終了すると自動的に再ロードされ、すぐに有効になり、/var/spool/cron/crontabs/$username
に保存されます(システムによって変更される場合があります)./etc/crontab
は、通常cronサービスによって毎分1回読み出されるため、システムを再起動する必要がなく、リアルタイムで有効になります.フォーマットの設定
環境変数は、プロファイルで定義できます.
PATH=/usr/bin:/usr/local/bin
コンフィギュレーション・ファイルは、行ごとに1つのタスクを定義します.各列の間に少なくとも1つの空白文字で区切られます.
#
[ ...]
# `/etc/crontab` `user`
[ ...]
時間のフォーマットは通常5列で、それぞれ
-
、例えば1-3
で接続される.,
のように1,3-5
で区切られている.*
は、first-last
を表し、すなわち、最小単位ごとにタスクが実行される./
で隔てられています.例えば、*/2
、1-3/2
です.また、
@
で始まる特殊な運転タイミング表示方法もあります.@reboot
は、システムが起動するたびに実行されます.rc.local
と比較して、この方法で起動スクリプトを起動すると、プラットフォーム間、システム間、および非同期ロードがよりよく、システムの起動をブロックすることはありません.例は次のとおりです.
# 5
*/5 * * * * /home/gerald/run_every_5_min
# 1 2
0 2 1 * * /home/gerald/run_per_month
# 1 15 2
0 2 1,15 * * /home/gerald/run_twice_per_month
#
@reboot /home/gerald/run_on_reboot
遭遇する可能性のある穴
#
$ sudo systemctl status cron
#
$ sudo systemctl enable cron
/etc/crontab
は実行されません.userが書かれているかどうかを確認します.そうしないと、プロファイルの解析に失敗したため、ファイル全体が無視されます.したがって、個人的にはcrontab -e
を使用して構成するのがよりよく、rootユーザで構成する必要がある場合はsudo crontab -e
またはsudo crontab -u root -e
を使用すると考えられる.