如何讓linux定時任務crontab按秒執行


如何讓linux定時任務crontab按秒執行?

linux定時任務crontab最小執行時間單位為分鍾

如果想以秒為單位執行,應該如何設置呢?

思路

正常情況是在crontab中直接定義要執行的任務,現在我們在中間添加一個腳本文件

 

自定義一個腳本文件,循環執行要執行的任務,循環中使用sleep來控制間隔秒數

 

在crontab中添加一個任務,設置為每分鍾都執行這個腳本

 

就是用crontab控制分鍾,用腳本內的循環來控制秒


示例

(1) 定義目標任務

用php寫了一個測試任務,向文件中寫一個時間信息

文件路徑 /root/test.php

<?php
file_put_contents('/root/run.log', date('Y-m-d H:i:s')."\r\n", FILE_APPEND);
?>

(2)編寫執行任務的腳本

文件路徑 /root/test.sh

#!/bin/bash

#間隔的秒數,就是要幾秒執行一次

#不能大於60
step=2 

for (( i = 0; i < 60; i=(i+step) )); do

$(php '/root/test.php')
sleep $step
done

exit 0

(3)添加定時任務

crontab -e

* * * * * /root/test.sh

重啟定時任務服務

service crond restart

(4)查看效果

tail -f /root/run.log

可以看到按秒打印了信息

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM