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

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

系統(tǒng) Linux
at 命令可以很容易地安排 Linux 任務(wù)在你選擇的任何時間或日期運行,讓我們來看看它能為你做什么。

[[321735]]

at 命令可以很容易地安排 Linux 任務(wù)在你選擇的任何時間或日期運行,讓我們來看看它能為你做什么。

當(dāng)你希望命令或腳本在某個特定時間運行時,你不需要將手指放在鍵盤上盤旋等待按下回車鍵,或者是在特定時間坐在辦公桌前。相反,你可以通過 at 命令來設(shè)置任務(wù)。在本文中,我們將研究如何使用 at 來安排任務(wù),如何精確地選擇任務(wù)希望運行的時間,以及如何使用 at 來查看安排運行的任務(wù)。

at vs cron

對于那些使用 cron 在 Linux 系統(tǒng)上安排任務(wù)的人來說,at 命令類似于 cron,因為你可以在選定的時間調(diào)度任務(wù),但是 cron 用于定期運行的作業(yè) —— 甚至是每年僅一次。大多數(shù) cron 作業(yè)的頻率都設(shè)置為每天、每周或每月運行一次,不過你可以控制運行的頻率和時間。

另一方面,at 命令用于僅運行一次的任務(wù)。想在午夜重啟系統(tǒng)?沒問題,只要你有適當(dāng)?shù)臋?quán)限,at 可以為你完成此操作。如果你希望系統(tǒng)在每個星期六凌晨 2 點重啟,那么改用 cron。

使用 at

at 命令很容易使用,只需記住幾件事。一個簡單使用 at 的例子類似于這樣:

  1. $ at 5:00PM
  2. at> date >> thisfile
  3. at> <EOT>

在輸入 at 和應(yīng)該運行命令的時間,at 會提示你在設(shè)定時間會運行該命令(此例中是 date 命令)。輸入 ^DCtrl + d)來完成請求。

假設(shè)我們在下午 5 點之前設(shè)置這個 at 命令,那么這個日期和時間將在當(dāng)天下午 5 點添加到名為 thisfile 文件的末尾。否則,該命令將在第二天下午 5 點運行。

at 命令進行交互時,可以輸入多個命令。如果你要同時運行多個命令,只需輸入多個命令行即可:

  1. $ at 6:22
  2. warning: commands will be executed using /bin/sh
  3. at> echo first >> thisfile
  4. at> echo second >> thisfile
  5. at> <EOT>

在上面的命令中,我們使用了一個普通的用戶賬戶,將一些簡單的文本添加到該用戶主目錄的文件中。如果在上午 6:22 之后運行這些命令,那么命令會在第二天運行,因為 6:22 表示上午 6:22。如果你想在下午 6:22 運行,使用 6:22 PM 或者 18:22。6:22 PM 這樣也是可以工作的。

你也可以通過使用 at 來安排命令在指定的日期或時間運行,例如 10:00AM April 15 2021noon + 5 days(從今天起 5 天內(nèi)的中午運行),以下是一些例子:

  1. at 6PM tomorrow
  2. at noon April 15 2021
  3. at noon + 5 days
  4. at 9:15 + 1000 days

在指定要運行的命令并按下 ^D 后,你會注意到 at 命令為每個請求分配了一個作業(yè)編號,這個數(shù)字將顯示在 at 命令的作業(yè)隊列中。

  1. $ at noon + 1000 days
  2. warning: commands will be executed using /bin/sh
  3. at> date >> thisfile
  4. at> <EOT>
  5. job 36 at Tue Dec 27 12:00:00 2022 <== job # is 36

檢查隊列

你可以使用 atq(at queue)命令來查看 at 作業(yè)隊列:

  1. $ atq
  2. 32 Thu Apr 2 03:06:00 2020 a shs
  3. 35 Mon Apr 6 12:00:00 2020 a shs
  4. 36 Tue Dec 27 12:00:00 2022 a shs
  5. 34 Thu Apr 2 18:00:00 2020 a shs

如果你需要取消隊列中的一個作業(yè),使用 atrm(at remove)命令和作業(yè)編號:

  1. $ atrm 32
  2. $ atq
  3. 35 Mon Apr 6 12:00:00 2020 a shs
  4. 36 Tue Dec 27 12:00:00 2022 a shs
  5. 34 Thu Apr 2 18:00:00 2020 a shs

你可以使用 at -c 命令來查看安排任務(wù)的詳細(xì)信息,其它詳細(xì)信息(活動的搜索路徑等)也可以看到,但是輸出的最后一行將顯示計劃運行的命令。

  1. $ at -c 36 | tail -6
  2. cd /home/shs || {
  3. echo 'Execution directory inaccessible' >&2
  4. exit 1
  5. }
  6. date >> thisfile

注意,該命令顯示首先會測試是否可以通過 cd 命令進入用戶目錄。如果不可以,作業(yè)將退出并顯示錯誤。如果可以,則運行在 at 中指定的命令。它將命令視為 “進入 /home/shs 或退出并顯示錯誤”。

以 root 身份運行作業(yè)

要以 root 身份運行 at 作業(yè),只需將 sudo 與你的 at 命令一起使用,如下所示:

  1. $ sudo at 8PM
  2. [sudo] password for shs:
  3. warning: commands will be executed using /bin/sh
  4. at> reboot now
  5. at> <EOT>
  6. job 37 at Wed Apr 1 16:00:00 2020

注意,root 的任務(wù)以 root 作為執(zhí)行者顯示在隊列中。

  1. 35 Mon Apr 6 12:00:00 2020 a shs
  2. 36 Tue Dec 27 12:00:00 2022 a shs
  3. 37 Wed Apr 1 20:00:00 2020 a root <==

運行腳本

你還可以使用 at 命令來運行腳本,這里有一個例子:

  1. $ at 4:30PM
  2. warning: commands will be executed using /bin/sh
  3. at> bin/tryme
  4. at> <EOT>

禁止使用 at 命令

/etc/at.deny 文件提供了一種禁止用戶使用 at 命令的方法。默認(rèn)情況下,它可能會包含一個不允許的賬戶列表,例如 ftpnobody。可以使用 /etc/at.allow 文件執(zhí)行相反的操作,但是通常只配置 at.deny 文件。

總結(jié)

當(dāng)你要安排一項一次性任務(wù)時,無論你是希望在今天下午或幾年后運行,at 命令都是通用且易于使用的。 

 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2022-04-19 09:03:22

Linuxcron命令

2021-10-11 10:33:02

Linux jps命令Java

2021-09-10 10:35:25

Linuxstat命令文件系統(tǒng)

2021-08-23 15:14:09

Linuxat命令任務(wù)

2021-09-17 10:51:01

Linuxlspci命令

2021-05-17 11:30:08

Linuxls命令

2021-06-03 08:45:44

Linuxls命令

2019-12-05 10:30:17

LinuxMultitail

2011-03-22 10:06:27

LinuxZFS

2023-03-08 15:38:56

Linux命令dict

2022-05-25 16:38:42

sudoLinuxroot 賬戶

2020-08-15 07:30:58

Linux命令匯總

2021-12-12 09:19:16

find命令Linux

2021-03-19 09:30:22

Linuxkill命令 管理進程

2009-08-03 12:15:29

linux at命令linux at命令詳定時啟動程序

2021-07-15 13:25:43

LinuxPDF

2023-08-12 15:05:26

Linuxcp 命令

2020-08-24 12:37:54

Linuxxargs命令

2023-07-04 16:36:03

Linuxcd 命令

2023-07-23 19:26:18

Linuxcat 命令
點贊
收藏

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