Linux:crontabコマンド学習

7197 ワード


前にこの命令を聞いたことがあるが、研究したことがない.最近、ビジネス上の必要性から、システムの自動タイミングでスクリプトタスクを実行するために、次のテストが行われました.
1.crontabの基礎知識
[root@rac2 sbin]# service crond start --- crontab 

Starting crond: cannot start crond: crond is already runnin[FAILED]

[root@rac2 sbin]# ps -ef|grep crond --- crontab 

root      2959     1  0 21:47 ?        00:00:00 crond

root      3509  3457  0 21:51 pts/1    00:00:00 grep crond

[root@rac2 sbin]# crontab --help --- 

crontab: invalid option -- -

crontab: usage error: unrecognized option

usage:    crontab [-u user] file

    crontab [-u user] [ -e | -l | -r ]

        (default operation is replace, per 1003.2)

    -e    (edit user's crontab)

    -l    (list user's crontab)

    -r    (delete user's crontab)

    -i    (prompt before deleting user's crontab)

    -s    (selinux context)

[root@rac2 sbin]# crontab -u root -l --- root 

no crontab for root

[root@rac2 sbin]# crontab -l

no crontab for root

 
2.独自の自動タイミング実行計画を作成する
[root@rac2 sbin]# crontab -e

no crontab for root - using an empty one

crontab: no changes made to crontab

他の人を見るとviインタフェースの作成計画に入ることができますが、私が作成した後、no changes made to crontabをヒントにします.
[root@rac2 sbin]# crontab -l

no crontab for root

調べてみると、まだありません.編集に失敗したはずなのに、なぜか分からない.
 
ふと思いついたのは、こうやってやってみることです.
[root@rac2 sbin]# crontab -u root -e

no crontab for root - using an empty one

crontab: installing new crontab

ポップアップされたviインタフェースには、**/1***echo「Have a good dream」>/tmp/testが記述されています.txt 
------1分ごとに/tmp/test.txtファイルに「Have a good dream」というメッセージが挿入されます.
------注:/tmp/test.txtこのtest.txtは自動的に生成されます.
今回のヒント:crontab:installing new crontab、okのはずです.
[root@rac2 sbin]# crontab -l



* */1 * * * echo "Have a good dream" >> /tmp/test.txt 

[root@rac2 sbin]# 

自動タイミングスクリプトの編集に成功しました.
 
チェックしてtxt,実行結果も正しい.
[root@rac2 ~]# cd /tmp

[root@rac2 tmp]# ls

gconfd-root     keyring-NcCgMA  keyring-YCitrn  virtual-root.2D8HSv  virtual-root.i8tzq0

keyring-fbdP86  keyring-UJUfuW  mapping-root    virtual-root.DKtizo  virtual-root.ppMHJx

keyring-jq9tuZ  keyring-WoIlNb  test.txt        virtual-root.GQc6wM  virtual-root.vDHQoi

[root@rac2 tmp]# tail -f test.txt

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

Have a good dream

 
3.crontab構文の紹介
/etc/crontabファイル構文は次のとおりです.
Minute Hour Day Month Dayofweek command分時間日月日毎週コマンド各フィールドは、•Minuteが1時間の数分目にタスクを実行•Hourが毎日の数時間目にタスクを実行することを意味します.•Dayが毎月の翌日にタスクを実行•Monthが毎年の翌月にタスクを実行•DayOfWeekが毎週の翌日にタスクを実行•Commandが実行するプログラムを指定
これらのフィールドでは、「Command」が毎回指定しなければならないフィールドである以外は、他のフィールドはオプションフィールドであり、必要に応じて決定されます.指定されていないフィールドについては、その位置を「*」で埋めます.同時にcronは正規表現のような書くことをサポートし、以下のいくつかの特殊な記号定義をサポートします.
•「*」は値の範囲内の数字を表し、•「/」は「毎」を表し、•「-」はある数字からある数字を表し、•「,」はいくつかの離散した数字に分かれている
 
例:
0       6       *          *     *    echo "Good morning.">>/tmp/test.txt毎朝6時
5***ls時間ごとの5分目にlsコマンドを実行することを指定します.
30 5**ls毎日5:30にlsコマンドを実行することを指定します.
30 7 8*ls毎月8日の7:30分にlsコマンドを実行することを指定します
 
 
30 3 * * 1,4,7 reboot  
毎週1,4,7の午前3時半にサーバを再起動
17 5**0/etc/cleanup>/dev/null毎週日曜日5:17システム上のログファイルの一部を消去
0 2 * 1 * rm -rf /usr/userbk*.log毎月1日2:00削除/usr/userbk下のログファイル