运行 在 CentOS 后台每 30 秒执行一次命令
Run command every 30 seconds in background on CentOS
标题说明了一切:
如何在 CentOS 上无限期地 运行 在后台每隔 30 秒执行一些命令?那就是:我希望能够在定期调用其他脚本的同时做其他事情。
默认情况下,cron 无法将作业安排在 运行 秒内。您最多可以做的就是每分钟 运行 它。
1) 运行 它由一个 cron
通过 cron 运行 它,每 30 秒您可以创建一个单独的 cron 条目,如下所示:
* * * * * /bin/bash -l -c "/path/to/script.sh; sleep 30 ; /path/to/script.sh"
2) 运行 使用 watch
运行 使用 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 秒到 运行,那么您的脚本将被延迟等等。同样适用于选项 (1)
4) 使用替代 cron 代替默认 linux cron(使用 fcron)
5) 类似的问题已经在 SO 上被问到,所以你可能想看看这个:
How to run Cronjobs more often than once per minute?
标题说明了一切:
如何在 CentOS 上无限期地 运行 在后台每隔 30 秒执行一些命令?那就是:我希望能够在定期调用其他脚本的同时做其他事情。
默认情况下,cron 无法将作业安排在 运行 秒内。您最多可以做的就是每分钟 运行 它。
1) 运行 它由一个 cron
通过 cron 运行 它,每 30 秒您可以创建一个单独的 cron 条目,如下所示:
* * * * * /bin/bash -l -c "/path/to/script.sh; sleep 30 ; /path/to/script.sh"
2) 运行 使用 watch
运行 使用 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 秒到 运行,那么您的脚本将被延迟等等。同样适用于选项 (1)
4) 使用替代 cron 代替默认 linux cron(使用 fcron)
5) 类似的问题已经在 SO 上被问到,所以你可能想看看这个: How to run Cronjobs more often than once per minute?