命令格式:at 時間 (回車後會換行輸入待執行的命令,命令輸入完畢按ctrl+d會建立定時任務或延時任務)
定時任務:at 指定時間 舉例:at 01:31 在1:31時候執行
延時任務:at 延時時間 舉例:at now+1min 一分鐘以後執行
為了便於定時任務效果的檢視,使用watch命令設定每一秒進行對/mnt目錄的監控:
設定時間和命令後執行ctrl+d可以建立任務,其中1為任務編號:
效果:在01:31時,可以在監控介面裡看到檔案已經被建立即任務已經準時執行
效果:檔案file22被建立:
1> at -c 編號 #檢視即將進行的任務的詳細資訊:
在02:00設定乙個任務,可以看到任務編號為3,at -c 3 可以檢視任務的內容,任務內容會在指令結果的最後面顯示:
可以看到任務的內容為建立檔案file3:
3> at -r 編號 #取消即將執行的任務
可以看到任務取消之後,無法再檢視到任務:
黑名單 /etc/at.deny
白名單 /etc/at.allow
當空白白名單生效時,所有普通使用者不得執行at操作
白名單存在時,系統不識別黑名單
舉例:在/etc/目錄下建立黑名單:
在黑名單中寫入限定許可權的使用者名稱wetsos和linux,退出儲存後該名單裡面的使用者無法使用at指令:
切換到黑名單中的普通使用者執行at指令,顯示使用者的at指令不被允許使用:
有黑名單的存在,就有白名單的存在,黑名單裡面的使用者不能使用at指令,白名單指只有在白名單裡面的使用者可以執行at指令(超級使用者除外),當白名單為空時,所有普通使用者不得執行at指令。解除白名單的限制則需要刪除掉白名單這個檔案:
可以看到白名單裡面的westos和linux使用者可以執行at指令。
剛才在執行黑名單時,黑名單裡面的禁止使用者是westos和linux,但當同樣的使用者放在白名單時,黑名單裡面與白名單相同名稱的使用者的許可權限制將被解除,也就是說白名單的優先順序比黑名單高,當白名單存在時,相同名稱的黑名單使用者限制將失效。
crontab -u root -e #以超級使用者身份設定定時檔案
crontab檔案中的星號意義:
分鐘 小時 天 月 周
* * * * * #每時每刻執行
* 8-17 * * * #每天的8點到17點執行
*/2 8-17 1,15 * * #每月的1號和15號的8點到17點,每2分鐘執行一次
*/2 08-17 1,15 3-5 3 #3月到5月的每個週三,1號,15號的8點到17點,每兩分鐘執行一次
在02:03時指定檔案被建立表示任務已經執行:
cat /var/spool/cron/root #檢視使用者級別的定時任務
同樣crontab指令的許可權設定也可以通過黑名單和白名單來決定,設定方式與at指令的內容和情況相同:
黑名單:/etc/cron.deny
白名單:/etc/cron.allow
同樣還有使用指令碼建立定時任務的方式:
vim/etc/cron.d/westos #在/etc/cron.d目錄下建立wetsos這個指令碼
* * * * * root touch /mnt/file1 #以超級使用者的身份每分鐘建立檔案 (在crontab -e 命令中,不需要強調使用者,一般預設為執行指令的使用者,但在寫入指令時需要加上指令所在的目錄/bin。在cron.d指令碼中需要強調使用者,指令不需要新增目錄/bin)
每天的02:05以超級使用者的身份建立檔案:
檢視任務:cat /etc/cron.d/westos
1. vim /usr/lib/tmpfiles.d/westos.conf
2 systemd-tmpfiles --creat /usr/lib/tmpfiles.d/* #執行指令碼檔案
3 touch /mnt/westos/file #在指定目錄下建立檔案
4 systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* #指令碼檔案執行後,新建的超過規定時間的檔案將被刪除
Linux系統定時任務
我們知道,在windows系統中有定時任務,在控制面板 管理工具 任務計畫程式設定任務可以在指定的時間執行指定的程式或其他工作。那麼在linux中也有這個功能,而支援這個功能的服務就是crond服務。在linux中這個服務是預設安裝的,也是開機自啟動的。我們可以通過chkconfig list gr...
Linux 系統定時任務
部落格整理於 目的 讓我們的計算機在指定的時間完成指定的任務,可以是系統的乙個命令,也可以是我們之前寫好的乙個指令碼。比如說,我們的伺服器晚上的時候 壓力比較小 定時拷貝資料庫,日誌。可以讓我們可以從重複勞動中解脫。windows當中也有這樣的功能 在附件中的 任務計畫程式 1.1確定at安裝 檢視...
Linux系統定時任務
systemctl start crond systemctl enable crond注意 crond服務一般預設就是啟動和自啟動的,所以一般不需要手動開啟。e 編輯crontab定時任務 l 查詢crontab任務 r 刪除當前使用者所有的crontab任務 代表任何時間。例如第乙個 就代表乙個...