新聞中心
在 linux 系統(tǒng)中有一些其他開(kāi)源項(xiàng)目可以結(jié)合或者替代 cron 系統(tǒng)使用。

Linux cron 系統(tǒng) 是一項(xiàng)經(jīng)過(guò)時(shí)間檢驗(yàn)的成熟技術(shù),然而在任何情況下它都是最合適的系統(tǒng)自動(dòng)化工具嗎?答案是否定的。有一些開(kāi)源項(xiàng)目就可以用來(lái)與 cron 結(jié)合或者直接代替 cron 使用。
at 命令
cron 適用于長(zhǎng)期重復(fù)任務(wù)。如果你設(shè)置了一個(gè)工作任務(wù),它會(huì)從現(xiàn)在開(kāi)始定期運(yùn)行,直到計(jì)算機(jī)報(bào)廢為止。但有些情況下你可能只想設(shè)置一個(gè)一次性命令,以備不在計(jì)算機(jī)旁時(shí)該命令可以自動(dòng)運(yùn)行。這時(shí)你可以選擇使用 at 命令。
at 的語(yǔ)法比 cron 語(yǔ)法簡(jiǎn)單和靈活得多,并且兼具交互式和非交互式調(diào)度方法。(只要你想,你甚至可以使用 at 作業(yè)創(chuàng)建一個(gè) at 作業(yè)。)
$ echo "rsync -av /home/tux/ me@myserver:/home/tux/" | at 1:30 AM
該命令語(yǔ)法自然且易用,并且不需要用戶清理舊作業(yè),因?yàn)樗鼈円坏┻\(yùn)行后就完全被計(jì)算機(jī)遺忘了。
閱讀有關(guān) at 命令 的更多信息并開(kāi)始使用吧。
systemd
除了管理計(jì)算機(jī)上的進(jìn)程外,systemd 還可以幫你調(diào)度這些進(jìn)程。與傳統(tǒng)的 cron 作業(yè)一樣,systemd 計(jì)時(shí)器可以在指定的時(shí)間間隔觸發(fā)事件,例如 shell 腳本和命令。時(shí)間間隔可以是每月特定日期的一天一次(例如在星期一的時(shí)候觸發(fā)),或者在 09:00 到 17:00 的工作時(shí)間內(nèi)每 15 分鐘一次。
此外 systemd 里的計(jì)時(shí)器還可以做一些 cron 作業(yè)不能做的事情。
例如,計(jì)時(shí)器可以在一個(gè)事件 之后 觸發(fā)腳本或程序來(lái)運(yùn)行特定時(shí)長(zhǎng),這個(gè)事件可以是開(kāi)機(jī),可以是前置任務(wù)的完成,甚至可以是計(jì)時(shí)器本身調(diào)用的服務(wù)單元的完成!
如果你的系統(tǒng)運(yùn)行著 systemd 服務(wù),那么你的機(jī)器就已經(jīng)在技術(shù)層面上使用 systemd 計(jì)時(shí)器了。默認(rèn)計(jì)時(shí)器會(huì)執(zhí)行一些瑣碎的任務(wù),例如滾動(dòng)日志文件、更新 mlocate 數(shù)據(jù)庫(kù)、管理 DNF 數(shù)據(jù)庫(kù)等。創(chuàng)建自己的計(jì)時(shí)器很容易,具體可以參閱 David Both 的文章 使用 systemd 計(jì)時(shí)器來(lái)代替 cron。
anacron 命令
cron 專門(mén)用于在特定時(shí)間運(yùn)行命令,這適用于從不休眠或斷電的服務(wù)器。然而對(duì)筆記本電腦和臺(tái)式工作站而言,時(shí)常有意或無(wú)意地關(guān)機(jī)是很常見(jiàn)的。當(dāng)計(jì)算機(jī)處于關(guān)機(jī)狀態(tài)時(shí),cron 不會(huì)運(yùn)行,因此設(shè)定在這段時(shí)間內(nèi)的一些重要工作(例如備份數(shù)據(jù))也就會(huì)跳過(guò)執(zhí)行。
點(diǎn)擊參閱關(guān)于 使用 anacron 獲得更好的 crontab 效果 的更多內(nèi)容。
自動(dòng)化
名稱欄目:Linux中cron系統(tǒng)的4種替代方案
文章路徑:http://m.fisionsoft.com.cn/article/cdggpdd.html


咨詢
建站咨詢
