本篇文章為大家展示了如何在Ubuntu 14.04使用cron實(shí)現(xiàn)作業(yè)自動(dòng)化,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到蘆淞網(wǎng)站設(shè)計(jì)與蘆淞網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋蘆淞地區(qū)。
Cron是Linux系統(tǒng)中最有用的工具之一,cron作業(yè)是在指定時(shí)間到來(lái)時(shí)被調(diào)度執(zhí)行的作業(yè)。
最常見(jiàn)的自動(dòng)化系統(tǒng)管理和自動(dòng)維護(hù)工作,比如每天發(fā)出的按計(jì)劃完成了備份的通知,或者是按計(jì)劃定時(shí)清理/tmp/目錄的通知。還有很多Web應(yīng)用程序也需要執(zhí)行定時(shí)作業(yè)。
這里講述了Cron的工作機(jī)制,你可以用Cron實(shí)現(xiàn)調(diào)度作業(yè)作業(yè)。Cron本身是一個(gè)守護(hù)進(jìn)程,在后臺(tái)運(yùn)行,通過(guò)配置文件“crontab”來(lái)根據(jù)時(shí)間調(diào)度指定的作業(yè)執(zhí)行。
一、啟動(dòng)Cron服務(wù)
基本上所有的Linux發(fā)行版在默認(rèn)情況下都預(yù)安裝了cron工具。即使未預(yù)裝cron,也很簡(jiǎn)單,執(zhí)行命令手動(dòng)安裝它:
root@ubuntu-14:~# apt-get install cron
接著檢查cron服務(wù)的狀態(tài),默認(rèn)情況它應(yīng)該運(yùn)行于后臺(tái)。如果它未啟動(dòng),那么可以手動(dòng)啟動(dòng)此服務(wù)。
root@ubuntu-14:~# service cron start root@ubuntu-14:~# service cron status cron start/running, process 1027
二、使用Cron幫助
如果cron工作正常,那么你可以使用man命令查看其手冊(cè)描述的詳細(xì)用法。
root@ubuntu-14:~# man crontab
上面的命令顯示了crontab手冊(cè)描述的使用方法。如果要查看怎樣使用cron作業(yè)指定的信息,可以這樣:
root@ubuntu-14:~# man 5 crontab
要退出幫助命令手冊(cè)的顯示,按下q鍵或h鍵
三、Crontab命令的用法
下面講述怎樣使用crontab命令實(shí)現(xiàn)定時(shí)調(diào)度作業(yè)。
1、對(duì)Cron作業(yè)進(jìn)行列表
使用以下命令列出當(dāng)前用戶計(jì)劃的cron作業(yè)。
root@ubuntu-14:~# crontab –l
會(huì)列出當(dāng)前用戶的所有cron作業(yè),如果想查看其它用戶的cron作業(yè),可以使用如下命令:
root@ubuntu-14:~# crontab –l –u username
這會(huì)列出指定用戶的cron作業(yè)。
2、編輯Cron作業(yè)
要添加一個(gè)新cron作業(yè),或者是編輯現(xiàn)有的cron作業(yè),可以使用如下命令:
root@ubuntu-14:~# crontab -e
3、移除Cron作業(yè)
使用下面的命令移除已經(jīng)計(jì)劃的cron作業(yè)。
root@ubuntu-14:~# crontab –r
使用下面的命令移除所有已計(jì)劃的cron作業(yè),且無(wú)需再次確認(rèn)。
root@ubuntu-14:~# crontab –ir
4、命令參數(shù)
-u user:用來(lái)設(shè)定某個(gè)用戶的crontab服務(wù);
file:file是命令文件的名字,表示將file做為crontab的任務(wù)列表文件并載入crontab。如果在命令行中沒(méi)有指定這個(gè)文件,crontab命令將接受標(biāo)準(zhǔn)輸入(鍵盤)上鍵入的命令,并將它們載入crontab。
-e:編輯某個(gè)用戶的crontab文件內(nèi)容。如果不指定用戶,則表示編輯當(dāng)前用戶的crontab文件。
-l:顯示某個(gè)用戶的crontab文件內(nèi)容,如果不指定用戶,則表示顯示當(dāng)前用戶的crontab文件內(nèi)容。
-r:從/var/spool/cron目錄中刪除某個(gè)用戶的crontab文件,如果不指定用戶,則默認(rèn)刪除當(dāng)前用戶的crontab文件。
-i:在刪除用戶的crontab文件時(shí)給確認(rèn)提示。
四、用Crontab計(jì)劃任務(wù)
除了通過(guò)配置文件來(lái)處理計(jì)劃cron作業(yè)之外,還有別的方法可以做到。如果你查看/etc目錄,你會(huì)發(fā)現(xiàn)有這樣的目錄:cron.daily、 cron.hourly、cron.monthly等等。因此,把cron腳本放入這些目錄中,那么系統(tǒng)會(huì)根據(jù)這些目錄名定時(shí)執(zhí)行這些作業(yè)腳本的。
1、Cron配置類型
Cron有兩種配置文件類型,用于調(diào)度自動(dòng)化任務(wù)。
(1)系統(tǒng)級(jí)Crontab
這些cron作業(yè)被系統(tǒng)服務(wù)和關(guān)鍵作業(yè)所使用,且需要root級(jí)的權(quán)限才能執(zhí)行??梢栽?etc/crontab文件中查看系統(tǒng)級(jí)的cron作業(yè)。
(2)用戶級(jí)Crontab
用戶級(jí)的cron作業(yè)是針對(duì)每個(gè)用戶單獨(dú)分開的。因此每個(gè)用戶都可以使用crontab命令創(chuàng)建自己的cron作業(yè),還可以使用以下命令編輯或查看自己的cron作業(yè)。
root@ubuntu-14:~# crontab –e
選擇編輯器后,你可以配置新cron作業(yè)了。
五、用Crontab調(diào)度作業(yè)
可以使用指定的語(yǔ)法調(diào)度cron作業(yè),而且還有速記縮寫命令,使的管理cron作業(yè)很簡(jiǎn)單。
Crontab語(yǔ)法如下:
* * * * * command to be executed - - - - - - | | | | | | | | | | | --- 預(yù)執(zhí)行的命令 | | | | ----- 表示星期0~7(其中星期天可以用0或7表示) | | | ------- 表示月份1~12 | | --------- 表示日期1~31 | ----------- 表示小時(shí)1~23(0表示0點(diǎn)) ------------- 表示分鐘1~59 每分鐘用*或者 */1表示
六、新Cron作業(yè)配置實(shí)例
現(xiàn)在你已經(jīng)熟悉了crontab命令、語(yǔ)法及cron作業(yè)的類型,現(xiàn)在可以創(chuàng)建一些作業(yè)計(jì)劃進(jìn)行測(cè)試??梢允褂胏rontab –e 命令添加。
1、每分鐘運(yùn)行的計(jì)劃作業(yè)
下面的例子,創(chuàng)建一個(gè)cron作業(yè),它每分鐘輸出文本“test cron job to execute every minute”并把文本發(fā)送到user@vexxhost.com郵箱。
首先用crontab命令編輯:
root@ubuntu-14:~# crontab –e
寫入以下的腳本:
SHELL=/bin/bash HOME=/ MAILTO=”user@vexxhost.com” #This is a comment * * * * * echo 'test cron job to execute every minute' :wq! 保存并退出
一旦保存了此cron腳本文件,就可以把它添加到計(jì)劃的作業(yè)中。
2、在指定時(shí)間調(diào)度Cron job作業(yè)
假如想調(diào)度某個(gè)cron作業(yè),讓它在“每個(gè)星期四的下午7:00”運(yùn)行,那么crontab腳本應(yīng)該這樣:
00 19 * * 4 sh /root/test.sh
再把它添加到調(diào)度作業(yè)中。
root@ubuntu-14:~# crontab -e crontab: installing new crontab
上面腳本中的“00 19”指的是下午7點(diǎn),“4”指的是星期四。
七、總結(jié)
可以看到,用crontab實(shí)現(xiàn)自動(dòng)化任務(wù)是很容易的,而且它可以按分鐘、小時(shí)、周、月、星期來(lái)執(zhí)行任務(wù)。除此之外,Linux還有一個(gè)at命令,它適用于處理只執(zhí)行一次的任務(wù),且需要先運(yùn)行atd服務(wù)。
其次要注意環(huán)境變量的問(wèn)題。有時(shí)我們創(chuàng)建了一個(gè)crontab,但是這個(gè)任務(wù)卻無(wú)法自動(dòng)執(zhí)行,而手動(dòng)執(zhí)行這個(gè)任務(wù)卻沒(méi)有問(wèn)題,這種情況一般是由于在 crontab文件中沒(méi)有配置環(huán)境變量引起的。在crontab文件中定義多個(gè)調(diào)度任務(wù)時(shí),需要特別注環(huán)境變量的設(shè)置,因?yàn)槲覀兪謩?dòng)執(zhí)行某個(gè)任務(wù)時(shí),是在 當(dāng)前shell環(huán)境下進(jìn)行的,程序當(dāng)然能找到環(huán)境變量,而系統(tǒng)自動(dòng)執(zhí)行任務(wù)調(diào)度時(shí),是不會(huì)加載任何環(huán)境變量的,因此,就需要在crontab文件中指定任 務(wù)運(yùn)行所需的所有環(huán)境變量,這樣,系統(tǒng)執(zhí)行任務(wù)調(diào)度時(shí)就沒(méi)有問(wèn)題了。
還要注意清理系統(tǒng)用戶的郵件日志。每條任務(wù)調(diào)度執(zhí)行完畢,系統(tǒng)都會(huì)將任務(wù)輸出信息通過(guò)電子郵件的形式發(fā)送給當(dāng)前系統(tǒng)用戶,這樣日積月累,日志信息會(huì)非常大,可能會(huì)影響系統(tǒng)的正常運(yùn)行,因此,將每條任務(wù)進(jìn)行重定向處理非常重要。
要注意,新創(chuàng)建的cron作業(yè),不會(huì)馬上執(zhí)行,至少要過(guò)2分鐘才執(zhí)行。如果重啟cron服務(wù)則會(huì)馬上執(zhí)行。
上述內(nèi)容就是如何在Ubuntu 14.04使用cron實(shí)現(xiàn)作業(yè)自動(dòng)化,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前題目:如何在Ubuntu14.04使用cron實(shí)現(xiàn)作業(yè)自動(dòng)化
網(wǎng)址分享:http://www.rwnh.cn/article28/jgpjcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、電子商務(wù)、標(biāo)簽優(yōu)化、ChatGPT、外貿(mào)建站、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)