Crontab 學(xué)習(xí)筆記

這是慕課網(wǎng)《Linux中的計(jì)劃任務(wù)之Crontab》的學(xué)習(xí)記錄幔虏,方便以后查閱进泼。

從定時(shí)重復(fù)的工作中解脫出來(lái)

1. Crontab 是什么撵儿?

Crontab 是一個(gè)用于設(shè)置周期性被執(zhí)行的任務(wù)的工具渤闷。

  1. Cron Job:被周期性執(zhí)行的任務(wù)
  2. Cron Table:周期性執(zhí)行的任務(wù)列表

2. 安裝并檢查Crontab服務(wù)

  1. 檢查Crontab工具是否安裝:crontab -l
  2. 檢查crond 服務(wù)是否啟動(dòng):service crond status
  3. 安裝cron
CentOS
yum install vixie-cron
yum install crontabs
Ubuntu
sudo apt-get update
sudo apt-get install cron

3. 簡(jiǎn)單示例

crontab -e 進(jìn)入編輯模式

添加一行

*/1 * * * * date >> /tmp/date.log
每分鐘將當(dāng)前日期時(shí)間寫入日志文件

tail -f /tmp/date.log (動(dòng)態(tài)刷新)
tail -3 /tmp/date.log (顯示最后3行)

4. Crontab 的基本組成

  1. 配置文件:文件方式設(shè)置定時(shí)任務(wù)
  2. 系統(tǒng)服務(wù)CROND:每分鐘都會(huì)從配置文件刷新定時(shí)任務(wù)甘晤、執(zhí)行定時(shí)任務(wù)
  3. 配置工具crontab:調(diào)整定時(shí)任務(wù)

1. 配置文件格式

分鐘0-59

小時(shí)0-23

日期1-31

月份1-12

星期0-7(0和7都表示星期日)

示例:

每晚21:30重啟apache

30 21 * * * service httpd restart

每月1含潘、10、22號(hào)4:34重啟apache(離散)

34 4 1,10,22 * * service httpd restart

每月1-10號(hào)4:34重啟apache (連續(xù))

34 4 1-22 * * service httpd restart

每2分鐘重啟apache

*/2 * * * * service httpd restart (偶數(shù)分鐘)
1-59/2 * * * * service httpd restart (奇數(shù)分鐘)

晚上11點(diǎn)到早晨7點(diǎn)重啟apache

0 23-7/1 * * * service httpd restart (分鐘要指定)

晚上11點(diǎn)到早晨7點(diǎn)每隔30分鐘重啟apache

0,30 23-7/1 * * * service httpd restart
0-59/30 23-7/1 * * * service httpd restart

小結(jié):

  1. * 表示任何時(shí)候都匹配线婚。
  2. 可以用"A,B,C" 表示A或者B或者C時(shí)執(zhí)行命令
  3. 可以用"A-B"表示A到B之間時(shí)執(zhí)行命令
  4. 可以用"*/A"表示每A分鐘(小時(shí)等)執(zhí)行一次命令

5. Crontab 工具的使用

crontab -help
crontab -l
crontab -e
crontab -e -u cron
tail -f /var/log/cron 查看計(jì)劃任務(wù)的執(zhí)行情況

如果沒(méi)有指定用戶遏弱,顯示的就是當(dāng)前登錄用戶自己的計(jì)劃任務(wù)。

6. Crontab 配置文件

位于 /etc/crontab 目錄下

crontab 在載入配置文件的時(shí)候塞弊,會(huì)把cron.d 下面的sysstat文件里面的配置信息載入成為root用戶的計(jì)劃任務(wù)漱逸。

crontab -l/-e 不能查看和編輯系統(tǒng)級(jí)的計(jì)劃任務(wù)泪姨,即 cron.d 目錄下的文件,需要 cd 到該目錄使用vi編輯饰抒。

crontab -l/-e 其實(shí)是操作的 /var/spool/cron/username 文件

7. 修改Crontab的默認(rèn)編輯器為vi

在root的配置文件 .profile (/root/.profile)添加以下代碼

EDITOR=vi; export EDITOR

然后肮砾,載入這個(gè)文件即可

source .profile

8. 幾個(gè)坑

1. 環(huán)境變量

.bash_profile 中設(shè)置的環(huán)境變量并不會(huì)被Crontab捕獲。

2. 第三和第五個(gè)域之間執(zhí)行的是“或”操作

