cron用法說明
cron**於希臘單詞chronos(意為「時間」),是linux系統下乙個自動執行指定任務的程式。例如,你想在每晚睡覺期間建立某些檔案或資料夾的備份,就可以用cron來自動執行。
cron服務是linux的內建服務,但它不會開機自動啟動。可以用以下命令啟動和停止服務:
/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload要把cron設為在開機的時候自動啟動,在 /etc/rc.d/rc.local 指令碼中加入
/sbin/service crond start
即可。
cron服務每分鐘不僅要讀一次 /var/spool/cron 目錄內的所有檔案,還需要讀一次 /etc/crontab 檔案。配置這個檔案也能讓cron執行任務。使用crontab命令是對使用者級任務的配置,而編輯 /etc/crontab 檔案是對系統級任務的配置。
以下是兩個cron語句的例子(在 /etc/crontab 檔案裡)。前者用來晚間備份 /etc 目錄,後者執行analog程式處理伺服器的統計資訊。
12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1
52 5 * * * root /usr/local/src/analog-5.32-lh/analog >> /dev/null 2>&1以下是cron語句中的字段與字段說明:
字段說明
1分鐘(0-59)
2小時(2-24)
3日期(1-31)
4月份(1-12;或英文縮寫jan、feb等)
5週幾(0-6,0為週日;或單詞縮寫sun、mon等)
6使用者名稱(執行命令時以此使用者的身份)
7要執行的命令(路徑)
現在來看第一行:
12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1這條語句將在每天的凌晨3點12分(03:12)執行
tar czf /usr/local/backups/daily/etc.tar.gz /etc
命令。>> /dev/null 2>&1
表示把所有標準輸出傳送到 /dev/null(linux的**站),把標準錯誤輸出(2)傳送到和標準輸出(1)同樣的地方(即 /dev/null)。執行這行命令將不會產生任何輸出。
這條語句可以變得稍微複雜一點:
30 15 13 6 1 * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1它將在6月13日周一的15:30執行
tar czf /usr/local/backups/daily/etc.tar.gz /etc
命令。
以下語句可以達到同樣的效果:
30 15 13 jun mon * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1如果你想以使用者joey的身份每小時的第15分鐘執行某個程式,可以使用:
15 * * * * joey /usr/bin/somecommand >> /dev/null 2>&1其中的星號(*)是萬用字元,表示cron將忽略這個字段。
如果你想每兩小時就執行某個程式,可以在小時欄位裡使用*/2
。它將會在2點,4點,6點……22點,24點執行。具體語句如下:
0 */2 * * * joey /usr/bin/somecommand >> /dev/null 2>&1cron語句中還可以使用逗號(,)來指定多個時間。例如你想在每小時的15分和30分執行某個程式,可以在分鐘字段使用
15,30
:
15,30 * * * * joey /usr/bin/somecommand >> /dev/null 2>&1如果你想在每月的第一周(即1號到7號)每天的指定時間執行某個程式,可以在日期字段使用
1-7
:
15,30 */2 1-7 * * joey /usr/bin/somecommand >> /dev/null 2>&1這條語句將在每月的第1-7日每兩小時的15分和30分(02:15,02:30……22: 15,22:30等)執行
/usr/bin/somecommand
命令。
如果你想在每天的16:18執行乙個指令碼集合,可以把所有要執行的指令碼放到乙個目錄中(如 /home/username/cron),可以使用:
18 16 * * * root run-parts /home/username/cron >> /dev/null 2>&1如果你想儲存某個程式的輸出結果, 可以把
>> /dev/null 2>&1
替換為>> /home/user/somecommand.log 2>&1
。
原文
linux crontab命令詳解
12 3 root tar czf usr local backups daily etc.tar.gz etc dev null 2 1這條語句將在每天的凌晨3點12分 03 12 執行tar czf usr local backups daily etc.tar.gz etc命令。dev nul...
Linux crontab 計畫命令
標籤 linux apache user date file shell 2009 08 04 09 31 214009人閱讀收藏 舉報 linux學習 7 基本格式 command 分 時 日 月 周 命令 第1列表示分鐘1 59 每分鐘用 或者 1表示 第2列表示小時1 23 0表示0點 第3列...
Linux crontab命令學習
一 crond簡介 crond是linux下用來週期性的執行某種任務或等待處理某些事件的乙個守護程序,與windows下的計畫任務類似,當安裝完成作業系統後,缺省會安裝此服務工具,並且會自動啟動crond程序,crond程序每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。l...