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
可以看到按秒打印了信息