我们有 2 台 NAS Synology Disk Station 1618+,配备 DS1618+ OS 版本。第一台 (NAS1) 接收来自多台服务器的备份,第二台 (NAS2) 应该是该 NAS 的备份。因此,由于这台第二台 NAS 应该是我们在发生灾难时的最后资源,我们希望它保持隔离。此外,我们希望它保持关闭状态。
这个想法很简单:
- 每周有 2 天使用 WoL 唤醒 NAS2,例如 12:00。
- 12:10,NAS1 开始备份到 NAS2。
- 随着备份结束,NAS2 关闭。
问题是,备份结束后如何自动关闭 NAS2?
我们尝试了两种方法,但结果并不好。
1. Rsync 命令行
似乎有一种方法可以在同步后使用命令行中的 rsync 执行远程命令,因此在 NAS1 上创建脚本并将其添加到 crontab 应该很容易。问题是我们在权限方面遇到了多个问题,甚至以 root 身份执行 rsync 并以 root 身份连接到远程服务器,即使在这种情况下我们也会出现权限错误。
2. NAS2 的脚本
在 NAS2 中按照以下方式编写脚本
while (backup is up) { pause }
shutdown
问题是,我们如何知道备份是否正在进行中?我们尝试了两种方法:
netstat -ta | grep $NAS1
该命令应该可以完成工作,但实际上却没有。备份结束时,NAS1 和 NAS2 之间仍保留着一些连接,因此 netstat 命令会返回这些连接。
另一种方法是:
find /.../backups -mmin -240
但这无济于事。
任何想法?