Redhat Linux裡cron的使用方法

來源:互聯網
上載者:User
在Redhat Linux裡,cron的相關設定檔:
/etc/crontab   記錄環境變數(SHELL,PATH,MAILTO,HOME)和系統預先制定的cron任務(cron.hourly/daily/weekly/monthly)。
(當cron任務無法執行時,可以檢查一下這裡的環境變數和命令路徑)
/etc/cron.deny    被記錄在此的使用者不能提交cron任務
/etc/cron.allow   被記錄在此的使用者可以提交cron任務
(這兩個檔案不存在時,只有root有提交cron任務的許可權)
/etc/cron.d/,/etc/cron.daily/、cron.hourly/、/cron.monthly/   存放系統預先制定的cron任務
/var/spool/cron/   所有使用者的cron任務,與使用者名稱相對應
/var/log/cron   cron的日誌資訊cron的設定檔稱為crontab,是“cron table”的簡寫。cron在三個地方尋找crontab檔案:/etc/crontab,/etc/cron.d/,/var/spool/cron。
crontab檔案的格式:
minute hour day month weekday [username] command
minute   分鐘   0-59
hour      小時   0-23
day       日期   1-31
month    月份   1-12
weekday   星期幾   0-6(0代表星期天)
這些和時間相關的欄位由空格分隔,每個欄位必須指定一個值:
*(星號),意味著所有的允許值
一個整數,精確匹配
兩個被破折號分開的整數,表示範圍
多個被逗號分開的整數或範圍,表示匹配列出的這些值
/n 表示步長,範圍/n
其中“天”由day和weekday確定,都匹配
其中:星號可以匹配所有字元;一個整數必須精確匹配;用短劃線隔開的兩個整數,他們匹配的是值的範圍;
用逗號隔開的整數或者範圍,匹配任何被列到的值。
例如:  45 10  *   *  1-5          上午10:45從周一到周五不要把星號放在第一個欄位,除非你想這個命令每分鐘都執行。
weekday與day若同時指定,則滿足二者之一即被執行。
例如:0,30   *  13   *  5             星期五每半小時,以及每月13號每半小時
30   2   *   *   1   (cd /users/joe/project; make)
 
20   1   *  *   *  find  /tmp  -atime  +3  -exec  rm -f { } ';'
每天淩晨1:20刪除/tmp目錄中的3天內未被訪問的所有檔案
55  23  *   *  0-3,6    /staff/trent/bin/acct-script
除了星期四、五外每天23:55 運行acct-script
 
crontab命令
crontab [-u user] [-l|-r|-e]
-l 列出使用者的cron任務
-r 刪除cron任務
-e 編輯cron任務
-i 刪除前提示
註:不帶參數的crontab命令將試圖從標準輸入讀取crontab的內容。在這個模式下,如用Control-D來退出的話,會刪除整個crontab內容。應使用Control-C來退出。
crontab [-u user] filename
從檔案匯入crontab任務。
 
command就是要執行的sh命令,可以是任意有效shell命令,並且不應該加引號。cron 認為command一直是到這一行的末尾,它可以包含空格或定位字元。
cron使用百分比符號(%)來表示command欄位的換行。只有第一個百分比符號前的文本才會包含在實際命令中,其餘行則作為該命令的標準輸入。
例如:
echo  The time is now `date` > /dev/console
write garth %Hi Garth % Remember to get a job.
cd /etc; /bin/mail  -s "password file" evi < passwd 
管理crontab
crontab  filename  將filename安裝為crontab檔案,它將替代crontab檔案以前版本。
crontab -e     檢出一個crontab的一個副本,用編輯器開啟,然後將其重新提交給crontab目錄(/var/spool/cron/'username')。
crontab  -l      將crontab中內容列在標準輸出上。
crontab -r       刪除crontab。
不帶命令列的crontab將試圖從他自己的標準輸出中讀取crontab內容。如果意外進入,不要試圖使用Ctrl-D退出,那樣會刪除整個crontab內容,而要使用Ctrl-C退出。
對於root,有這樣的命令:crontab -u loki  -r   刪除屬於loki的crontab檔案。  控制使用 crontab 命令
/etc/cron.allow   /etc/cron.deny檔案控制哪一個使用者可以使用 crontab 命令。root 使用者可以建立、編輯或刪除這些檔案。這些檔案的條目是使用者登入名稱稱,每個名稱佔一行。如果登入標識和多個的登入名稱稱相關聯,這個crontab 命令採用第一個在 /etc/passwd 檔案中的登入名稱稱,而不管當前實際使用哪一個登入名稱稱。而且,要允許使用者啟動 cron 作業,應該使用 chuser 命令將 /etc/security/user 檔案中的守護進程屬性設定為 TRUE。以下關於 cron.allow 檔案的一個樣本:
root
nick
dee
sarah
如果 cron.allow 檔案存在,只有在檔案中出現其登入名稱稱的使用者可以使用 crontab 命令。root 使用者的登入名稱必須出現在 cron.allow 檔案中,如果這個檔案存在的話。系統管理員可以明確的停止一個使用者,通過使用 crontab 命令,同時在cron.deny 檔案中列出使用者的登入名稱。如果只有 cron.deny 檔案存在,任一名稱沒有出現在這個檔案中的使用者可以使用 crontab 命令。
如果以下一個條件成立,使用者將不能使用 crontab 命令:
cron.allow 檔案和 cron.deny 檔案不存在(只允許 root 使用者)。 
cron.allow 檔案存在,但使用者的登入名稱並不列在其中。 
cron.deny 檔案存在,並且使用者的登入名稱列在其中。
預設情況下,所有使用者都可向cron提交crontab檔案。其預設的使用者設定檔是空的/etc/cron.deny檔案  。如果沒有這兩個檔案的話,只有root才能提交crontab。
重要的是,存取控制是由crontab而不是cron來實現的。如果某使用者可通過其他方式把crontab秘密轉移到適合目錄中去,那麼cron就會盲目地執行該檔案中的命令。
Linux預先安裝好的crontab項主要在/etc/cron.d下,如果想使某項不起作用,可以注釋掉。
另外,還有/etc/cron.daily 每天運行一次的指令碼;   /etc/weekly  每周運行一次的指令碼。crond的管理
service crond {start|stop|status|reload|restart|condrestart}
/etc/init.d/crond {start|stop|status|reload|restart|condrestart}常見用途:
清理檔案系統
find  /  -xdev  -name  core -atime  +7  -exec  rm -f { } ';'
刪除一星期都沒訪問過的core映象檔案(程式崩潰時產生的映象檔案)。
find  /  -xdev  -atime  +3  '('  -name  '#*'  -o  -name  '#*'  -o -name  '*.CKP'  -o  -name  '*~'  -o  -name  '.nfs~'  ')'  -exec   rm -f { } ';'
刪除以 #,.#或nfs開頭的,或者是以 ~ 以及.CKP結尾的檔案,還有3天未被訪問的檔案,不同類型的臨時檔案和編輯器的備份檔案,都是這一模式的典型代表。
cd  /tmp ;  find  .  !  -name  .  !   -name  lost+found  -type  d -mtime  +3  -exec /bin/rm  -rf  { } ';'
遞迴刪除/tmp下的72小時未修改的所有子目錄。/tmp下的普通檔案會在系統啟動時被系統啟動指令碼刪除,但有些系統不會刪除目錄。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.