虽然我们的小站数据不太多,但是一旦丢失,那就后悔莫及,下面介绍一下利用rsync对网站进行同步增量备份.
首先在需要备份的服务器上安装rsync服务端
yum install rsync -y
创建配置文件和密码文件
mkdir /etc/rsyncd/
cd /etc/rsyncd/
vi rsyncd.conf
粘贴下面的配置文件,注意这个文件是没有的,需要你手动建立
pid file = /var/run/rsyncd.pid
port = 873
uid = root
gid = root
use chroot = yes
read only = yes
max connections = 5
#This will give you a separate log file
#log file = /var/log/rsync.log
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[test]#模块名,用来标识,可以建立多个.
path = /home/wwwroot/#这个是你要下载的网站所在路径
list=yes
ignore errors
auth users = name#这个是下载用户
secrets file = /etc/rsyncd/rsyncd.secrets#这个是用户密码文件,需要和下面的文件名对应
comment = rsynctest#这个是对话名称,可以任意取
创建用户密码文件,注意这个文件是没有的,需要你手动建立,即和上面配置文件里面的文件名对应
vi rsyncd.secrets
用户密码形式以name:password
可以有多行,一行一个用户.
把上面这个文件的权限设置为600,要不rsync服务启动不了
chmod 600 rsyncd.secrets
启动服务器的rsync服务,这里可以将下面的命令加入crontab中
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
下面就是在下载的服务器可以将它看成客户端,客户端就是下载服务端的备份服务器.
客户端安装好rsync.
客户端如果以手动备份,那么只需要执行下面的语句即可,当然需要下载的文件路径自己先创建好
rsync -avzP [email protected]::test /usr/local/backup
输入在服务端创建的密码即可同步备份.上面的那个name就是你的用户名,192.168.10.1就是你的远程服务器IP,test就是那个rsync的模块名(服务端的),/backup就是你本地要存放文件的路径,执行上面命令后会提示你输入密码,密码就是你那个密码配置文件里:后面的.
如果需要在客户端让他自行运行,还需要在客户端创建密码文件,省的每次都输入密码
客户端vi /etc/rsyncd/rsyncd.secrets
输入密码,这里注意客户端只需要输入密码即可,服务端才是用户名:密码形式。网上很多教程都是这里出错说输入用户名:密码形式,其实只需要输入密码即可.
然后加入crontab中.
crontab -e
20 1 * * * rsync -avzP --delete --password-file=/etc/rsyncd/rsyncd.secrets [email protected]::test /usr/local/backup
即在每天1点20自动同步备份
rsync 排除多个目录,需要在客户端新建个exclude.list,然后rsync -av –exclude-from=”exclude.list”指定不需要同步的文件/目录,注意exclude.list里面填写要排除的文件/目录,一行一个,直接写文件名即可。这里,可以把会话flw看成根目录,而不是填写以下完整的文件夹路径,所以如果要排除data/attachment,app_down,app_download,tmp/g,那么exclude.list里就应该写
data/attachment
app_down
app_download
logs
old
app_download
cctv
最后代码如下
rsync -avzP --delete --bwlimit=20000 --password-file=/etc/rsyncd/rsyncd.secrets --exclude-from=/etc/rsyncd/exclude.list [email protected]::flw /home/www1/xxx