以給定間隔重複執行 Linux 命令
Linux 是一款強大的作業系統,提供各種命令列工具來執行各種任務。其中一項經常需要執行的任務是以給定間隔重複執行命令。此功能出於多種原因可能很有用,例如監視系統性能、執行計劃任務和執行備份。
在本文中,我們將探討如何在 Linux 中以給定間隔重複執行命令。我們將討論實現此目的的各種方法,包括使用 cron 實用程式、watch 命令和 sleep 命令。
使用 Cron 重複執行命令
cron 實用程式是類 Unix 作業系統(包括 Linux)中的基於時間的作業排程程式。它允許使用者透過將任務計劃為在指定間隔執行來自動執行各種任務。要使用 cron 實用程式重複執行命令,請按照以下步驟操作 -
步驟 1 - 透過執行以下命令開啟 crontab 檔案 -
$ crontab -e
這將在您的預設文字編輯器中開啟 crontab 檔案。
步驟 2 - 透過指定要重複的命令以及要執行的間隔來新增新的 cron 作業。例如,如果您想每 5 分鐘執行一次 ls 命令,請將以下行新增到 crontab 檔案中 -
*/5 * * * * ls
上述 cron 表示式指定應每 5 分鐘執行一次 ls 命令。五個星號分別表示以下欄位 -
第一個欄位表示命令應執行的分鐘(0-59)。
第二個欄位表示命令應執行的小時(0-23)。
第三個欄位表示命令應執行的月份中的日期(1-31)。
第四個欄位表示命令應執行的月份(1-12)。
第五個欄位表示命令應執行的星期幾(0-6,其中 0 為星期日)。
步驟 3 - 儲存並關閉 crontab 檔案。
以上示例將每 5 分鐘執行一次 ls 命令。您可以修改 cron 表示式以滿足您的需求。
使用 Watch 命令重複執行命令
watch 命令是一個實用程式,允許使用者重複執行命令並在終端上即時顯示輸出。要使用 watch 命令重複執行命令,請按照以下步驟操作 -
步驟 1 - 開啟終端並鍵入以下命令 -
$ watch -n <interval> <command>
將 <interval> 替換為您希望命令重複的時間間隔(以秒為單位)。將 <command> 替換為您要重複的命令。
例如,如果您想每 5 秒執行一次 top 命令,請鍵入以下命令 -
$ watch -n 5 top
上述命令將每 5 秒執行一次 top 命令,並在終端上顯示輸出。
步驟 2 - 要停止 watch 命令,請按 Ctrl+C。
watch 命令可用於監視系統性能或監視長時間執行命令的輸出。
使用 Sleep 命令重複執行命令
sleep 命令是一個實用程式,它使 shell 等待指定時間,然後再執行下一個命令。要使用 sleep 命令重複執行命令,請按照以下步驟操作 -
步驟 1 - 開啟終端並鍵入以下命令 -
$ while true; do <command>; sleep <interval>; done
將 <command> 替換為您要重複的命令。將 <interval> 替換為您希望命令重複的時間間隔(以秒為單位)。
例如,如果您想每 5 秒執行一次 date 命令,請鍵入以下命令 -
$ while true; do date; sleep 5; done
上述命令將每 5 秒執行一次 date 命令。
步驟 2 - 要停止命令,請按 Ctrl+C。
sleep 命令可用於執行備份或執行其他計劃任務。
以下是一些在給定間隔重複執行 Linux 命令的其他提示和示例 -
使用 at 命令
at 命令是一個實用程式,允許您安排命令在特定時間執行。要使用 at 命令以給定間隔重複執行命令,請按照以下步驟操作 -
步驟 1 - 開啟終端並鍵入以下命令 -
$ echo "<command>" | at now + <interval>
將 <command> 替換為您要重複的命令。將 <interval> 替換為您希望命令重複的時間間隔(以分鐘或小時為單位)。
例如,如果您想每 30 分鐘執行一次 ls 命令,請鍵入以下命令 -
$ echo "ls" | at now + 30 minutes
上述命令將每 30 分鐘執行一次 ls 命令。
步驟 2 - 要停止命令,請使用 atq 命令列出作業,然後使用 atrm 命令刪除作業。
使用 Bash 指令碼
您還可以使用 bash 指令碼以給定間隔重複執行命令。為此,請按照以下步驟操作 -
步驟 1 - 開啟文字編輯器並建立一個新檔案。鍵入以下程式碼 -
#!/bin/bash while true do <command> sleep <interval> done
將 <command> 替換為您要重複的命令。將 <interval> 替換為您希望命令重複的時間間隔(以秒為單位)。
例如,如果您想每 5 秒執行一次 date 命令,請鍵入以下程式碼 -
#!/bin/bash while true do date sleep 5 done
步驟 2 - 使用 .sh 副檔名儲存檔案,例如 repeat_command.sh。
步驟 3 - 透過執行以下命令使指令碼可執行 -
$ chmod +x repeat_command.sh
步驟 4 - 透過鍵入以下命令執行指令碼 -
$ ./repeat_command.sh
上述命令將執行 bash 指令碼,該指令碼將以給定間隔執行指定的命令。
組合命令
您還可以組合多個命令並在給定間隔執行它們。例如,要每 5 分鐘執行一次 free 命令和 df 命令,請鍵入以下命令 -
$ while true; do free; df; sleep 300; done
上述命令將每 5 分鐘執行一次 free 命令和 df 命令。
結論
以給定間隔重複執行 Linux 命令對於各種任務可能很有用,包括監視系統性能、執行計劃任務和執行備份。在本文中,我們探討了實現此目的的各種方法,包括使用 cron 實用程式、watch 命令和 sleep 命令。每種方法都有其優點和缺點,因此請選擇最適合您需求的方法。
請記住,在終端中執行命令時始終要謹慎,並在執行命令之前確保您瞭解每個命令的作用。透過本文獲得的知識,您現在可以輕鬆地在給定間隔重複執行 Linux 命令。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP