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