Linux中的定時任務at crontab

2022-02-25 11:33:01 字數 1718 閱讀 2009

at命令可以用來在某一時段執行一次任務,只會執行一次,不會重複執行。

at命令是由atd服務來控制的,使用之前先檢視atd服務是否正常:

$ /etc/init.d/atd status

* atd is running

如果沒有的話就需要安裝:

$ sudo apt-get install at

$ /etc/init.d/atd start

at命令的基本語法:

at [options] time
常用的options:

time是時間,常用的格式:

乙個例子:

建立乙個任務,1分鐘後輸入hello world到/tmp/t1檔案

$ at now + 1 minutes

at> echo "hello world" > /tmp/t1

at> # 輸入完成後按ctrl + d儲存

可以使用at -l或者atq來檢視剛才建立的任務:

$ atq

3 fri aug 11 22:41:00 2017 a jby

3是任務序號,如果建立錯了任務就可以使用這個數字來刪除:

$ atrm 3
可以用過配置檔案來設定哪些使用者能使用at命令,哪些使用者不能使用:

at命令會先查詢/etc/at.allow檔案,如果這個檔案存在,那麼只有在這個檔案裡面的使用者才能使用at命令。

如果不存在,那麼就會查詢/etc/at.deny檔案,如果檔案存在,那麼不在這個檔案裡面的使用者才可以使用at命令。

如果2個檔案都不存在,那麼只有root才能使用at命令

2個檔案的內容格式都是一行乙個使用者名稱

batch命令的用法跟at一樣,只不過batch新增的任務會在cpu負載小於0.8的時候才執行,如果到了執行時間點cpu負載過高就會延緩執行。

crontab命令是用來一直迴圈執行某個任務。

基本語法:

crontab [-u user] [-l-e-r]
乙個列子

輸入crontab -e進入編輯模式,輸入5 * * * * echo "hello >> /tmp/t1",然後儲存退出(不需要重新啟動cron服務,會自動每分鐘重新讀取任務內容)。

任務的格式為:

分 時 日 月 周 命令
前面5個字段是時間,他們之間用空格隔開。表示的就是再某乙個時間點執行任務,取值範圍就是正常的時間取值範圍(比如:分鐘是0-59,時是0-23),周的取值是0-7表示星期一到星期天,o跟7都是星期天

例子:一些特殊的取值:

cron服務也有兩個檔案/etc/cron.allow/etc/cron.deny來控制使用者的使用許可權,邏輯都at一樣

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...

Linux中的延時任務以及定時任務

root localhost at 23 37 設定任務執行時間 at rm fr mnt 任務執行動作 at ctrl d 用ctrl d發起任務 root localhost at now 1min 延時1分鐘 at rm fr mnt at 命令 注釋at l 檢視任務列表 at c 檢視任務...

linux定時任務

crontab 設定定時任務 crontab 可以根據分鐘 小時 日期 月份 星期的組合來設定定時任務的自動執行 要使用該服務必須啟動 crond 服務,檢視 crond 服務有沒有啟動,執行命令 servicecrond status 一些任務事例,幫助理解 3020 root back.sh 每...