使用 cron 脚本在服务器之间复制 Linux 用户和密码

使用 cron 脚本在服务器之间复制 Linux 用户和密码

我有两台 Red Hat 7 Linux 服务器,我想让用户帐户保持同步。我有一个 bash 脚本,用于在服务器之间复制这些文件:

/etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/subuid /etc/subgid

该脚本在每台服务器上每 5 分钟通过 cron 作业运行一次,问题是,我如何确保只有一台服务器运行该脚本?我考虑在脚本中添加一个测试,在 /etc/shadow 上运行 stat,如果文件修改时间不在过去 5 分钟内,则退出脚本。由于修改时间随文件一起复制,因此第二台服务器也会运行复制脚本,而我并不想这样。有没有更好的方法来做到这一点?

答案1

您好,欢迎来到 ServerFault。

我能想到的“即兴”解决方案是:远程管理这些文件。

无论您使用 sssd/NIS、配置管理解决方案(puppet/ansible/salt/chef/whatever),都无关紧要。

现在的做法可能会引入不一致并导致调试时出现恼人的问题,尤其是在引入更多盒子的情况下。

有一个外部的(对于受控的盒子)单一事实来源并让它控制这些信息。

问题是相当 常见的 ,也看看其他问题。

相关内容