簡體   English   中英

如何在 Linux 中設置 CRON 作業每 10 秒運行一次?

[英]How to setup CRON job to run every 10 seconds in Linux?

我需要從開始時間開始每 10 秒運行一次CRON作業。

在 Linux 中如何從開始時每 10 秒運行一次CRON作業?

我正在嘗試解決以下問題:當我在 04:28:34 發出請求(或開始)時,它應該在 04:28:44 開始,而不是在 4:28:40

這就是我所做的

# m h  dom mon dow   command
*/10 * * * * /usr/bin/wget http://api.us/application/

我做錯了什么? 為什么這不會每 10 秒觸發一次wget

為了詳細說明 Sougata Bose 的回答,我認為 OP 希望從開始時間每 10 秒運行一次命令; 第一分鍾和之后的每一分鍾都不是 10 秒。

cron 只有 1 分鍾的分辨率(我認為還有其他工具可能有更精細的分辨率,但它們不是 unix 上的標准)。

因此,要解決您的問題,您需要 60 秒/10 秒 = 6 個 cron 作業,每個作業都有一個睡眠。

例如,運行 crontab -e 並將以下幾行添加到您選擇的編輯器中:

* * * * * ( /usr/bin/wget http://api.us/application/ )  
* * * * * ( sleep 10 ; /usr/bin/wget http://api.us/application/ )  
* * * * * ( sleep 20 ; /usr/bin/wget http://api.us/application/ )  
* * * * * ( sleep 30 ; /usr/bin/wget http://api.us/application/ )  
* * * * * ( sleep 40 ; /usr/bin/wget http://api.us/application/ )  
* * * * * ( sleep 50 ; /usr/bin/wget http://api.us/application/ )  

另一種選擇是使用crontab -e編輯您的 crontab 並寫入:

* * * * * for i in {1..6}; do /usr/bin/wget http://api.us/application/ & sleep 10; done

*/10 * * * *將每 10 分鍾運行一次。
*/10 * * * * *將每 10 秒運行一次。

您可以查看cron 編輯器以獲取更多選項。

您在分鍾內指定了* / 10。 Cron僅允許至少一分鍾。 你可以試試這個-

* * * * * ( sleep 10 ; /usr/bin/wget http://api.us/application/)

它將每隔10秒執行一次睡眠。

改用watch 例如:

watch -n10 -x your_command

如果某事應該每 10 秒運行一次,它就不必是 cron 作業。 它可以是一個無限循環的腳本,里面有 sleep 像:

while true
do
  # or whatever command you need to run
  rm -rf /var/www/some-directory
  sleep 10
done

並運行它

nohup bash my-endless-script.sh 

它將在后台運行它,如果您關閉終端,它也會繼續運行。

您可以使用 kill 命令終止運行。

在秒字段中使用逗號也可以:

0,10,20,30,40,50 * * * * *

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM