在特定時間執行一次作業

注意: 預設情況下, 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 使用者身份登入,系統範圍的作業當然會被處理。