如何安排 Linux 服务器上的应用程序每 4 天自动重启一次

如何安排 Linux 服务器上的应用程序每 4 天自动重启一次

我想知道是否有一种简单的方法来安排在 Linux 服务器上运行的应用程序(例如 OpenVPN)每 4 天在特定时间自动重启一次。

谢谢

答案1

使用 cron。在 /etc/cron.d 中放置一个包含以下行的文件:

0 0 */4 * * 命令_to_restart_openvpn

答案2

这个答案这个

您可以创建一个cron每天运行的作业,检查date +%s除以24*60*60(一天的秒数)的余数是否是四的倍数。如果不是,则退出。

#!/bin/bash
if (( $(date +%s) / (60*60*24) % 4 != 0 )); then exit; fi

或者

#!/bin/sh
if [ $(($(date +%s)/(60*60*24)%4)) != 0 ]; then exit; fi

您可以将“0”更改为 1、2 或 3,以影响四天周期中的哪一天是触发日。如上面第一个链接所述,这不考虑闰秒。

或者您可以让脚本执行其操作,然后将自身排队再次运行at now + 4 days(您可以指定开始时间而不是“现在”:at 9:00 + 4 days以防止时间蔓延)。

答案3

我有一个需要每 20 天运行一次的应用程序。为此,我使用一个脚本来检查标志文件的时间戳(如果不存在则创建它)。如果该文件在不到 20 天前被修改,则脚本退出。如果没有,它会“触摸”标志文件以将其时间戳重置为现在并调用需要运行的应用程序。该脚本作为每日 cron 作业运行。

答案4

如果真的是这样每 4 天获取一次很重要,在启动时运行此脚本(适应您的本地需求):

#!/bin/bash
service openvpn start
while sleep $((60 * 60 * 24 * 4)); do
  service openvpn restart
done

但是您可能会发现,按照 Dennis 的建议,通过 cron 重新启动它,您的生活会变得更好。

相关内容