Debian
使用者特定作業與作為特定使用者執行的系統作業
關於 Debian 及其衍生產品,我們該如何理解以下看似矛盾的事實:
/etc/crontab
並/etc/cron.d/*
有一個 user 欄位,這意味著作業正在以使用者身份執行(root 或nonroot)。- 系統作業中
/etc/crontab
的/etc/cron.d/*
作業不是使用者特定的作業嗎?如果您想以 root 或非 root 使用者身份執行作業,您將在哪裡添加作業:
/etc/crontab
、/etc/cron.d/*
或/var/spool/cron/crontab/<user>
?斯蒂芬在 /etc/cron.d 下的文件如何使用?澄清了很多,但我仍然無法弄清楚
系統作業是適用於整個系統的作業。使用者特定作業是代表特定使用者執行的作業;通常是使用者在登錄時手動執行的任務,但他/她希望定期自動執行這些任務——例如備份特定文件,或刷新遠端開發儲存庫,或郵件處理,或鏡像網站
謝謝。
我傾向於使用各種 cron 配置文件,如下所示:
/var/spool/cron/crontab
由“真實”使用者(即與使用系統的人相對應的使用者)使用,使用 編輯crontab -e
;/etc/cron.d
用於包提供的 cron 作業,它可以作為“系統”使用者執行(例如logcheck
用於logcheck
的 cron 作業);正如您在對該主題的其他一些問題的回答中所提到的,/etc/cron.d
它旨在供軟體包使用,至少在基於 Debian 的系統上;/etc/crontab
將用於本地定義的系統作業,以 root 身份執行,但我發現/etc/cron.{hourly,daily,weekly,monthly}
這些作業更方便。在我的評論中,“使用者”是指“人工支持的使用者”(如果你允許我這樣表達的話)。在我看來,作為“系統使用者”(root 使用者或其他使用者)執行的作業都是系統作業。
從 Debian 打包的角度來看,Debian Policy 描述了有關 cron 作業的推薦實踐:總之,
/etc/cron.{hourly,daily,weekly,monthly}
如果合適,則使用,/etc/cron.d
否則。因此,在所有五個目錄中看到包提供作業是正常的。