自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用 Linux 的 at 命令來安排一個任務(wù)

運(yùn)維 系統(tǒng)運(yùn)維
計算機(jī)擅長 自動化,但不是每個人都知道如何使自動化工作。不過,能夠在特定的時間為電腦安排一個任務(wù),然后忘記它,這確實是一種享受。

at 命令是一種在特定時間和日期安排一次性任務(wù)的 Linux 終端方法。

計算機(jī)擅長 自動化,但不是每個人都知道如何使自動化工作。不過,能夠在特定的時間為電腦安排一個任務(wù),然后忘記它,這確實是一種享受。也許你有一個文件要在特定的時間上傳或下載,或者你需要處理一批還不存在但可以保證在某個時間存在的文件,或者需要監(jiān)控設(shè)置,或者你只是需要一個友好的提醒,在下班回家的路上買上面包和黃油。

這就是 at 命令的用處。

[[419060]]

什么是 Linux at 命令?

at 命令是在 Linux 終端讓你在特定時間和日期安排一次性工作的方法。它是一種自發(fā)的自動化,在終端上很容易實現(xiàn)。

安裝 at

在 Linux 上,at 命令可能已經(jīng)安裝了。你可以使用 at -V 命令來驗證它是否已經(jīng)安裝。只要返回一個版本號,就說明你已經(jīng)安裝了 at。

  1. at -Vat version x.y.z 

如果你試圖使用 at,但沒有找到該命令,大多數(shù)現(xiàn)代的 Linux 發(fā)行版會為你提供缺少的 at 軟件包。

你可能還需要啟動 at 守護(hù)程序,稱為 atd。在大多數(shù) Linux 系統(tǒng)中,你可以使用 systemctl 命令來啟用該服務(wù),并將它們設(shè)置為從現(xiàn)在開始自動啟動:

  1. $ sudo systemctl enable --now atd 

用 at 交互式地安排一個作業(yè)

當(dāng)你使用 at 命令并加上你希望任務(wù)運(yùn)行的時間,會打開一個交互式 at 提示符。你可以輸入你想在指定時間運(yùn)行的命令。

做個比喻,你可以把這個過程看作是一個日歷應(yīng)用,就像你在你的手機(jī)上使用的那樣。首先,你在某一天的某個時間創(chuàng)建一個事件,然后指定你想要發(fā)生什么。

例如,可以試試創(chuàng)建一個未來幾分鐘的任務(wù),來給自己計劃一個備忘錄。這里運(yùn)行一個簡單的任務(wù),以減少失敗的可能性。要退出 at 提示符,請按鍵盤上的 Ctrl+D。

  1. at 11:20 AM 
  2. warning: commands will be executed using /bin/sh 
  3. at> echo "hello world" > ~/at-test.txt 
  4. at> <EOT> 
  5. job 3 at Mon Jul 26 11:20:00 2021 

正如你所看到的,at 使用直觀和自然的時間定義。你不需要用 24 小時制的時鐘,也不需要把時間翻譯成 UTC 或特定的 ISO 格式。一般來說,你可以使用你自然想到的任何符號,如 noon、1:30 PM、13:37 等等,來描述你希望一個任務(wù)發(fā)生的時間。

等待幾分鐘,然后在你創(chuàng)建的文件上運(yùn)行 cat 或者 tac 命令,驗證你的任務(wù)是否已經(jīng)運(yùn)行:

  1. $ cat ~/at-test.txt 
  2. hello world 

用 at 安排一個任務(wù)

你不必使用 at 交互式提示符來安排任務(wù)。你可以使用 echo 或 printf 向它傳送命令。在這個例子中,我使用了 now 符號,以及我希望任務(wù)從現(xiàn)在開始延遲多少分鐘:

  1. $ echo "echo 'hello again' >> ~/at-test.txt" | at now +1 minute 

一分鐘后,驗證新的命令是否已被執(zhí)行:

  1. $ cat ~/at-test.txt 
  2. hello world 
  3. hello again 

時間表達(dá)式

