1. 程式人生 > >計劃將來的Linux任務

計劃將來的Linux任務

系統設定一次性延時任務

使用at計劃一次性任務

可供Red Hat Enterprise Linux系統使用者用來計劃將來任務的解決方案之一是at,這不是單機工具,而是一個系統守護程序(atd),它有一組命令列工具可與守護程序(at,atq等等)進行互動。在預設的作業系統安裝過程中,atd守護程序將自動安裝和啟用。atd守護程序可以在at軟體包中找到

at命令發起的延時任務都是一次性的

at 時間點 ---- 在指定的時間進行任務

at now ---- 立刻執行任務

at now+時間段 ---- 過多久之後執行任務

  • 設定延時任務:在08:27 時,在/mnt中新建五個file檔案

at -l   |    atq ---- 檢視當前任務

at -c ---- 檢視延遲任務的內容

at -r ---- 取消當前任務

  • 三種命令的用法,at -c   at -r 後要跟任務編號

 

at命令許可權的設定

/etc/at.deny        ##使用者黑名單,在此名單中出現的使用者不能執行延時任務

/etc/at.allow        ##使用者白名單,預設不存在,但名單一旦存在,黑名單失效,除了白名單中的使用者,其他使用者均無法執行延時任務

黑白名單對root使用者不生效,root使用者擁有最高執行許可權

  • 編輯黑名單,名單中的使用者無法使用at命令

  • 新建白名單,此時黑名單失效,白名單以外的使用者無法使用at命令

 

 

系統設定永久定時任務

使用crontab命令設定使用者級週期性作業

Red Hat Enterprise Linux系統附帶了特別針對週期性作業的crond守護程序,且預設開機啟動並啟動,crond是由多個配置檔案和系統範圍內的檔案控制的,每個使用者對應一個配置檔案

systemctl start crond.service ---- 定時任務程式crond,在系統中每分鐘做任務掃描

crontab -e ---- 編輯當前使用者的計劃任務

crontab -r ---- 刪除當前使用者的計劃任務

crontab -l ---- 檢視當前使用者的計劃任務

crontab -u username -e/-r/-l ---- 以當前使用者指定某個使用者操作計劃任務

 

/var/spool/cron/username/ 定時任務存放位置

週期性表示方式:

* * * * *  分別表示  分 時 天 月 周  (其中,天與周為同級,周設定0或7沒有區別)

* * * * * 每一分鐘 (每月每天每小時每分鐘)       

*/2 * * * * 每兩分鐘 (/num 表示每num x)

*/2 09,17 * * * 每天早上的九點到十點之間,下午五點到六點之間每隔兩分鐘

*/2 09-17 * * * 每天早上九點到下午五點之間每隔兩分鐘

*/2 09-17 1,15 7 2 每個七月的一號和十五號和週二的每天早上九點到下午五點之間每隔兩分鐘

crontab -e 中編輯的內容;

週期 + 命令  例如:   * * * * *  touch file

 

  • 開啟crond服務

  • 設定每兩分鐘進行/mnt目錄下檔案的刪除

  • 取消計劃任務

編輯crond檔案設定系統級週期性作業

/etc/cron.d/ 中新建檔案

檔案格式:週期+使用者+動作

例如: * * * * *  root  rm -f /mnt/*

crontab 命令許可權的設定

/etc/cron.deny ---- 使用者黑名單,在此名單中出現的使用者不能執行定時任務

/etc/cron.allow ---- 使用者白名單,預設不存在,但名單一旦存在,黑名單失效,除了白名單中的使用者,其他使用者均無法執行定時任務
            
如果某使用者westos被寫入黑名單,那麼在westos使用者下不能夠指定某使用者進行定時任務,但是其他使用者可以指定westos使用者進行定時任務

  • 將student使用者新增至黑名單

  • student使用者無法指定任何使用者(包括自己)進行定時任務,但是其他使用者可以指定student使用者進行定時任務

 

系統臨時檔案的管理

系統中服務在正常執行時會產生臨時檔案

/usr/lib/tmpfiles.d/*.conf ---- 系統中臨時檔案的配置

檔案型別  檔名稱  檔案許可權  檔案所有人  檔案所有組  檔案存在時間

     d         /mnt/westos   777             root                root                10s

systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ---- 執行臨時檔案配置

systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*  ---- 清理臨時檔案