使用rsync给网站做增量备份

血的教训让我明白:做网站必须备份!!如果你的主机不带备份功能,可以使用远程服务器做备份,推荐使用rsync增量备份。

增量备份是比较方便可靠的备份方法。所谓增量备份,可以简单理解为,第一次备份的时候传输所有文件,以后再执行备份操作的话,只备份增加的或修改的文件。使用增量备份的好处有很多,对我来说最明显的优点在于,传输文件少,适合大站备份。不用每次打包、下载。。。

贴一下我备份的命令,了解更多请自行百度。

rsync -avzPu /home/wwwroot 198.42.48.69:/root/buyvm-backup

简单说明一下:
-avzP 是参数,大家一般都这么用。
/home/wwwroot 是本地要备份的目录。需要注意的是,/home/wwwroot 和 /home/wwwroot/不完全相同,自己体会一下就明白了。
198.42.48.69:/root/buyvm-backup 是远程服务器目录。

假如想覆盖更新了的同名文件的话,得用-u参数,如:rsync -avzPu

rsync是基于ssh传输的,所以很安全,执行命令以后还需要输入yes,回车,再输入远程服务器的root密码才可以执行。


进阶玩法:

每次执行rsync的时候,都会要求输入远程服务器的密码,其实可以使用sshpass来实现免手动输密码。

首先用下面的命令安装sshpass软件,

yum install sshpass -y

然后在本机以ssh方式,成功登录一次远程服务器,此后sshpass就会自动记录该远程主机的密码了。

ssh root@198.42.48.69

登录进去后,Crtl+D即可登出远程服务器。

此后,我们可以直接执行如下命令,即可实现免手动输密码了,

sshpass -p zhangrui123456 rsync -avzPu /home/wwwroot 198.42.48.69:/root/buyvm-backup

上面的命令中,zhangrui123456是远程服务器的root密码。
特别提醒:如果今后远程服务器重装系统,或者换了IP之类的,一定要删除本地的~/.ssh/known_hosts (或者 /root/.ssh/known_hosts),否则会无法登录。


无人值守玩法:

直接看这篇 https://www.johntitorblog.com/?p=204

使用rsync给网站做增量备份》有6个想法

    1. 站长 文章作者

      例如,加入如下代码,
      0 9 * * * root sshpass -p zhangrui123456 rsync -avzPu /home/wwwroot 198.42.48.69:/root/buyvm-backup
      然后service crond restart,即可实现每天上去9点自动执行rsync备份。

      回复
      1. 站长 文章作者

        最好要输出一个log文件,方便平时观察备份状态 比如,
        0 9 * * * root sshpass -p zhangrui123456 rsync -avzPu /home/wwwroot 198.42.48.69:/root/buyvm-backup > /root/rsync.log 2>&1
        这样,每次自动执行完了备份,/root下面就会自动生成一个rsync.log,从而得知最近一次备份的时间和状态。

        回复
  1. Pingback引用通告: 无人值守自动备份网站的方法 – 约翰提托博客

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注