快速部署Rsync
环境拓扑
服务器: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是同步后的日志文件存放在本机的目录地址