Linux例行性任務

需求

兩種場景
1. 在某個指定時間執行某項任務。(明天早上檢查磁盤狀態)
2. 週期性執行某項任務。(每天早上備份日誌)


分析

  1. 讓程指定時間運行某些任務,提高自己的工作效率,避免人工登錄機器去運行,特別是有程序依賴時,比如說有些統計任務依賴於某些程序執行完畢,設置at命令則不用再處理;
  2. 機器週期性執行某些任務,用於機器維護、程序監控或數據備份及清理。

一次性任務

使用at命令,依賴於atd服務。

  • at工作方式

    1. 使用at命令,將任務寫入/var/spool/at/目錄內。atd服務訪問該目錄。
  • 權限控制

    1. 如果含有/etc/at.allow文件,則只有在該文件中的用戶才能使用at。
    2. 如果不含有/etc/at.allow文件,但含有/etc/at.deny文件,則只有不在該文件中的用戶才能使用at。
    3. 如果不含有/etc/at.allow文件和/etc/at.deny文件,則只有root用戶才能使用at。
命令 用途 示例 備註
at now + 5 minutes[enter] … [Ctrl+D] 創建任務 at now + 10 minutes at> cat .vimrc > /home/work/orage at> <EOT>
atq 查看任務 結果: 3 2017-02-06 17:36 a root 第一列數據爲任務id,第二列數據爲時間,最後一列爲創建者
atrm id 將第id個任務刪除 atrm 3

週期性命令

使用crontab命令,依賴於crond服務。

  • crontab工作方式

    1. 使用crontab命令,將任務寫入/var/spool/cron/目錄內。cron服務問該目錄。
  • 權限控制

    1. 如果含有/etc/cron.allow文件,則只有在該文件中的用戶才能使用crontab。
    2. 如果不含有/etc/cron.allow文件,但含有/etc/cron.deny文件,則只有不在該文件中的用戶才能使用crontab。
    3. 如果不含有/etc/cron.allow文件和/etc/cron.deny文件,則只有root用戶才能使用crontab。
  • 例行任務級別

    1. /etc/crontab 系統級別,可配置路徑和郵箱對象。
      還有/etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly 四個週期性執行目錄可以放置任務。
    2. /etc/cron.d/* 程序級別
    3. /var/spool/cron/* 單用戶個性化
命令 用途 示例 備註
crontab -e 創建任務 crontab -e
crontab -l 查看任務 crontab -l
crontab -r 刪除所有任務 crontab -r
-u username參數 指定執行任務的用戶

- crontab每行參數設定
轉自網站:<a href=http://linux.vbird.org/linux_basic/0430cron.php#whatiscron” title=”” />


其它

  • 某項服務deamon運行狀態查看/操作:/etc/init.d/deamon status/start/stop/restart
  • 某項服務deamon是否預設啓動設置:chkconfig daemon on/off
  • 系統所有服務查看:service –status-all

總結

主要是複習下LINUX系統at和crontab兩個命令,旨在於多有意識使用這兩個命令提高工作效率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章