rsync+ssh同步备份文件
定期对web代码或重要的文件做同步异地服务器备份,防止服务器故障严重磁盘损坏时文件丢失的问题。
备份服务器:192.168.200.134
目标服务器:192.168.201.65
rsync同步命令:
rsync -avz -e 'ssh -p <ssh端口,默认是22>' <本地待备份目录> 192.168.200.134:<目标目录>
会提示需要输入远端服务器登陆账号的密码才可以执行下去,为了免密码输入而可以定期自动让其运行,需要配置ssh免密登陆方式;
备份服务器本地执行 ssh-keygen -t rsa 命令,生成ssh rsa私钥 id_rsa 和公钥id_rsa.pub
然后copy id_rsa.pub到目标服务器账号home目录下得.ssh目录,如果没有请创建.ssh目录;
然后在目标机账号home目录下得.ssh目录,执行
cat id_rsa.pub > authorized_keys
chmod 600 authorized_keys
完成操作后,在备份服务器192.168.201.65上尝试执行ssh 登陆操作看是否不再需要密码即可登陆:
ssh -p <ssh端口,默认22> 192.168.200.134
:?:如果不需要提示输入密码即可登陆到134服务器,则表示完成ssh免密码登陆功能。
然后在65服务器上执行rsync同步文件命令也不再需要提示输入密码即可同步完毕。
最后,我们再添加crontab定时任务,让rsync同步备份文件操作每天23点执行一次备份:
crontab -e
在最后面添加一行定时任务设置:
0 23 * * * rsync -avz -e 'ssh -p <ssh端口,默认是22>' <本地待备份目录> 192.168.200.134:<目标目录> > /dev/null 2>&1