Crontab 使用(转)
cron用法說明
cron的用法老是記不住,索性寫下來備忘。下文內(nèi)容大部分是根據(jù)《Cron Help Guide》翻譯而來,有些部分是自己加上的。
全文如下:
cron來源于希臘單詞chronos(意為“時間”),是linux系統(tǒng)下一個自動執(zhí)行指定任務(wù)的程序。例如,你想在每晚睡覺期間創(chuàng)建某些文件或文件夾的備份,就可以用cron來自動執(zhí)行。
服務(wù)的啟動和停止
cron服務(wù)是linux的內(nèi)置服務(wù),但它不會開機(jī)自動啟動。可以用以下命令啟動和停止服務(wù):
/sbin/service crond start /sbin/service crond stop /sbin/service crond restart /sbin/service crond reload以上1-4行分別為啟動、停止、重啟服務(wù)和重新加載配置。
要把cron設(shè)為在開機(jī)的時候自動啟動,在 /etc/rc.d/rc.local 腳本中加入?/sbin/service crond start?即可。
查看、編輯和刪除
cron把命令行保存在crontab(cron table)文件里,這個文件通常在 /etc 目錄下。每個系統(tǒng)用戶都可以有自己的crontab(在 /var/spool/cron/ 下)。要查看當(dāng)前用戶的crontab,輸入 crontab -l;要編輯crontab,輸入 crontab -e;要刪除crontab,輸入 crontab -r。如當(dāng)前是root身份,要查看/編輯/刪除/某用戶的crontab,只需在相應(yīng)的命令后加上 -u USERNAME(如 crontab -e -u USERNAME)即可。crontab文件的默認(rèn)編輯器是vi,可以輸入 export VISUAL=’editor’ 更改默認(rèn)編輯器。
cron服務(wù)每分鐘不僅要讀一次 /var/spool/cron 目錄內(nèi)的所有文件,還需要讀一次 /etc/crontab 文件。配置這個文件也能讓cron執(zhí)行任務(wù)。使用crontab命令是對用戶級任務(wù)的配置,而編輯 /etc/crontab 文件是對系統(tǒng)級任務(wù)的配置。
語法說明
以下是兩個cron語句的例子(在 /etc/crontab 文件里)。前者用來晚間備份 /etc 目錄,后者運行Analog程序處理服務(wù)器的統(tǒng)計信息。
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 | 用戶名(執(zhí)行命令時以此用戶的身份) |
| 7 | 要執(zhí)行的命令(路徑) |
| ? | ? |
現(xiàn)在來看第一行:
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?表示把所有標(biāo)準(zhǔn)輸出發(fā)送到 /dev/null(linux的回收站),把標(biāo)準(zhǔn)錯誤輸出(2)發(fā)送到和標(biāo)準(zhǔn)輸出(1)同樣的地方(即 /dev/null)。運行這行命令將不會產(chǎn)生任何輸出。
這條語句可以變得稍微復(fù)雜一點:
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?命令。
以下語句可以達(dá)到同樣的效果:
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執(zhí)行一個腳本集合,可以把所有要執(zhí)行的腳本放到一個目錄中(如 /home/username/cron),可以使用:
18 16 * * * root run-parts /home/username/cron >> /dev/null 2>&1如果你想保存某個程序的輸出結(jié)果, 可以把?>> /dev/null 2>&1?替換為?>> /home/user/somecommand.log 2>&1?。
總結(jié)
- 查看當(dāng)前用戶的cron配置,使用 crontab -l
- 編輯當(dāng)前用戶的cron配置,使用 crontab -e
- 刪除當(dāng)前用戶的cron配置,使用 crontab -r
- 以root身份查看/編輯/刪除某用戶的cron配置,在命令后加上 -u USERNAME
- 配置系統(tǒng)級的任務(wù),編輯 /etc/crontab 文件
轉(zhuǎn)載于:https://www.cnblogs.com/xingmeng/archive/2013/04/23/3037849.html
總結(jié)
以上是生活随笔為你收集整理的Crontab 使用(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转)[Android] 利用 ant
- 下一篇: uva 10391 Compound W