我将在两台Web服务器之间设置rsync。 我的目标是在secoundary备份来自主服务器的数据,以防主服务器崩溃。 我的问题涉及在主服务器上设置用于rsync用户帐户的目的。
出于显而易见的原因,我不想在这里使用我的“root”用户帐户。 因此,我的目标是build立另一个只用于rsync目的的帐户。 据我所知这个用户将需要读取权限,我将需要传输的所有文件(Apacheconfiguration,用户的Linux文件,万维网数据)。
如何最好地设置这样的权限? 我应该授予rsync用户root权限还是有更安全的方式来创build这样的备份用户?
如果连接两台服务器的networking都是安全的(例如,办公室的本地networking),则可以使用守护进程模式下的rsync以root用户身份进行连接。 这样你就不用ssh来build立连接。
在辅助系统上,使用以下内容创build文件/etc/rsyncd.conf :
[all] path = / read only = no uid = 0 gid = 0 hosts allow = primary-host auth users = backupuser secrets files = /etc/rsyncd.secrets exclude = /tmp/ /var/tmp/ /var/cache/ /proc/ /sys/ /dev/ /run/ /boot/
现在用eg创build一个文件/etc/rsyncd.secrets :
backupuser:thisisasecretpassword
使文件只能由root读取:
# chown root /etc/rsyncd.secrets; chmod 400 /etc/rsyncd.secrets
现在你需要确保rsync作为守护进程启动; 这取决于你的分布,你用Debian编辑/etc/default/rsync并将RSYNC_ENABLE行更改为RSYNC_ENABLE=true并运行/etc/init.d/rsync start (如果运行systemd然后运行systemctl enable rsync; systemctl start rsync ) 。
现在,您可以在主要主机上运行rsync,并通过执行以下操作将需要复制的任何内容发送给辅助主机:
# rsync -ai /var/www/ backupuser@secondary-host::all/var/www/
在这种情况下,Rsync会要求您input密码。