歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下at與cron自動化工作的異同

Linux下at與cron自動化工作的異同

日期:2017/2/28 16:48:18   编辑:Linux教程

在Linux操作系統中,管理員可以通過一定的手段要求系統的工作在一個特定的時間、日期或者當系統平均負荷比較低的時候自動執行某些特定的工作。通常情況下,可以通過at與cron兩個命令來實現自動化作業。而且這兩個命令無論是管理員用戶還是普通用戶都可以使用。如root管理員可以使用自動化的工作管理來執行定期的數據備份、監控系統穩定性與性能參數等等;而且普通用戶也可以利用這項機制來要求系統自動執行工作,如自動執行某個腳本等等。

  雖然這兩個命令都可以達到自動化工作的要求,但是他們有不少的差異。系統管理員要根據這兩個命令的各自特性,並結合自己所需要達到的目的,來選擇合適的實現方式。

  一、at命令權限控制。

  At命令主要用來安排在某個特定時間執行特定的工作。當系統管理員或者用戶有安排在某個時間執行某個腳本的需求時,可以利用at指令來實現這個需求。但是,at與cron命令不同,系統設計者對於at命令提供了一種特殊的保護機制。操作系統使用了at.allow與at.deny兩個文件來限制哪些用戶可以使用at指令,哪些用戶則不行。

如上圖中,這個兩個文件默認保存在/etc文件夾下。這兩個存取控制文件的格式是在每一行設置一個用戶名,而且兩個文件中都不允許有空格符的存在。如果系統管理員出於安全的考慮,需要限制用戶使用at命令,則可以在at.deny控制文件中輸入對應的用戶名字即可。修改存取控制文件後,馬上生效。即不需要重新啟動系統進程這個限制才會生效。而且對於先前已經設置的at指令,也會失效。這主要是因為這個存取控制文件的生效時間是系統在執行at指令的時候。另外需要注意的是,系統管理員不能夠利用這兩個文件來限制root帳戶的權利。Root帳戶隨時都可以執行at指令,即使這個帳戶已經被列入了at.deny存取控制文件的黑名單。

  也許心細的讀者會發現,如果一個帳戶同時存在與這兩個文件中。或者說系統有A、B兩個用戶。在at.allow帳戶中設置為只有A允許使用at指令;而在at.deny存取控制文件中又設置只有A用戶禁止使用at命令。那麼最終的結果會是如何呢?會不會有相互矛盾的地方呢?系統在這裡主要是借鑒了優先級的控制手段來避免這種相互矛盾的情況出現。如當操作系統中管理員同時定義了這兩個文件,那麼系統就會忽視at.deny存取控制文件的存在。也就是說,此時操作系統只考慮at.allow文件中的內容。就上面兩個例子來說,系統將運行A用戶執行at命令(包括root用戶)。其他用戶將無權執行at命令。

  而對於cron自動化命令就沒有這方面的限制。這主要是因為這兩個命令是由不同的設計者實現的。這也是Linux操作系統的一個特性,它是由一個個小的命令所搭建而成的一個操作系統。類似的情況在Linux系統中還有很多。這也是他們兩個命令的最大差異所在。

Copyright © Linux教程網 All Rights Reserved