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下のログファイル