环境拓扑
服务器:192.168.1.10 客户端:192.168.1.12一、安装rsync(服务器、客户端都需要安装)
#tar zxvf rsync-3.0.8.tar.gz #cd rsync-3.0.8 #./configure && make && make install二、配置server
#vi /etc/rsync.conf 创建配置文件,加入如下内容 uid = nobody gid = nobody use chroot = no //不使用chroot max connections = 10 //最大连接数 pid file = /var/run/rsyncd.pid //pid存放位置 lock file = /var/run/rsyncd.lock //锁文件存放位置 log file = /var/log/rsyncd.log //日志文件存放位置 port = 873 //默认端口 timeout = 300 //超时时间 [backup] //项目名称 read only = no //是否允许只读 list = yes //是否允许列表 ignore errors //忽略一些无关的IO错误 comment = This is a file back //项目名称描述 path = /opt //需要同步的文件路径 auth users = test //认证用户 secrets file = /etc/rsync.passwd //用户、密码对应文件 hosts allow = 192.168.1.11,192.168.1.12 //允许授权同步的客户端创建用户、密码对应文件
# vi /etc/rsync.passwd test:123456 # chmod 600 /etc/rsync.passwd //权限必须为600 # rsync –daemon –config=/etc/rsync.conf //启动rsync # echo "rsync –daemon –config=/etc/rsync.conf" >>/etc/rc.local 启动后使用netstat查看,会发现系统已启动873端口三、客户端设置
创建密码文件 # vi /etc/rsync.passwd 123456 # chmod 600 /etc/rsync.passwd测试
# rsync -vzrtopg –progress –delete test@192.168.1.10::backup /tmp –password-file=/etc/rsync.passwd 注释:将服务器192.168.1.10需要备份的文件同步到本地/tmp目录编写脚本
# vi /etc/rsync.sh 加入如下内容 #!/bin/bash rsync -vzrtopg –progress –delete test@192.168.1.10::backup /tmp –password-file=/etc/rsync.passwd# chmod +x /etc/rsync.sh
设置定时同步,每5分钟同步一次
# crontab –e 5 * * * * /etc/rsync.sh全文完
——————————————————————————————————————— 命令介绍:-rvlHpogDtS rsync命令参数 -v表示verbose详细显示 -z表示压缩 -r表示recursive递归 -t表示保持原文件创建时间 -o表示保持原文件属主 -p表示保持原文件的参数 -g表示保持原文件的所属组 -a存档模式 -P表示代替-partial和-progress两者的选项功能 -e ssh建立起加密的连接。 –partial阻止rsync在传输中断时删除已拷贝的部分(如果在拷贝文件的过程中,传输被中断,rsync的默认操作是撤消前操作,即从目标机上 删除已拷贝的部分文件。) –progress是指显示出详细的进度情况 –delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。 –exclude不包含/ins目录 –size-only 这个参数用在两个文件夹中的差别仅是源文件夹中有一些新文件,不存在重名且被修改过的文件,因为这种文件有可能会因为内容被修改可大小一样,而被略过。这个参数可以大大地提高同步的效率,因为它不需要检查同名文件的内容是否相同。 –password-file来指定密码文件,内容包含server端指定认证用户的密码。 这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。 hening@192.168.0.217::backup hening是指server端指定认证的用户 192.168.0.217是指服务器端的ip ::backup 表示服务器端需要同步的模块名称; /home/quack/backup/$DATE是同步后的文件指存放在本机的目录地址。 /var/log/rsync.$DATE是同步后的日志文件存放在本机的目录地址本文地址: