這篇文章主要講解了“如何使用Linux的anacron命令”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何使用Linux的anacron命令”吧!
成都創(chuàng)新互聯(lián)于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元尼開遠(yuǎn)做網(wǎng)站,已為上家服務(wù),為尼開遠(yuǎn)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
“自動(dòng)化”這個(gè)詞既讓人望而生畏,又讓人心動(dòng)。我發(fā)現(xiàn)用模塊化的方式來處理它是有幫助的。
首先,要知道你想產(chǎn)生什么結(jié)果。你是要給圖片加水印嗎?從雜亂的目錄中刪除文件?執(zhí)行重要數(shù)據(jù)的備份?為自己明確定義任務(wù),這樣你就知道自己的目標(biāo)是什么。如果有什么任務(wù)是你發(fā)現(xiàn)自己每天都在做的,甚至一天一次以上,那么它可能是自動(dòng)化的候選者。
將大的任務(wù)分解成小的組件,并學(xué)習(xí)如何手動(dòng)但以可重復(fù)和可預(yù)測(cè)的方式產(chǎn)生每個(gè)結(jié)果。在 Linux 上可以做的很多事情都可以用腳本來完成,但重要的是要認(rèn)識(shí)到你當(dāng)前的局限性。學(xué)習(xí)如何自動(dòng)調(diào)整幾張圖片的大小,以便可以方便地通過電子郵件發(fā)送,與使用機(jī)器學(xué)習(xí)為你的每周通訊生成精心制作的藝術(shù)品之間有天壤之別。有的事你可以在一個(gè)下午學(xué)會(huì),而另一件事可能要花上幾年時(shí)間。然而,我們都必須從某個(gè)地方開始,所以只要從小做起,并時(shí)刻注意改進(jìn)的方法。
在 Linux 上使用一個(gè)自動(dòng)化工具來定期實(shí)現(xiàn)它。這就是本文介紹的步驟!
要想自動(dòng)化一些東西,你需要一個(gè)腳本來自動(dòng)化一個(gè)任務(wù)。在測(cè)試時(shí),最好保持簡單,所以本文自動(dòng)化的任務(wù)是在 /tmp
目錄下創(chuàng)建一個(gè)名為 hello
的文件。
#!/bin/sh touch /tmp/hello
將這個(gè)簡單的腳本復(fù)制并粘貼到一個(gè)文本文件中,并將其命名為 example
。
每個(gè)安裝好的 Linux 系統(tǒng)都會(huì)有的內(nèi)置自動(dòng)化解決方案就是 cron 系統(tǒng)。Linux 用戶往往把 cron 籠統(tǒng)地稱為你用來安排任務(wù)的方法(通常稱為 “cron 作業(yè)”),但有多個(gè)應(yīng)用程序可以提供 cron 的功能。最通用的是 cronie;它的優(yōu)點(diǎn)是,它不會(huì)像歷史上為系統(tǒng)管理員設(shè)計(jì)的 cron 應(yīng)用程序那樣,假設(shè)你的計(jì)算機(jī)總是開著。
驗(yàn)證你的 Linux 發(fā)行版提供的是哪個(gè) cron 系統(tǒng)。如果不是 cronie,你可以從發(fā)行版的軟件倉庫中安裝 cronie。如果你的發(fā)行版沒有 cronie 的軟件包,你可以使用舊的 anacron 軟件包來代替。anacron
命令是包含在 cronie 中的,所以不管你是如何獲得它的,你都要確保在你的系統(tǒng)上有 anacron
命令,然后再繼續(xù)。anacron 可能需要管理員 root 權(quán)限,這取決于你的設(shè)置。
$ which anacron/usr/sbin/anacron
anacron 的工作是確保你的自動(dòng)化作業(yè)定期執(zhí)行。為了做到這一點(diǎn),anacron 會(huì)檢查找出最后一次運(yùn)行作業(yè)的時(shí)間,然后檢查你告訴它運(yùn)行作業(yè)的頻率。
假設(shè)你將 anacron 設(shè)置為每五天運(yùn)行一次腳本。每次你打開電腦或從睡眠中喚醒電腦時(shí),anacron都會(huì)掃描其日志以確定是否需要運(yùn)行作業(yè)。如果一個(gè)作業(yè)在五天或更久之前運(yùn)行,那么 anacron 就會(huì)運(yùn)行該作業(yè)。
許多 Linux 系統(tǒng)都捆綁了一些維護(hù)工作,讓 cron 來執(zhí)行。我喜歡把我的工作與系統(tǒng)工作分開,所以我在我的主目錄中創(chuàng)建了一個(gè)目錄。具體來說,有一個(gè)叫做 ~/.local
的隱藏文件夾(“l(fā)ocal” 的意思是它是為你的用戶賬戶定制的,而不是為你的“全局”計(jì)算機(jī)系統(tǒng)定制的),所以我創(chuàng)建了子目錄 etc/cron.daily
來作為 cron 在我的系統(tǒng)上的家目錄。你還必須創(chuàng)建一個(gè) spool 目錄來跟蹤上次運(yùn)行作業(yè)的時(shí)間。
$ mkdir -p ~/.local/etc/cron.daily ~/.var/spool/anacron
你可以把任何你想定期運(yùn)行的腳本放到 ~/.local/etc/cron.daily
目錄中。現(xiàn)在把 example
腳本復(fù)制到目錄中,然后 用 chmod 命令使其可執(zhí)行。
$ cp example ~/.local/etc/cron.daily# chmod +x ~/.local/etc/cron.daily/example
接下來,設(shè)置 anacron 來運(yùn)行位于 ~/.local/etc/cron.daily
目錄下的任何腳本。
默認(rèn)情況下,cron 系統(tǒng)的大部分內(nèi)容都被認(rèn)為是系統(tǒng)管理員的領(lǐng)域,因?yàn)樗ǔS糜谥匾牡讓尤蝿?wù),如輪換日志文件和更新證書。本文演示的配置是為普通用戶設(shè)置個(gè)人自動(dòng)化任務(wù)而設(shè)計(jì)的。
要配置 anacron 來運(yùn)行你的 cron 作業(yè),請(qǐng)?jiān)?nbsp;/.local/etc/anacrontab
創(chuàng)建一個(gè)配置文件:
SHELL=/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/bin1 0 cron.mine run-parts /home/tux/.local/etc/cron.daily/
這個(gè)文件告訴 anacron 每到新的一天(也就是每日),延遲 0 分鐘后,就運(yùn)行(run-parts
)所有在 ~/.local/etc/cron.daily
中找到的可執(zhí)行腳本。有時(shí),會(huì)使用幾分鐘的延遲,這樣你的計(jì)算機(jī)就不會(huì)在你登錄后就被所有可能的任務(wù)沖擊。不過這個(gè)設(shè)置適合測(cè)試。
cron.mine
值是進(jìn)程的一個(gè)任意名稱。我稱它為 cron.mine
,但你也可以稱它為 cron.personal
或 penguin
或任何你想要的名字。
驗(yàn)證你的 anacrontab
文件的語法:
$ anacron -T -t ~/.local/etc/anacrontab \ -S /home/tux/.var/spool/anacron
沉默意味著成功。
最后,你必須確保 anacron 以你的本地配置運(yùn)行。因?yàn)槟闶且云胀ㄓ脩舳皇?root 用戶的身份運(yùn)行 anacron,所以你必須將它引導(dǎo)到你的本地配置:告訴 anacron 要做什么的 anacrontab
文件,以及幫助 anacron 跟蹤每一個(gè)作業(yè)最后一次執(zhí)行是多少天的 spool 目錄:
anacron -fn -t /home/tux/.local/etc/anacrontab \ -S /home/tux/.var/spool/anacron
-fn
選項(xiàng)告訴 anacron 忽略 時(shí)間戳,這意味著你強(qiáng)迫它無論如何都要運(yùn)行你的 cron 作業(yè)。這完全是為了測(cè)試的目的。
現(xiàn)在一切都設(shè)置好了,你可以測(cè)試作業(yè)了。從技術(shù)上講,你可以在不重啟的情況下進(jìn)行測(cè)試,但重啟是最有意義的,因?yàn)檫@就是設(shè)計(jì)用來處理中斷和不規(guī)則的登錄會(huì)話的?;c(diǎn)時(shí)間重啟電腦、登錄,然后尋找測(cè)試文件:
$ ls /tmp/hello/tmp/hello
假設(shè)文件存在,那么你的示例腳本已經(jīng)成功執(zhí)行?,F(xiàn)在你可以從 ~/.profile
中刪除測(cè)試選項(xiàng),留下這個(gè)作為你的最終配置。
anacron -t /home/tux/.local/etc/anacrontab \ -S /home/tux/.var/spool/anacron
你已經(jīng)配置好了你的個(gè)人自動(dòng)化基礎(chǔ)設(shè)施,所以你可以把任何你想讓你的計(jì)算機(jī)替你管理的腳本放到 ~/.local/etc/cron.daily
目錄下,它就會(huì)按計(jì)劃運(yùn)行。
這取決于你希望作業(yè)運(yùn)行的頻率。示例腳本是每天執(zhí)行一次。很明顯,這取決于你的計(jì)算機(jī)在任何一天是否開機(jī)和醒著。如果你在周五使用電腦,但把它設(shè)置在周末,腳本就不會(huì)在周六和周日運(yùn)行。然而,在周一,腳本會(huì)執(zhí)行,因?yàn)? anacron 會(huì)知道至少有一天已經(jīng)過去了。你可以在 ~/.local/etc
中添加每周、每兩周、甚至每月的目錄,以安排各種各樣的間隔。
要添加一個(gè)新的時(shí)間間隔:
在 ~/.local/etc
中添加一個(gè)目錄(例如 cron.weekly
)。
在 ~/.local/etc/anacrontab
中添加一行,以便在新目錄下運(yùn)行腳本。對(duì)于每周一次的間隔,其配置如下。7 0 cron.mine run-parts /home/tux/.local/etc/cron.weekly/
(0
的值可以選擇一些分鐘數(shù),以適當(dāng)?shù)匮舆t腳本的啟動(dòng))。
把你的腳本放在 cron.weekly
目錄下。
感謝各位的閱讀,以上就是“如何使用Linux的anacron命令”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)如何使用Linux的anacron命令這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!