如何使 cronjobs 高可用?

Bas*_*man 7 linux high-availability cron

使运行多个 cronjob 的故障转移对避免两次运行进程的好解决方案是什么?

无论是在故障转移中,还是通过在它们之间划分作业,当然能够在其中一个节点发生故障时接管所有作业。

我可以为此编写一个脚本,但肯定有人已经解决了这个问题,或者这是一个不常见的请求?

dr-*_*jan 6

如果您有某种集群解决方案来提供高可用性,那么执行此操作非常简单。

我们在集群中的两个(或所有)节点上设置所有 cron 作业。每个作业首先执行一个小脚本,该脚本确定这是否是集群中的主节点(通过检查集群浮动 IP 地址)。如果这不是主节点,则 check_for_master 脚本退出并显示错误,导致整个 cron 作业失败。如果此节点是主节点,则 check_for_master 脚本正常运行作业。

check_for_master 脚本的内容实际上取决于您使用的集群软件和您运行的操作系统。

例如,这是一个示例 crontab 条目:

00 04 * * * /usr/local/bin/check_for_master /usr/local/bin/program-you-want-to-run >/tmp/logfile.out 2>&1
Run Code Online (Sandbox Code Playgroud)