at 命令在解釋時間時是非常寬容的。你可以在許多格式中選擇,這取決于哪一種對你來說最方便:

  • YYMMDDhhmm[.ss](兩位的年份、月、日、小時、分鐘,及可選的秒)
  • CCYYMMDDhhmm[.ss](四位的年份、月、日、時、分鐘,及可選的秒)
  • now(現(xiàn)在)
  • midnight(午夜 00:00)
  • noon(中午 12:00)
  • teatime(下午 16 點(diǎn))
  • AM(上午)
  • PM(下午)

時間和日期可以是絕對時間,也可以加一個加號(+),使其與 now 相對。當(dāng)指定相對時間時,你可以使用你可能用過的詞語:

  • minutes(分鐘)
  • hours(小時)
  • days(天)
  • weeks(星期)
  • months(月)
  • years(年)

時間和日期語法

at 命令對時間的輸入相比日期不那么寬容。時間必須放在第一位,接著是日期,盡管日期默認(rèn)為當(dāng)前日期,并且只有在為未來某天安排任務(wù)時才需要。

這些是一些有效表達(dá)式的例子:

  1. $ echo "rsync -av /home/tux me@myserver:/home/tux/" | at 3:30 AM tomorrow 
  2. $ echo "/opt/batch.sh ~/Pictures" | at 3:30 AM 08/01/2022 
  3. $ echo "echo hello" | at now + 3 days 

查看你的 at 隊列

當(dāng)你愛上了 at,并且正在安排任務(wù),而不是在桌子上的廢紙上亂寫亂畫,你可能想查看一下你是否有任務(wù)還在隊列中。

要查看你的 at 隊列,使用 atq 命令:

  1. $ atq 
  2. 10 Thu Jul 29 12:19:00 2021 a tux 
  3. 9 Tue Jul 27 03:30:00 2021 a tux 
  4. 7 Tue Jul 27 00:00:00 2021 a tux 

要從隊列中刪除一個任務(wù),使用 atrm 命令和任務(wù)號。例如,要刪除任務(wù) 7:

  1. $ atrm 7 
  2. $ atq 
  3. 10 Thu Jul 29 12:19:00 2021 a tux 
  4. 9 Tue Jul 27 03:30:00 2021 a tux 

要看一個計劃中的任務(wù)的實際內(nèi)容,你需要查看 /var/spool/at 下的內(nèi)容。只有 root 用戶可以查看該目錄的內(nèi)容,所以你必須使用 sudo 來查看或 cat 任何任務(wù)的內(nèi)容。

用 Linux at 安排任務(wù)

at 系統(tǒng)是一個很好的方法,可以避免忘記在一天中晚些時候運(yùn)行一個作業(yè),或者在你離開時讓你的計算機(jī)為你運(yùn)行一個作業(yè)。與 cron 不同的是,它不像 cron 那樣要求任務(wù)必須從現(xiàn)在起一直按計劃運(yùn)行到永遠(yuǎn),因此它的語法比 cron 簡單得多。

等下次你有一個希望你的計算機(jī)記住并管理它的小任務(wù),試試 at 命令。

責(zé)任編輯:未麗燕 來源: Linux中國
相關(guān)推薦

2020-04-10 09:56:12

at命令Linux安排任務(wù)

2021-05-04 16:38:54

Linux數(shù)學(xué)游戲

2022-04-19 09:03:22

Linuxcron命令

2021-09-22 15:00:24

Linuxwatch 命令

2021-04-11 10:08:50

LinuxLinux命令ntpdate

2021-04-13 10:25:57

Linux命令pstree

2015-10-14 10:45:04

linux命令less

2009-07-25 17:24:45

2015-10-22 09:26:20

linux命令whereis命令

2021-06-26 16:24:21

Linux命令系統(tǒng)

2018-01-02 10:36:29

Linux命令Cheat

2023-11-23 16:46:55

LinuxAWK運(yùn)維

2009-08-18 14:04:04

2016-03-01 14:37:47

華為

2023-03-01 09:39:40

調(diào)度系統(tǒng)

2022-08-15 15:43:29

Linuxcron

2011-03-02 15:47:37

PureftpdPureDBLinux

2022-11-09 11:01:11

Linux命令后臺

2020-11-18 09:25:39

Docker

2020-12-22 10:57:36

DockerLinux程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號