Linux系統延時和定時機制

2021-08-14 21:23:05 字數 2462 閱讀 8461

背景:人不可能時時刻刻在電腦面前,有時候也存在資源占用問題,因此如果可以延時操作或者定時操作,那將方便許多,今天就來介紹這兩種方法

一、系統延時

1、at命令:(1)at+具體時間表示在將來的特定時間執行你的操作

1)我們可以先在/下建立乙個add檔案

用watch  -n 1 ls -l /add 監控

2)此時執行at命令+具體時間,完成後會》跟你的操作,完成後ctrl+d退出,如下圖

(2)at  -l 表示列出當前的延時任務和任務號(可以看到時間和給出命令的操作者)

(3)at  -r 任務號 刪除未執行的延時任務

如圖,我先給了乙個任務,然後列出來可以顯示,此時我刪除這個任務,只需要選擇其任務號,刪除後我列出發現已經沒有,表示操作成功。

(4)at -c 任務號表示檢視延時任務的執行動作

(5)at命令的黑名單:at延時命令的黑名單是系統存在的,當在該黑名單中寫入使用者名稱,則被寫入的使用者不能執行at命令

用vim /etc/at.deny開啟編輯

如上圖我將text加入黑名單,此時我切換到text使用者,發現at命令將不能被執行

(6)at命令的白名單:預設系統中不存在白名單,需要自己建立,當白名單建立生效後,黑名單則為無效

用vim /etc/at.allow開啟編輯

如上圖,我將text寫入白名單,此時黑名單也有text,我切換到text使用者執行at命令,可以進行操作

(7)at now+1min:表示指定任務的延時時間為當前時間加一分鐘,即當前時間一分鐘後執行,如下圖

二、系統定時:cron程式是由crond.service提供的,寫入該程式的時間和事件是永久儲存的

1、crontab命令

(1)crontab  -e表示當前使用者給出定時任務命令,執行後會開啟乙個vim編輯的視窗,如下圖

上圖有5個星號,依次表示分鐘,小時,天,月,週幾。上圖的指令就是每月每天每小時每分鐘在/att/下建立vm1檔案

(2)crontab -e -u 使用者 表示指定使用者給出定時任務命令,如下圖,指定text使用者

命令為每月的1號和3號以及每月的週三的16:32刪除/att/vm1

(3)crontab -l列出系統的定時任務(只能列出當前使用者的)

(4)crontab -r刪除定時任務(只能刪除當前使用者的)

(5)crontab的黑白名單(和at的黑白名單類似)

1)黑名單:黑名單是系統預設存在的,寫入黑名單的使用者將無法執行cron命令

命令:vim /etc/cron.deny

2)白名單:系統中預設沒有白名單,需要自己建立,白名單建立生效後,黑名單將不再生效

命令:vim /etc/cron.allow

(6)cron任務記錄檔案存放位置:/var/spool/cron/*,如下圖,表示只有root給了定時任務

三、臨時檔案

1、執行臨時檔案配置

寫在裡面的內容表示的意義:d表示格式,/westos表示你生成的目錄   1777表示許可權 root所有人  root所有組 5s(表示在5s內不能對其進行清除操作,時間可以自行設定,這就是臨時檔案的核心)

3、在/westos/下建立檔案,發現5s內無法對其進行清除操作,但是5s後的檔案可以。清除臨時檔案操作systemd-tmpfiles --clean /lib/tmpfiles.d/westos.conf  進行這個操作可以watch -n 1 ls  -l /westos/監控你的操作。

Linux定時延時機制

1 at time time為具體時間,表示在某個時間執行某個任務 at now 表示在距離現在 時間後,執行某個任務 按ctrl d 表示儲存退出互動模式 2 at命令引數詳解 at l at q 檢視當前待執行任務 root localhost at l 6 tue oct 31 19 02 0...

Linux 系統延遲和定時機制

at 命令 at 命令可以指定某一任務在將來的特定時間執行。該作業可能是一次 備份 對您系統的檢查或者特定時間傳送的通知。那些需要花費很長 時間才可完成的作業正適合 at 命令。僅需使用 at 命令將任務設定 為在一分鐘或兩分鐘之後執行。然後您便可以安全登出 因為該任務會 在與 shell 會話斷開...

Linux系統之系統延遲和定時機制

一 系統延時 1 at延時 at命令可以指定某一任務在將來的特定時間執行 必須指定時間 1 at time 指定某一任務在將來的time時刻進行執行 圖中指定在17 51分執行刪除當前目錄中的所有內容,at中要執行的命令寫好後,按 ctrl d 退出,圖中2位置!在17 51後,當前目錄中的檔案全部...