一.安装步骤(服务器端192.168.0.1)
1) 安装rsync 点击下载rsync-3.1.0.tar.gz
下载文件放到该目录下/usr/src
#cd /usr/src #tar -zxvf rsync-3.1.0.tar.gz //解压文件 #cd rsync-3.1.0 //进入该文件目录 #./configure //主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系 #make //编译 #make install //安装
2)安装inotify 点击下载inotify-tools-3.14.tar.gz
下载文件放到该目录下/usr/src
#cd /usr/src #tar -zxvf inotify-tools-3.14.tar.gz //解压文件 #cd inotify-tools-3.14 //进入该文件目录 #./configure //主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系 #make //编译 #make install //安装
3)服务端编写文件夹监视脚本
#vi /srv/rsync.sh
rsync.sh内容如下:
#!/bin/bash src=/srv/test/ #监视改文件路径,文件夹内容发生改变触发服务器数据同步 des=backup #客服端配置的模块(客服端会介绍) host="192.168.0.2" #同步到的IP地址,如有多个用空格隔开。例如:host="192.168.0.2 192.168.0.3" /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib $src | while read files #这边要主要下inotifywait,只有Linux 2.6.13 或更高版的才会兼容 do for hostip in $host do #rsync -vzrtopg --delete --progress rsync@$hostip::$des $src --password-file=/etc/rsync.pas 该命令是客服端跟新后同步到服务器端 rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pas $src rsync@$hostip::$des #改命令是服务器端跟新后同步到客服端(看具体使用情况选择) #--password-file=/etc/rsync.pas 配置到客服端,也就是客户端路径下有rsync.pas 用于配置登陆密码 #rsync 是客户端配置的登陆名 done echo "${files} was rsynced" >>/tmp/rsync.log 2>&1 #生成日志文件 done
4)启动nohup
#nohup /bin/bash /srv/rsync.sh & //后台不挂断地运行命令 #echo "nohup /bin/bash /root/bin/rsync.sh &" >> /etc/rc.local //设置linux服务器启动自动启动nohup
二.安装步骤(客服端192.168.0.2)
1) 安装rsync 步骤如上!
2)配置rsyncd.conf
#vi /etc/rsyncd.conf //打开rsyncd.conf
rsyncd.conf内容如下:
uid = root gid = root port = 873 #post rsync使用的端口号 也是默认端口号 hosts allow = 192.168.0.1 #allow hosts ip 应许的ip访问,也可以设置为ip段 max connections = timeout= ##config file pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log #motd file = /etc/rsyncd.motd ##global config [backup] path =/srv/test #客服端已rsync服务端同步的文件路径 comment = from 192.168.0.1 #解释 read only = no list = no ##client sync config auth users =rsync #配置登陆名称 secrets file = /etc/rsync.passwd #配置用户名密码文件
3)配置rsync.passwd
#vi /etc/rsync.passwd
rsync.passwd内容如下:
rsync:cyc #rsync登陆用户名 cyc是登陆密码 #chomd 600 rsync.passwd #需要注意rsync.passwd的权限配置
4)启动rsync
启动rsync 相当简单,–daemon 是让rsync 以服务器模式运行
#/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
三.如果再配置过程中出现如下问题,分析出错原因。
问题一:
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服务器端的目录不存在或无权限,创建目录并修正权限可解决问题。
问题二:
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服务器端该模块(backup)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。
提供正确的用户名密码解决此问题。
问题三:
@ERROR: Unknown module ‘backup’
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。
附:Rsync命令
在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。
Rsync的命令格式可以为以下六种:
rsync [OPTION]… SRC DEST
rsync [OPTION]… SRC [USER@]HOST:DEST
rsync [OPTION]… [USER@]HOST:SRC DEST
rsync [OPTION]… [USER@]HOST::SRC DEST
rsync [OPTION]… SRC [USER@]HOST::DEST
rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]
1)拷贝本地文件:当SRC和DEST路径信息都不包括单个冒好“:”分隔符时就启动这种工作模式,
如:rsync -a /data /backup
2)使用一个远程的shell程序(如rsh,ssh)来实现将本地机器的内容拷贝到远程机器。当DEST路径包括单个冒号“:”分隔符,就启动这种工作模式,
如:rsync -avz *.c foo:src
3)使用一个远程的shell程序(如rsh,ssh)来实现将远程机器的内容拷贝到本地机器。当SRC路径包含单个冒号“:”分隔符,就器送这种工作模式,
如:rsync -avz foo:src/bar /backup
4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含“::”分隔符时启动该模式。
如:rsync -av [email protected]::www /databack
5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含“::”分隔符时启动该模式。
如:rsync -av /databack [email protected]::www
6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
如:rsync -v rsync://172.16.78.192/www
rsync参数的具体解释如下:
-v, –verbose 详细模式输出
-q, –quiet 精简输出模式
-c, –checksum 打开校验开关,强制对文件传输进行校验
-a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, –recursive 对子目录以递归模式处理
-R, –relative 使用相对路径信息
-b, –backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用–suffix选项来指定不同的备份文件前缀。
–backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀
-u, –update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, –links 保留软链结
-L, –copy-links 想对待常规文件一样处理软链结
–copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
–safe-links 忽略指向SRC路径目录树以外的链结
-H, –hard-links 保留硬链结
-p, –perms 保持文件权限
-o, –owner 保持文件属主信息
-g, –group 保持文件属组信息
-D, –devices 保持设备文件信息
-t, –times 保持文件时间信息
-S, –sparse 对稀疏文件进行特殊处理以节省DST的空间
-n, –dry-run现实哪些文件将被传输
-W, –whole-file 拷贝文件,不进行增量检测
-x, –one-file-system 不要跨越文件系统边界
-B, –block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e, –rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
–rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
-C, –cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
–existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
–delete 删除那些DST中SRC没有的文件
–delete-excluded 同样删除接收端那些被该选项指定排除的文件
–delete-after 传输结束以后再删除
–ignore-errors 及时出现IO错误也进行删除
–max-delete=NUM 最多删除NUM个文件
–partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
–force 强制删除目录,即使不为空
–numeric-ids 不将数字的用户和组ID匹配为用户名和组名
–timeout=TIME IP超时时间,单位为秒
-I, –ignore-times 不跳过那些有同样的时间和长度的文件
–size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
–modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
-T –temp-dir=DIR 在DIR中创建临时文件
–compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
-P 等同于 –partial
–progress 显示备份过程
-z, –compress 对备份的文件在传输时进行压缩处理
–exclude=PATTERN 指定排除不需要传输的文件模式
–include=PATTERN 指定不排除而需要传输的文件模式
–exclude-from=FILE 排除FILE中指定模式的文件
–include-from=FILE 不排除FILE指定模式匹配的文件
–version 打印版本信息
–address 绑定到特定的地址
–config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
–port=PORT 指定其他的rsync服务端口
–blocking-io 对远程shell使用阻塞IO
-stats 给出某些文件的传输状态
–progress 在传输时现实传输过程
–log-format=formAT 指定日志文件格式
–password-file=FILE 从FILE中得到密码
–bwlimit=KBPS 限制I/O带宽,KBytes per second
-h, –help 显示帮助信息
另:《CentOS 6.3_ RSync实现文件备份同步配置与使用》 非实时同步值的一看
相关文章
CentOS下s3cmd安装使用2015-05-20
使用SyncToy加定时任务实现文件数据同步备份2014-12-10