Linux下crontab命令的用法

simplewp發表於2013-11-14

任務排程的crond常駐命令 
crond 是linux用來定期執行程式的命令。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。而linux任務排程的工作主要分為以下兩類: 
1、系統執行的工作:系統週期性所要執行的工作,如備份系統資料、清理快取 
2、個人執行的工作:某個使用者定期要做的工作,例如每隔10分鐘檢查郵件伺服器是否有新信,這些工作可由每個使用者自行設定

Crontab是UNIX系統下的定時任務觸發器,其使用者的許可權記載在下列兩個檔案中:

檔案

含義

/etc/cron.deny

該檔案中所列的使用者不允許使用Crontab命令

/etc/cron.allow

該檔案中所列的使用者允許使用Crontab命令

/var/spool/cron/

是所有使用者的crontab檔案

/var/spool/cron/crontabs

/var/spool/cron/crontabs


Crontab命令的格式為:crontab –l|-r|-e|-i [username],其引數含義如表一:

引數名稱

含義

示例

-l

顯示使用者的Crontab檔案的內容

crontabl –l

-i

刪除使用者的Crontab檔案前給提示

crontabl -ri

-r

從Crontab目錄中刪除使用者的Crontab檔案

crontabl -r

-e

編輯使用者的Crontab檔案

crontabl -e


使用者所建立的Crontab檔案存於/var/spool/cron中,其檔名與使用者名稱一致。 
它的格式共分為六段,前五段為時間設定段,第六段為所要執行的命令段, 
格式如下:* * * * * 
其時間段的含義如表二:

含義

取值範圍

第一段

代表分鐘

0—59

第二段

代表小時

0—23

第三段

代表日期

1—31

第四段

代表月份

1—12

第五段

代表星期幾,0代表星期日

0—6


例:如果使用者的Crontab檔案的內容是:29 19 * * * echo its dinner time,則系統每天的19:29顯示‘its dinner time’ 
示例(建立一個cron全過程,每分鐘都會在test.txt裡輸入當前時間):

1. 以普通使用者登入linux系統(我用的是CentOS4.1)

2. $crontab –e 
說明:系統預設的編輯器是VIM,如果不是請加上以下shell: 
$EDITOR=vi 
$export EDITOR

3. 輸入”*/1 * * * * date >> $HOME/test.txt”,save and exit VIM

4. $su root

5. $cd /etc/init.d

6. ./crond restart

下面看看看幾個具體的例子: 
● 0 */2 * * * /sbin/service httpd restart  意思是每兩個小時重啟一次apache

● 50 7 * * * /sbin/service sshd start  意思是每天7:50開啟ssh服務

● 50 22 * * * /sbin/service sshd stop  意思是每天22:50關閉ssh服務

● 0 0 1,15 * * fsck /home  每月1號和15號檢查/home 磁碟

● 1 * * * * /home/bruce/backup  每小時的第一分執行 /home/bruce/backup這個檔案

● 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} /;  每週一至週五3點鐘,在目錄/home中,查詢檔名為*.xxx的檔案,並刪除4天前的檔案。 
● 30 6 */10 * * ls  意思是每月的1、11、21、31日是的6:30執行一次ls命令

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27009266/viewspace-776615/,如需轉載,請註明出處,否則將追究法律責任。

相關文章