rsync 服务器文件同步备份
一、安装rsync服务器
下载地址:http://samba.anu.edu.au/ftp/rsync/
服务器 192.168.1.11
tar zxvf rsync-3.0.6.tar.gz
cd rsync-3.0.6
./configure --prefix=/usr/local/rsync
make && make install
配置
vi /etc/rsyncd.conf
uid = nobody
gid = nogroub
use chroot = no
max connections = 4 #最大连接
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log #日志
[web]
path = /data/appweb/ #要备份文件路径
ignore errors
read only = true
list = false
hosts allow = 192.168.1.12 #充许的IP连接
hosts deny = 0.0.0.0/32 #拒绝的IP
auth users = rsyncuser #认证用户 要与/etc/rsyncuser.pas中的用户相同
secrets file = /etc/rsyncuser.pas #密码存放路径
说明:
ignore errors
指定rsyncd在判断是否运行传输时的删除操作时忽略server上的IP错误,一般来说rsync在出现IO错误时将将跳过--delete操作,以防止因为暂时的资源不足或其它IO错误导致的严重问题。
read only
该选项设定是否允许客户上载文件。如果为true那么任何上载请求都会失败,如果为false并且服务器目录读写权限允许那么上载是允许的。默认值为true。
list
该选项设定当客户请求可以使用的模块列表时,该模块是否应该被列出。如果设置该选项为false,可以创建隐藏的模块。默认值是true。
vi /etc/rsyncuser.pas
rsyncuser:rsyncpass 用户名、密码
权限
chmod 600 /etc/rsyncd.conf
chmod 600 /etc/rsyncuser.pas
启动
#/usr/local/rsync/bin/rsync --daemon
#ps aux|grep rsync #查看是否已经启动
自启动
vi /etc/rc.local
/usr/bin/rsync --daemon # 以守护进程启动
二、客户端 192.168.1.12
系统默认就安装了rsync
如果没有安装,请使用 yum install rsync进行安装
vi /etc/rsyncuser.pas
客户端运行脚本
vi webback.sh
权限
chmod 600 /etc/rsyncuser.pas
chmod +x webback.sh
说明:
-v, --verbose 详细模式输出
-z, --compress 对备份的文件在传输时进行压缩处理
-r, --recursive 对子目录以递归模式处理
-t, --times 保持文件时间信息
-o, --owner 保持文件属主信息
-p, --perms 保持文件权限
-g, --group 保持文件属组信息
--progress 显示备份过程
--delete 删除那些DST中SRC没有的文件
--password-file=FILE 从FILE中得到密码
更多参数详见:http://blog.s135.com/post/259/
同步文件前,有时为了方便,可以先使用cp把文件复制到备份目录,然后在使用rsync进行同步.
注意:使用cp 从时.一定要带参数 -p
cp -rfp /data1/fs /data2/fs-bak
-p 参数是连接文件属性一起拷贝,这样可以保持文件时间与原来一致在使用rsync 同步,这样就可以不用在从新复制已有的文件
rsync -vzrtopg --progress /data1/fs /data2/fs-bak
验证文件是否成功备份为了验证文件是否成功备份,可以从以下几个方面来验证.
1、 对比文件目录数。
2、 对比文件数。
方法:tree /data/nfs1 | tail -1
1130 directories, 6273 files
3、 对比文件占用空间大小。
方法: du –sh /data/nfs1
1.3G /data/nfs1
4、可以使用diff -r 对目录递归结比
方法:diff -r /data/nfs1 /data/nfs-bak
如果什么都没出现,说明二个目录文件是相同的,如果出现文件条目,说明二个文件目录存在不同文件。
计划任务
每天凌晨0\2点执行备份计划
crontab -e
0 2 * * * /data/bak/webback.sh > /var/log/webback.log 2>&1