在CentOS上,每30秒在后台运行一次命令



标题说明了一切:

如何在CentOS上无限期地在后台每隔30秒运行一次命令?也就是说:我希望能够在周期性调用其他脚本的同时做其他事情。

默认情况下,cron无法安排在几秒钟内运行作业。你能做的最多就是每分钟运行一次。

1)通过单个cron运行它

要通过cron运行它,每30秒可以创建一个单独的cron条目,如下所示:

* * * * * /bin/bash -l -c "/path/to/script.sh; sleep 30 ; /path/to/script.sh"

2)使用手表运行

使用watch((您可以在屏幕或tmux上启动它)甚至在后台运行脚本)

watch --interval 30 /path/to/script.sh 

3) 使用这样的while循环:

#!/bin/env bash
while [ true ]; do
sleep 30
/path/to/script.sh
done

请记住,这个选项不是防失败的,因为它完全取决于您的cron到底做了什么,以及cron运行的作业需要多长时间才能完成。在上面的例子(3)中,如果cron需要25秒才能运行,那么你的脚本就会被延迟,以此类推

4)使用默认linux cron的替代cron(使用fcron)

5)SO上已经提出了类似的问题,因此您可能需要了解以下内容:如何使Cronjobs每分钟运行一次以上?

最新更新