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

一篇學(xué)會 Linux at 命令詳解

系統(tǒng) Linux
在 Linux 系統(tǒng)里,我們同樣也有類似的需求。比如我們想在凌晨 1 點將文件上傳服務(wù)器,或者在晚上 10 點確認(rèn)系統(tǒng)狀態(tài),等等。

[[431945]]

大家好,我是良許。

生活中,我們有太多場景需要使用到鬧鐘,比如早上 7 點起床,下午 4 點開會,晚上 8 點購物,等等。

在 Linux 系統(tǒng)里,我們同樣也有類似的需求。比如我們想在凌晨 1 點將文件上傳服務(wù)器,或者在晚上 10 點確認(rèn)系統(tǒng)狀態(tài),等等。

但我們不可能一直守在電腦前,畢竟我們也需要下班/睡覺,還要陪女朋友(new一個也行)。而且即使在上班期間,如果到點了還需要人工操作,未免效率太低了。

at 命令就是為這個需求而誕生的。使用 at 命令,你可以在特定時間自動完成你所設(shè)定的任務(wù),也可以實現(xiàn)自動化,非常方便快捷!

安裝 at 命令

一般來講,大部分 Linux 發(fā)行版都已經(jīng)安裝了 at 命令,不確定的話可以使用 at -V 命令查看,如果有版本返回,說明就可以正常使用 at 命令。

  1. at -V 
  2. at version 3.1.13 

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

  1. $ sudo systemctl enable --now atd 

at 命令基本用法

語法

  1. at [選項] [日期時間] 

選項

  1. -f:指定包含具體指令的任務(wù)文件 
  2. -q:指定新任務(wù)的隊列名稱 
  3. -l:顯示待執(zhí)行任務(wù)的列表 
  4. -d:刪除指定的待執(zhí)行任務(wù) 
  5. -m:任務(wù)執(zhí)行完成后向用戶發(fā)送 E-mail 

參數(shù)

日期時間:指定任務(wù)執(zhí)行的日期時間

使用 at 命令交互性安排任務(wù)

想想看,我們平時是怎么使用鬧鐘這個工具的?首先我們點擊鬧鐘軟件上的加號,然后再設(shè)定時間,再在備注里輸入鬧鐘的目的。

使用 at 命令交互性安排任務(wù)也是一樣的道理。首先你輸入 at 命令,然后再跟上具體的時間。

回車之后就進(jìn)入到交互性界面,你再具體輸入要做的事情(命令),最后以結(jié)束輸入,任務(wù)就設(shè)置好了。

例如,你想在早上 11:20 的時候,在 at-test.txt 文檔里寫入 hello world 這句話,可以這樣交互性輸入:

  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 小時制或?qū)r間轉(zhuǎn)換為 UTC 格式。通常,可以直接使用我們生活中常用的單詞它就能理解,例如noon、 1:30 PM、 13:37等。

在 11:20 過后,你可以使用 cat 命令檢查一下 at-test.txt 文件是否有內(nèi)容寫入:

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

使用 at 命令安排任務(wù)

如果你不想使用交互的方式來給 at 命令安排任務(wù),可以使用管道將 echo 或 printf 的值傳遞給 at 命令。

比如,我想從現(xiàn)在開始一分鐘后向 at-test.txt 文件寫入 hello again 語句:

  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 命令使用的是我們?nèi)粘I钪兴褂玫臅r間格式,非常方便:

  • YYMMDDhhmm[.ss] (縮寫年、月、日、小時、分鐘[秒])
  • CCYYMMDDhhmm[.ss] (完整年、月、日、小時、分鐘和[秒])
  • now
  • midnight
  • noon
  • teatime`(下午4點)
  • AM
  • PM

時間和日期可以是絕對的,也可以添加一個加號 ( + ) 使它們相對于現(xiàn)在。在指定相對時間時,下面這些日常生活中所使用的詞匯都可以使用:

  • minutes
  • hours
  • days
  • weeks
  • months
  • years

下面是一些 at 命令有效表達(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 任務(wù)隊列

隨時時間的推移,我們可以忘記在 at 命令隊列時設(shè)置了多少個任務(wù),如果你想進(jìn)行查看,可以使用 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)容,就必須查看 at spool 。只有 root 用戶才能查看at spool,因此你必須使用 sudo 來查看 spool 或 cat 任務(wù)的內(nèi)容。

小結(jié)

at 命令是避免忘記在將來特定時間的任務(wù)或在你離開時讓計算機(jī)為你運行任務(wù)的非常好的方式。與 cron 命令不一樣的是,它不需要使任務(wù)從現(xiàn)在一直循環(huán)運行,因此它的語法比 cron 簡單得多。

下次你想在下班后讓系統(tǒng)為你做個工作,可以試試 at 命令。

本文轉(zhuǎn)載自微信公眾號「良許Linux」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系良許Linux公眾號。

 

責(zé)任編輯:武曉燕 來源: 良許Linux
相關(guān)推薦

2021-12-04 22:05:02

Linux

2022-01-02 08:43:46

Python

2022-02-07 11:01:23

ZooKeeper

2021-12-01 06:59:27

Linux發(fā)行版Manjaro

2023-01-03 08:31:54

Spring讀取器配置

2021-05-11 08:54:59

建造者模式設(shè)計

2021-07-05 22:11:38

MySQL體系架構(gòu)

2021-07-06 08:59:18

抽象工廠模式

2022-08-26 09:29:01

Kubernetes策略Master

2023-11-28 08:29:31

Rust內(nèi)存布局

2021-07-02 09:45:29

MySQL InnoDB數(shù)據(jù)

2022-08-23 08:00:59

磁盤性能網(wǎng)絡(luò)

2021-07-02 08:51:29

源碼參數(shù)Thread

2021-07-16 22:43:10

Go并發(fā)Golang

2021-09-28 08:59:30

復(fù)原IP地址

2022-04-12 08:30:52

回調(diào)函數(shù)代碼調(diào)試

2021-10-27 09:59:35

存儲

2022-03-11 10:21:30

IO系統(tǒng)日志

2023-03-13 21:38:08

TCP數(shù)據(jù)IP地址

2023-11-01 09:07:01

Spring裝配源碼
點贊
收藏

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