![Cron:通过 SSH/Rsync 以非 root 用户身份备份日志、配置、网站文件](https://linux22.com/image/566463/Cron%EF%BC%9A%E9%80%9A%E8%BF%87%20SSH%2FRsync%20%E4%BB%A5%E9%9D%9E%20root%20%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E5%A4%87%E4%BB%BD%E6%97%A5%E5%BF%97%E3%80%81%E9%85%8D%E7%BD%AE%E3%80%81%E7%BD%91%E7%AB%99%E6%96%87%E4%BB%B6.png)
我正在集思广益,寻找可以以非 root 用户身份将生产服务器的日志文件、配置文件、网站数据、mysql 数据库等备份到单独的异地位置的方法。
问题是这样的:出于安全原因,我锁定了 root 用户,这样 root 就永远无法直接登录生产服务器。但此外,异地物理服务器(在我家)位于动态 IP 地址后面,因此如果我的 IP 地址发生变化,我无法从生产到备份进行系统日志记录。
你们认为解决这个问题的最佳方法是什么?我的一个想法是:在服务器上创建一个名为“备份”的新用户,并使用 setfacl 授予该用户对所有内容(我需要备份)的只读访问权限:
setfacl -R -m g:backups:r-x /paths/to/directories
然后以用户身份运行 rsync,在存储所有备份的机器上,每隔 24 小时从 cron 执行一次“备份”。 (当然,日志文件将在另一个 cron 上备份,例如每 5 分钟左右备份一次……)
有什么想法吗?
答案1
但此外,异地物理服务器(在我家里)位于动态 IP 地址后面,因此如果我的 IP 地址发生变化,我就无法从生产到备份进行系统日志记录。
动态DNS和端口转发怎么样?
我有一个想法是这样的:在服务器上创建一个名为“备份”的新用户,并使用 setfacl 授予该用户对所有内容(我需要备份)的只读访问权限
$ ./configure --enable-rsync-compat
$ make
$ sudo make install
# echo /usr/local/bin/scponly >> /etc/shells
# sudo usermod -s /usr/local/bin/scponly backups