如四月第一個(gè)星期日早晨6:30執(zhí)行腳本

30 6 1-7 4 0 /root/a.sh

上面寫法的結(jié)果是:四月第一個(gè)星期的周一到周日(7次)或周日(一個(gè)月最少4次)早晨執(zhí)行循集,總執(zhí)行次數(shù)為10或11唇敞,并不是我們希望的結(jié)果。

30 6 1-7 4 * test `date +\%w` -eq 0 && /root/a.sh
date +%w 輸出當(dāng)前的星期咒彤,0-6
test 表示是否成功
echo $? 輸出上一個(gè)命令成功與否疆柔,1表示失敗,0表示成功
避免使用等號(hào)(用的話前后都加空格)進(jìn)行判斷镶柱,使用 -eq
&& 表示前面成功(0)后面才執(zhí)行
% 在計(jì)劃任務(wù)中要進(jìn)行轉(zhuǎn)義

3. 分鐘設(shè)置

* 表示所有都匹配旷档,所以每小時(shí),每天這樣的情況要給小一級(jí)的單位設(shè)置一個(gè)默認(rèn)值歇拆。

0 */2 * * * date

9. 綜合案例

每30s執(zhí)行一次

*/1 * * * * echo "1111"
*/1 * * * * sleep 30s; echo "1111" (分號(hào)表示無(wú)論前面的命令是否成功鞋屈,后面都會(huì)執(zhí)行)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市故觅,隨后出現(xiàn)的幾起案子厂庇,更是在濱河造成了極大的恐慌,老刑警劉巖输吏,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件权旷,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡贯溅,警方通過(guò)查閱死者的電腦和手機(jī)拄氯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)它浅,“玉大人译柏,你說(shuō)我怎么就攤上這事〗慊簦” “怎么了鄙麦?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)镊折。 經(jīng)常有香客問(wèn)我黔衡,道長(zhǎng),這世上最難降的妖魔是什么腌乡? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮夜牡,結(jié)果婚禮上与纽,老公的妹妹穿的比我還像新娘侣签。我一直安慰自己,他們只是感情好急迂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布影所。 她就那樣靜靜地躺著,像睡著了一般僚碎。 火紅的嫁衣襯著肌膚如雪猴娩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天勺阐,我揣著相機(jī)與錄音卷中,去河邊找鬼。 笑死渊抽,一個(gè)胖子當(dāng)著我的面吹牛蟆豫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播懒闷,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼十减,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了愤估?” 一聲冷哼從身側(cè)響起帮辟,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玩焰,沒(méi)想到半個(gè)月后由驹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡震捣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年荔棉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒿赢。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡润樱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出羡棵,到底是詐尸還是另有隱情壹若,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布皂冰,位于F島的核電站店展,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏秃流。R本人自食惡果不足惜赂蕴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舶胀。 院中可真熱鬧概说,春花似錦碧注、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至放典,卻和暖如春逝变,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奋构。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工壳影, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人声怔。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓态贤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親醋火。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悠汽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Linux定時(shí)任務(wù)Crontab命令詳解 linux 系統(tǒng)則是由 cron (crond) 這個(gè)系統(tǒng)服務(wù)來(lái)控制的。...
    孫燕超閱讀 1,820評(píng)論 0 4
  • Linux定時(shí)任務(wù)Crontab命令詳解linux 系統(tǒng)則是由 cron (crond) 這個(gè)系統(tǒng)服務(wù)來(lái)控制的芥驳。L...
    時(shí)待吾閱讀 392評(píng)論 0 0
  • 前一天學(xué)習(xí)了 at 命令是針對(duì)僅運(yùn)行一次的任務(wù)柿冲,循環(huán)運(yùn)行的例行性計(jì)劃任務(wù),linux系統(tǒng)則是由 cron (cro...
    Zcclucky閱讀 576評(píng)論 0 0
  • Linux 系統(tǒng)提供了使用者控制計(jì)劃任務(wù)的命令 :crontab 命令兆旬。 一假抄、crond簡(jiǎn)介 crond是linu...
    happeace閱讀 1,771評(píng)論 0 53
  • 純手工打造每一篇開源資訊與技術(shù)干貨,數(shù)十萬(wàn)程序員和Linuxer已經(jīng)關(guān)注丽猬。 Cron 是UNIX中一個(gè)常見的工具宿饱,...
    塵世不擾閱讀 556評(píng)論 0 1