rsync 服务器文件同步备份

rsync 服务器文件同步备份

一、安装rsync服务器
下载地址:http://samba.anu.edu.au/ftp/rsync/
 
服务器    192.168.1.11
wget http://samba.anu.edu.au/ftp/rsync/rsync-3.0.6.tar.gz
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
rsyncpass              #密码
 
客户端运行脚本
 vi webback.sh
rsync -vzrtopg --progress --delete --password-file=/etc/rsyncuser.pas [email protected]::web /data2/webback
权限
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 �Csh /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

你可能感兴趣的:(职场,休闲)