Bas*_*man 7 linux high-availability cron
使运行多个 cronjob 的故障转移对避免两次运行进程的好解决方案是什么?
无论是在故障转移中,还是通过在它们之间划分作业,当然能够在其中一个节点发生故障时接管所有作业。
我可以为此编写一个脚本,但肯定有人已经解决了这个问题,或者这是一个不常见的请求?
如果您有某种集群解决方案来提供高可用性,那么执行此操作非常简单。
我们在集群中的两个(或所有)节点上设置所有 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)
| 归档时间: |
|
| 查看次数: |
5249 次 |
| 最近记录: |