如何使用 at 在 Linux 上安排一次性作業

如何使用 at 在 Linux 上安排一次性作業

時間管理是一門很難掌握的藝術。幸運的是,借助技術,您可以將平凡的任務自動化並委託給您的計算機。與人類不同,PC 非常擅長在精確的設定時間運行重複性任務。

在 Linux 上,您可以使用 cron 等工具運行重複性任務。此外,您還可以使用at命令安排和運行一次性任務。

在 Linux 上安裝

在大多數發行版中,at 命令不是標準 Linux 實用程序的一部分。幸運的是,無論您使用的是哪個發行版,您都可以使用包管理器輕鬆安裝它。

在基於 Debian 的系統上,例如 Ubuntu、MX Linux 和 Pop!_OS,您可以通過運行以下命令安裝:

sudo apt install at

如果您使用的是基於 RPM 的發行版,例如 RHEL、Fedora 或 Rocky Linux,請使用 DNF 來安裝軟件包:

sudo dnf install at

在基於 Arch 的 Linux 發行版(如 Manjaro)上,運行:

sudo pacman -S at

啟動 atd 作業調度程序服務

在使用 at 命令之前,請確保 atd 調度守護進程正在運行。這就是at命令用來執行預定作業的內容。

sudo systemctl status atd

檢查 atd 時間調度程序的狀態

如果 atd 服務沒有運行,您可以使用以下命令啟動它:

sudo systemctl start atd

使用 at 在 Linux 上安排任務

以下是如何使用 at 安排在將來某個給定時間執行的一次性作業:

command | at time_stamp

例如,我們可以安排一個任務,使用 ls 命令列出當前目錄的內容,並在一分鐘後將輸出寫入文件。

首先,使用 cd 命令切換到您的用戶主文件夾:

cd ~

然後,執行以下命令來安排您的任務:

ls > list_items.txt | at now + 1 minutes

用 at 安排一個簡單的工作

輸出將說明您的任務已安排。時間過去後,您可以列出目錄的內容,並且應該會出現一個包含目錄內容的新文本文件。

如果你想在明天中午執行命令,運行:

ls > list_items.txt | at noon tomorrow

對於更具體的時間和日期,請使用日期格式MMDDHHMM YYYY。例如,要在2023年12月25日下午1點執行上述命令,您可以運行以下命令:

ls > list_items.txt | at 12251300 2023

at 命令有很多更高級的功能,允許您在精確的時間運行特定的命令。查看其手冊頁以獲取更多命令選項:

man at

使用 at 在 Linux 上調度腳本

除了運行單個命令外,您還可以使用 at 命令安排腳本在指定時間執行。

假設您有一個名為disk_usage.sh的腳本,位於您的主文件夾中。該腳本只是將硬盤使用情況打印到一個文本文件中。這是腳本:

#!/bin/bash
df -h > disk_usage.txt

要在三十分鐘後執行此腳本,您只需運行以下命令即可:

at now + 30 minutes -f ~/disk_usage.sh

通過給它適當的模式來確保你的腳本是可執行的。為此,您可以使用 chmod 命令:

sudo chmod +x disk_usage.sh

在 Linux 上管理掛起的任務

您可以使用以下命令查看待處理任務:

atq

使用 atq 列出工作

要刪除掛起的任務,請使用以下命令格式:

atrm task_number

例如,要刪除任務編號 12,請使用:

atrm 12

使用 at 在 Linux 上自動執行重複性任務

at 命令是一種功能強大且用途廣泛的工具,用於在 Linux PC 上執行或運行一次性作業。除了 at 之外,您還可以使用 crontab 自動執行各種任務,從簡單到復雜的工作。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *