在特定時間執行一次作業
注意: 預設情況下, at 大多數現代發行版都沒有安裝。
要在比現在更多的時間執行一次作業,在本例中的下午 5 點,你可以使用
echo "somecommand &" | at 5pm
如果要捕獲輸出,可以通常的方式執行此操作:
echo "somecommand > out.txt 2>err.txt &" | at 5pm
at
瞭解很多時間格式,所以你也可以這麼說
echo "somecommand &" | at now + 2 minutes
echo "somecommand &" | at 17:00
echo "somecommand &" | at 17:00 Jul 7
echo "somecommand &" | at 4pm 12.03.17
如果沒有給出年份或日期,則假定下次指定的時間發生。因此,如果你給了今天已經過去的一個小時,它將在明天開始,如果你給了一個已經過去一年的月份,它將在明年開始。
這也和 nohup 一起工作,就像你期望的那樣。
echo "nohup somecommand > out.txt 2>err.txt &" | at 5pm
還有一些命令可以控制定時作業:
- atq 列出所有定時作業( atq ueue)
- atrm 刪除了一個定時工作( atr e m ove)
- 批處理基本上與 at 相同,但僅在系統負載低於 0.8 時才執行作業
所有命令都適用於登入使用者的作業。如果以 root 使用者身份登入,系統範圍的作業當然會被處理。