linux at命令和 batch 從標准輸入或一個指定的文件讀取命令,這些命令在以後某個時間用 /bin/sh 執行。
linux at命令允許相當復雜的時間指定,他擴展了 POSIX.2 標准。
他接受 HH:MM 的時間式樣,用來指定在一天的某個時間運行一個作業。 (如果時間已過了則假定為第二天。)
你能指定 midnight (午夜)、 noon (中午) 或 teatime (下午4點),你能用 AM 或 PM 後綴指定一天的上午或下午。
你能給出 month-name day 加上可選的年份的式樣用來指定運行linux at命令的日期,或給出 MMDDYY 、 MM/DD/YY 或 DD.MM.YY 式樣用來指定運行linux at命令的日期。日期的指定必須跟在時間指定的後面。你也能給出象 now + 計數 時間單位 的式樣,這裡的時間單位能是 minutes 、 hours 、 days 或 weeks, 你能給時間加一個 today 後綴來指定linux at命令今天運行作業,能給時間加一個 tomorrow 後綴來指定linux at命令 明天運行作業。
例如,
要在三天以後的下午 4 點運行一個作業,linux at命令時間參數能指定為 4pm + 3 days。
要在7月31日上午10:00運行一個作業, linux at命令時間參數能指定為 10am Jul 31,
要在明天上午1點運行一個作業,linux at命令時間參數能指定為 1am tomorrow。
使用linux at命令定期運行程式 , 2005-12-28 18:16:50 by Johnny
使用linux at命令定期運行程式
1. 使用cron運行任務
cron任務的缺點是計劃要經常運行,如果我們只是想要讓特定任務運行一次呢?
那麼,這時候就要用到at監視程式了。
設置linux at命令非常簡單,指示定運行的時間,那麼就會在哪個時候運行。linux at命令類似打印進程,會把任務放到/var/spool/at目錄中,到指定時間運行他。
linux at命令相當於另一個shell,運行at time命令時,他發送一個個命令,能輸入任意命令或程式。
at now + time命令能在指示任務。
假設處理一個大型數據庫,要在別人不用系統時去處理數據,比如凌晨2點5分。那麼我們就應該先建立/home/mj/airplane腳本管理數據庫,計劃處理/home/mj/air-safe文件中的結果。正常方式是這樣啟動下列命令:
# at 2:05 tomorrow
at> /home/mj/airplane > /home/mj/air-safe
at> Ctrl+D
AT Time中的時間表示方法
時間 例子 說明
Minute at now + 5 minutes 任務在5分鐘後運行
Hour at now + 1 hour 任務在1小時後運行
Days at now + 3 days 任務在3天後運行
Weeks at now + 2 weeks 任務在兩周後運行
Fixed at midnight 任務在午夜運行
Fixed at 10:30pm 任務在晚上10點30分開始
Fixed at 1:00 12/20/04 任務在2004年12月20日凌晨1點開始
2. 查看目前在等待執行的任務
輸入任務後,能使用atq命令能看到目前等待執行的任務,輸出提供了任務號、用戶和任務執行時間等信息。
# atq8 2004-12-15 02:05 a mj
裡面的a表示是at任務還是batch命令生成的任務。
3. 刪除linux at命令任務
刪除一個linux at命令任務比較簡單,使用atrm命令就能輕松解決。
比如我知道了任務的隊列號,那麼就能刪除他:
# atrm 8
就刪除了隊列號為8的at任務了。
at -l 列表
at -r 移除