linux CronJobチュートリアルタイミングタスク


CronはUNIX,SOLARIS,LINUXの下にある非常に有用なツールです.Cronスクリプトにより、計画タスクを定期的にシステムバックグラウンドで自動的に実行できます.この計画タスクはUNIX,SOLARIS,LINUXの下でcron jobsという用語である.Crontab(CRONテーブル)は、特定の時間に実行されたCRONを記録するためのスクリプトファイルです.
Crontabは、以下の特性にまとめられています.
1.Crontab制約
2、Crontabコマンド
3、Crontabファイルの文法
4、Crontab例
5、Crontab環境設定
6、メール
7、ログファイル
8、その他
 
1.Crontab制約
ユーザ名がファイル/usr/lib/cron/cronに記録されると.allowの場合、そのユーザーのcrontabは有効です.
/usr/lib/cron/cron.allowファイルが存在しない場合、ユーザー名は/usr/lib/cron/cronに記録されません.denyファイルでは、このユーザーのcrontabも有効です.
/usr/lib/cron/cronのみが存在する場合.denyが空の場合、すべてのユーザーがcrontabを使用できます.
現在両方のファイルが存在しない場合、rootユーザーのみがcrontabを使用できます.Denyまたはallowレコードは、行ごとに1人のユーザー名で情報を記録します.
2、Crontabコマンド
export EDITOR=vi ;crontabファイルのエディタを指定します. 
crontab-eユーザーのcrontabを編集し、crontabが存在しないことを指定した場合に新規作成します.  
crontab-lは、ユーザーのcrontabをリストします.  
crontab-rユーザーのcrontabを削除します.  
crontab-u crontabを設定するユーザー名を指定します.
crontab–vは、前回編集した時間を表示します(一部のオペレーティングシステムでのみ使用可能です).
3、Crontabファイル
Crontab構文crontabファイルは、日、日付、時間、および定期的に実行するコマンドコードの5つのセグメントで定義されます.
*     *   *   *    *  command to be executed
-     -    -    -    -
|     |     |     |     |
|     |     |     |     +----- day of week (0 - 6) (Sunday=0) //  
|     |     |     +------- month (1 - 12) // 
|     |     +--------- day of month (1 - 31) // 
|     +----------- hour (0 - 23) // 
+------------- min (0 - 59) // 

すべての値は対応する範囲内でなければなりません.そうしないと無効とみなされます.
入力領域には、*または「」で区切られた値のセットがあります.
値は、1つのデータであってもよいし、コネクタで連結された2つの数(範囲を表す)であってもよい.
注意:日付のフォーマットは、曜日または1ヶ月の日です.両方に値がある場合は、両方の時間に実行されます.
4、Crontabの例
次はcrontabファイルの行です.毎日午後6:30に一時ファイルを削除することを意味します(一時ファイルは/home/someuser/tmpに保存されます).
30     18     *     *     *         rm /home/someuser/tmp/*

 
min
hour
day/month
month
day/week
 Execution time
30
0
1
1,6,12
*
-- 00:30 Hrs  on 1st of Jan, June & Dec.
 
0
20
*
10
1-5
--8.00 PM every weekday (Mon-Fri) only in Oct.
 
0
0
1,10,15
*
*
-- midnight on 1st ,10th & 15th of month
 
5,10
0
10
*
1
-- At 12.05,12.10 every Monday & on 10th of every month
 
注意:パラメータのないcrontabコマンドを何気なく入力した場合は、Control-dを終了しないでください.これにより、すべてのcronjobが削除されます.Control-cを終了する必要があります.
5、Crontab環境設定
Cronは実はshell(/usr/bin/sh)です.バックグラウンドでは、ユーザプログラムのコマンドを参照します.
Cronのデフォルトshell環境は次のとおりです.
HOME=user's-home-directory
LOGNAME=user's-login-id
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh  
ユーザーは、テーブルまたはスクリプトのエントリで自分のプロファイルを直接実行することを望んでいます.
6、メールを無効にする
デフォルトのcronjobsは、タスクを実行するときにユーザーにメールを送信します.
必要でない場合は、次のコマンドで閉じることができます.
>/dev/null 2>&1

例:
* * * * * root php /var/www/deployer/artisan schedule:run 1>> /dev/null 2>&1

7、生成ログファイルcronjobsログを保存するには以下の設定をすればよい
30 18  *    *   *    rm /home/someuser/tmp/* > /home/someuser/cronlogs/clean_tmp_dir.log

/home/someuser/cronlogs/clean_tmp_dir.ログファイルに保存された絶対パス
 
 
 
 
転載先:https://www.cnblogs.com/love-snow/articles/7364888.html