掌握crontab命令,linux計劃任務(wù)立馬搞定!
在Linux上計劃任務(wù)服務(wù)的詳細(xì)說明中,我介紹了在Linux上使用at命令來添加單個計劃任務(wù)的方法。 盡管at命令本質(zhì)上可以運行我們的大多數(shù)日常工作場景,但它很復(fù)雜,情況更加有限。 crontab命令可以很好地解決此問題。 這就是我們向大家介紹crontab命令的主要原因。
在我們正式學(xué)習(xí)crontab命令之前,我們先來學(xué)習(xí)一下crond服務(wù)的參數(shù)的口訣“分、時、日、月、星期 命令”,這正是crond服務(wù)設(shè)置任務(wù)的參數(shù)格式,我們需要注意的是,如果有些字段沒有設(shè)置,則需要使用星號(*)占位。
在學(xué)習(xí)了crond服務(wù)參數(shù)用法之后,我們來用crontab命令來創(chuàng)建幾個計劃任務(wù)。創(chuàng)建計劃任務(wù)統(tǒng)一使用命令:crontab -e。
案例一:假設(shè)在每周二、四、六的早上8點1分,我們都需要通過tar打包的方式備份指定的目錄文件,使其作為一個備份文件。我們該如何創(chuàng)建計劃任務(wù)呢?我們可以使用crontab -e命令來創(chuàng)建計劃任務(wù)。具體的實現(xiàn)效果的參數(shù)如crontab -l命令結(jié)果所示:
[root@redhat ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@linuxprobe ~]# crontab -l
1 8 * * 2,4,6 /usr/bin/tar -czvf etc_bak.tar.gz /etc
這里要重點為大家強調(diào)三個知識點:
1、時間段的表示
除了用逗號(,)來分別表示多個時間段,例如“8,9,12”表示8月、9月和12月。還可以用減號(-)來表示一段連續(xù)的時間周期(例如字段“日”的取值為“12-15”,則表示每月的12~15日)。以及用除號(/)表示執(zhí)行任務(wù)的間隔時間(例如“*/5”表示每隔5分鐘執(zhí)行一次任務(wù))。
2、命令必須用絕對路徑
在crond服務(wù)的計劃任務(wù)參數(shù)中,所有命令一定要用絕對路徑的方式來寫,如果不知道絕對路徑,請用whereis命令進行查詢。
3、特殊情況
計劃任務(wù)中的“分”字段必須有數(shù)值,絕對不能為空或是*號,而“日”和“星期”字段不能同時使用,否則就會發(fā)生沖突。
通過crontab計劃任務(wù),可以更好的解決運維難題,極大地減少特定時間的、循環(huán)性的維護工作,減輕運維人員的運維壓力。