rsync的目录主要是为了同步文件用的,现在把使用的配置记录一下
测试机器2台
rsync服务器IP:192.168.171.22
客户端IP:192.168.171.134
rsync服务器端操作
检查是否安装rsync
rpm -qa | grep rsync
安装rsync,并通过xinetd管理rsync
yum -y install rsync xinetd
检查启动,默认端口873
netstat -an | grep 873
rsync随xinetd启动而启动
vi /etc/xinetd.d/rsync
将disable = yes 修改为 disable = no
创建rsync需要的文件
mkdir /etc/rsyncd
touch /etc/rsyncd/rsyncd.conf #主配置文件
touch /etc/rsyncd/rsyncd.secrets #验证用户和密码存放地
touch /etc/rsyncd/rsyncd.motd #服务器描述信息
ln /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf #建立链接
为了密码的安全性,我们把权限设为600
chown root:root /etc/rsyncd/rsyncd.secrets
chmod 600 /etc/rsyncd/rsyncd.secrets
修改主配置文件
vi /etc/rsyncd/rsyncd.conf
添加以下内容
#服务器传输文件时用root 权限执行
uid = root
gid = root
#指定服务端口,默认873
port = 873
use chroot = no
#只读,不让客户端上传文件到服务器
read only = yes
#limit access to private LANs
#限制能访问该服务的网段
hosts allow=192.168.0.0/255.255.0.0
hosts deny=*
#最大连接数
max connections = 5
#告诉进程写到该文件中
pid file = /var/run/rsyncd.pid
secrets file = /etc/rsyncd/rsyncd.secrets
#lock file = /var/run/rsync.lock
#服务器信息定义指向该文件,该文件可写服务器信息,欢迎的文字
motd file = /etc/rsyncd/rsyncd.motd
#This will give you a separate log file
log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync
transfer logging = yes
#日志文件格式
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300 #超时时间
# MODULE OPTIONS
[testhome]
#同步的目录
path = /home/test/
list=yes
#忽略IO错误
ignore errors
#验证用户,我的用户是cs
auth users = cs
comment = test home
#不同步的目录
exclude = .git/
修改rsyncd.secrets 和rsyncd.motd 文件
vi /etc/rsyncd/rsyncd.secrets
添加内容
cs:123456
cs该用户不要求是系统用户
vi /etc/rsyncd/rsyncd.motd
添加内容
++++++++++++++++++++++++++++++++
Welcome
++++++++++++++++++++++++++++++++
防火墙设置(rsync默认端口 837)
vi /etc/sysconfig/iptables
添加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
重启服务
service xinetd restart
客户端操作
安装rsync
yum -y install rsync
测试
rsync -avzP [email protected]::testhome /home/test
上面命令意思就是用cs用户登录服务器,将testhome指定的目录数据保存到我本地/home/test
同步命令说明:
1 显示目录内容
命令
——
a) rsync
b) rsync -r
c) rsync [email protected]::
d) rsync [email protected]:
命令说明
———
a) 显示目录内容(第一层)
b) 递归显示目录内容
c) 显示远程主机目录内容
*注1:端口模式, 基于rsync用户的身份验证
*注2:rsync server上的目录必须具有xx7的权限.
d) 查看远程主机目录内容
*注1:remote shell模式, 通过ssh连接的基于系统本地用户的身份验证
*注2:这里只使用了一个冒号(:),同时用户名是远程主机的ssh 用户,密码也是ssh用户对应的密码。
*注3:使用””,则列出文件夹本身的信息。若要列出文件夹内容,应使用”/”。
参数说明
———
-r 对目录进行递归操作
2 本地目录之间同步
命令
——
a) rsync -av –progress / *** 注意(/) ***
b) rsync -av –progress
c) rsync -avu –progress –delete /
d) rsync -av –progress –temp-dir=/tmp /
命令说明
———
a) 同步src-dir目录下所有文件到dst-dir目录下
b) 同步src-dir目录下所有文件到dst-dir/src-dir目录下
c) 对src-dir目录内容向dst-dir目录下进行差异更新,有增加/更新则添加替换,有减少则对其删减
d) 比a)多了–temp-dir=/tmp,即指定/tmp为临时交换区,这样可以避免因目标目录空间不够引起的无法同步文件的错误。
参数说明
———
-a 相当于 -rlptgoD 的集合
-u 等同于 –update,在目标文件比源文件新的情况下不更新
-v 显示同步的文件
–progress 显示文件同步时的百分比进度、传输速率
–delete 删除目标目录中多于源目录的文件
3 异地主机之间同步
命令
——
a) rsync -avz –progress [email protected]::/
b) rsync -avz –progress [email protected]::/ –password-file=/home/jack/rsync.jack
c) rsync -avuz –progress –delete [email protected]::/ –password-file=/home/jack/rsync.jack
d) rsync -avz –progress [email protected]::/
命令说明
———
a) 同步本地目录的内容到远程主机192.168.0.1的目录下,jack是rsync数据库用户(参见3. /etc/rsync.secrets)
b) 通过自动读取用户密码而实现非交互登录文件同步
c) 较b)多了-u和–delete
d) 同步远程主机内容到本地目录