linux: at

weixin_34320159發表於2017-11-30

使用crontab實現定時執行任務,假如我們只是想要讓特定任務執行一次,那麼,這時候就要用到at監控程式了。
一、at服務

cron是一個linux下 的定時執行工具,可以在無需人工干預的情況下執行作業。
  service atd start //啟動服務
  service atd stop //關閉服務
  service atd restart //重啟服務
  service atd reload //重新載入配置
  service atd status //檢視服務狀態

二、at在配置檔案:

at類似列印程式,會把任務放到/var/spool/at目錄中,到指定時間執行它 。at命令相當於另一個shell,執行at time命令時,它傳送一個個命令,可以輸入任意命令或者程式。

三、引數詳解

at [-V] [-q x] [-f file] [-mldbv] time
at -c job ...
atq [-V] [-q x]
atrm [-V] job ...

-V : 印出版本編號

-q : 使用指定的佇列(Queue)來儲存,at 的資料是存放在所謂的 queue 中,使用者可以同時使用多個 queue,而 queue 的編號為 a, b, c... z 以及 A, B, ... Z 共 52 個

-m : 即使程式/指令執行完成後沒有輸出結果, 也要寄封信給使用者

-f file : 讀入預先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案後再一次讀入 網路應用

-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)
-d : 刪除指定 (使用者也可以直接使用 atrm 而不用 at -d)
-v : 列出所有已經完成但尚未刪除的指定

at命令執行流程
  # at 2:05 tomorrow
  at>/home/kyle/do_job
  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 23:59 12/31/2018   任務在2018年12月31號23點59分

[root@localhost ~]# at 5pm +3 days
at> /bin/date 
at> <EOT>
job 1 at 2016-08-30 17:00
[root@localhost ~]# atq
1    2016-08-30 17:00 a root
[root@localhost ~]# at 2:05 tomorrow
at> echo the end of world !
at> <EOT>
job 2 at 2016-08-28 02:05
[root@localhost ~]# atq
2    2016-08-28 02:05 a root
1    2016-08-30 17:00 a root
[root@localhost ~]# atrm 2
[root@localhost ~]# atq
1    2016-08-30 17:00 a root

相關文章