定時任務at

2022-07-23 01:12:22 字數 2157 閱讀 9148

1. at一次性執行定時任務

1.1 at服務管理與訪問控制

at命令要想正確執行,需要atd服務的支援。atd服務是獨立的服務

[root@centos2 ~]# systemctl status atd

atd服務啟動後,at命令才能正常使用。at命令的訪問控制,at的訪問控制指的是允許哪些使用者使用at命令設定定時任務,或者不允許哪些使用者使用at命令。可以想象成為設定黑名單或設定白名單。at的訪問控制是依靠/etc/at.allow檔案(白名單)和/etc/at.deny檔案(黑名單)這兩個檔案來實現的,具體規則:

如果系統中有/etc/at.allow檔案,那麼只有寫入/etc/at.allow檔案(白名單)中的使用者可以使用at命令,其他使用者不能使用at命令(/etc/at.deny檔案會被忽略,也就是說同乙個使用者既寫入/etc/at.allow檔案,也寫入/etc/at.deny檔案,那麼這個使用者是可以使用at命令的,因為/etc/at.allow檔案優先順序更高。)

如果系統中沒有/etc/at.allow檔案,只有/etc/at.deny檔案,那麼寫入/etc/at.deny檔案(黑名單)中的使用者不能使用at命令,其他使用者可以使用at命令。不過這個檔案對root使用者不生效。

如果系統中這兩個檔案都不存在,那麼只有root使用者可以使用at命令。

系統中預設時只有/etc/at.deny檔案,而且這個檔案是空的,這樣的話系統中所有的使用者都可以使用at命令。不過如果我們打算控制使用者的at命令許可權,把使用者寫入/etc/at.deny檔案即可。

/etc/at.allow檔案的許可權更高,如果/etc/at.allow檔案存在,則/etc/at.deny檔案失效。/etc/at.allow管理行為更加嚴格,因為只有寫入這個檔案的使用者才能使用at命令,如果需要禁用at命令的使用者較多,則可以把少數使用者寫入這個檔案。/etc/at.deny檔案的管理較為鬆散,如果允許使用at命令的使用者較多,則可以把禁用的使用者寫入這個檔案。不過這兩個檔案都不能對root使用者生效。

1.2 at命令

[root@centos2 ~]# at [選項] 時間

選項: -m:當at工作完成後,無論是否命令有輸出,都用email通知執行at命令的使用者

-c 工作號:顯示該at工作的實際內容

at支援的時間格式如下:

hh:mm 在指定的「小時:分鐘」執行命令,例:

01:10

hh:mm yyyy-mm-dd 在指定的「小時:分鐘 年-月-日」執行,例:01:10

2019-08-08

hh:mm[am|pm] [month] [date] 在指定的"

小時:分鐘[上午|下午] [月] [日]

"執行,例如 01:10 july 25

hh:mm[am|pm] [minutes|hours|days|weeks] 在指定的時間「再加多久執行」,例 now + 5 minutes,05am + 2 hours

[root@centos2 ~]# cat hello.sh

#!/bin/bash

echo

"hello world

"[root@centos2 ~]# at now +1

minutes

at> /root/hello.sh >>hello.log

at> 使用ctrl+d儲存at任務job

1 at wed nov 13

17:44:00

2019    這是第乙個at任務

[root@centos2 ~]# cat

hello.log

hello world

1.3 其他at管理命令

at還有查詢和刪除命令

[root@centos2 ~]# atq

#查詢當前伺服器上的at工作

[root@centos2 ~]# atq

2 wed nov 13

17:55:00

2019

a root

[root@centos2 ~]# atrm [工作號]

#刪除指定的at任務

[root@centos2 ~]# atrm 2

[root@centos2 ~]# atq

#刪除2號at任務後,再查詢就沒有at任務存在了

linux定時任務 at定時任務

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

at定時任務

at的守護程序每60秒檢查一次作業佇列,有作業時檢查作業,時間恰好達到,則執行作業。前提 保證atd程序已經啟動,檢查atd程序是否啟動 ps ef grep atd。atd的命令格式 at 選項 時間 ctrl d 結束at命令的輸入。選項 m 任務完成後給使用者傳送郵件,沒有標準輸出。i atg...

at定時任務

1 at是只執行一次,執行完後任務刪除。at的守護程序atd會以後臺模式執行,檢查作業佇列來執行。2 預設 atd每60秒巡邏一次,有作業時候,檢查作業時間,如果和當前時間一樣,就執行任務 3 在使用at命令的時候,一定要保證他的守護者atd程序的啟動。用ps ef grep atd來檢視atd是否...