Cron:通过 SSH/Rsync 以非 root 用户身份备份日志、配置、网站文件

Cron:通过 SSH/Rsync 以非 root 用户身份备份日志、配置、网站文件

我正在集思广益,寻找可以以非 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 授予该用户对所有内容(我需要备份)的只读访问权限

你最好考虑使用受限的 shellscponly或者发送

$ ./configure --enable-rsync-compat
$ make
$ sudo make install
# echo /usr/local/bin/scponly >> /etc/shells
# sudo usermod -s /usr/local/bin/scponly backups

相关内容