linux內(nèi)置的cron進程能幫我們實現(xiàn)這些需求,cron搭配shell腳本,非常復(fù)雜的指令也沒有問題。
我們經(jīng)常使用的是crontab命令是cron table的簡寫,它是cron的配置文件,也可以叫它作業(yè)列表,我們可以在以下文件夾內(nèi)找到相關(guān)配置文件。
/var/spool/cron/ 目錄下存放的是每個用戶包括root的crontab任務(wù),每個任務(wù)以創(chuàng)建者的名字命名
/etc/crontab 這個文件負責調(diào)度各種管理和維護任務(wù)。
/etc/cron.d/ 這個目錄用來存放任何要執(zhí)行的crontab文件或腳本。
我們還可以把腳本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目錄中,讓它每小時/天/星期、月執(zhí)行一次。
我們常用的命令如下:
crontab [-u username] //省略用戶表表示操作當前用戶的crontab -e (編輯工作表) -l (列出工作表里的命令) -r (刪除工作作)
我們用crontab -e進入當前用戶的工作表編輯,是常見的vim界面。每行是一條命令。
crontab的命令構(gòu)成為 時間+動作,其時間有分、時、日、月、周五種,操作符有
* 取值范圍內(nèi)的所有數(shù)字
/ 每過多少個數(shù)字
- 從X到Z
,散列數(shù)字
* * * * * myCommand
3,15 * * * * myCommand
3,15 8-11 * * * myCommand
3,15 8-11 */2 * * myCommand
3,15 8-11 * * 1 myCommand
30 21 * * * /etc/init.d/smb restart
45 4 1,10,22 * * /etc/init.d/smb restart
10 1 * * 6,0 /etc/init.d/smb restart
0,30 18-23 * * * /etc/init.d/smb restart
0 23 * * 6 /etc/init.d/smb restart
* */1 * * * /etc/init.d/smb restart
* 23-7/1 * * * /etc/init.d/smb restart