需要创建的目录和文件
mkdir /etc/rsyncd 注:在/etc目录下创建一个rsyncd的目录,我们用来存放rsyncd.conf 和rsyncd.secrets文件;
touch /etc/rsyncd/rsyncd.conf 注:创建rsyncd.conf ,这是rsync服务器的配置文件;
touch /etc/rsyncd/rsyncd.secrets 注:创建rsyncd.secrets ,这是用户密码文件;
chmod 600 /etc/rsyncd/rsyncd.secrets 注:为了密码的安全性,我们把权限设为600;
touch /etc/rsyncd/rsyncd.motd
rsyncd.secrets 权限必须是600
服务器:172.18.3.208
简要说明:服务器上有两个模块linuxsirhome,beinan 两个用户linuxsir,beinan 两个需要通途同步的文件目录/home/wangzm/ /opt/wangzm/
密码文件rsyncd.secrets,格式如下
[root@localhost rsyncd]# cat rsyncd.secrets
linuxsir:222222
beinan:333333
配置文件
[root@localhost rsyncd]# cat rsyncd.conf
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
port = 873
address = 172.18.3.208
#uid = nobody
#gid = nobody
uid = root
gid = root
use chroot = yes
read only = yes
#limit access to private LANs
#hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0
hosts allow=172.18.3.0/255.255.255.0
hosts deny=*
max connections = 5
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
[linuxsirhome]
path = /home/wangzm/
list=yes
ignore errors
auth users = linuxsir
secrets file = /etc/rsyncd/rsyncd.secrets
comment = linuxsir home
exclude = beinan/ samba/
[beinan]
path = /opt/wangzm/
list=yes
ignore errors
comment = optdir
auth users = beinan
secrets file = /etc/rsyncd/rsyncd.secrets
启动服务 /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
端口信息
[root@localhost rsyncd]# netstat -antp|grep 873
tcp 0 0 172.18.3.208:873 0.0.0.0:* LISTEN 5049/rsync
客户机:172.18.3.205
客户端只需要安装rsync,不用启动服务,客户端用的命令
rsync --list-only ::
rsync --list-only
rsync -avzP linuxsirhome
rsync -avzP --delete
rsync -Hxva --delete --exclude=logs linuxdir
删除客户断与服务器不同的文件但不包括logs
rsync -avzP --delete --exclude=logs linuxdir
让rsync 客户端自动与服务器同步数据
放到cron里
rsync -avzP --delete --password-file=rsyncd.secrets $(date +'%m-%d-%y')
该语句的解释同步服务器上的新数据,同时删除客户端上于服务器不符合的文件
如果服务器端不启动rsync
后面直接跟绝对路径:
rsync -Hxva --delete --exclude=logs linuxdir
rsync -Hxva --delete --exclude=logs 172.18.3.208:/home/wangzm/ aaaa
在10.4.9.244上执行如下:
同步数据到10.4.9.233
rsync -Hxva --delete --exclude=*logs /home/wangzm/ 10.4.9.233:/home/wangzm/cc/
同步10.4.9.233的数据到本机
rsync -Hxva --delete --exclude=logs 10.4.9.233:/home/wangzm/cc/ /home/wangzm/
============================================================
192.168.8.133 服务器端
root@ubuntu:/home/wangzm/133# cat /etc/rsyncd/rsyncd.conf
pid file = /var/run/rsyncd.pid
port = 873
address = 192.168.8.133
uid = root
gid = root
use chroot = no
read only = yes
hosts allow=192.168.8.0/255.255.255.0
hosts deny=*
max connections = 5
motd file = /etc/rsyncd/rsyncd.motd
log file = /var/log/rsync.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[linuaaa]
path = /home/wangzm/133/
list=yes
ignore errors
auth users = mingming
secrets file = /etc/rsyncd/rsyncd.secrets
comment = linuxaaa home
root@ubuntu:/home/wangzm/133#
root@ubuntu:/home/wangzm/133# cat /etc/rsyncd/rsyncd.secrets
mingming:123
----->注:不是系统用户
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
启动
客户端
root@ubuntu:/home/wangzm/test1# cat /home/wangzm/srync.pass
123
--》只写密码
===================================================================
在客户端同步服务器端的数据,连接到服务器的daemon上
rsync -avzrtopg --progress mingming@192.168.8.133::linuaaa /home/wangzm/test1 --password-file=/home/wangzm/srync.pass
或者
/usr/bin/rsync -Hxva --delete mingming@192.168.8.133::linuaaa /home/wangzm/test1 --password-file=/home/wangzm/srync.pass
或者
rsync -avzrtopg --progress --password-file=/home/wangzm/srync.pass rsync://mingming@192.168.8.133/linuaaa /home/wangzm/test1
或者
rsync -avzrtopg --progress --password-file=/home/wangzm/srync.pass rsync://mingming@192.168.8.133:/linuaaa /home/wangzm/test1
rsync -avzrtopg --progress --password-file=/home/wangzm/srync.pass rsync://mingming@192.168.8.133:/linuaaa /home/wangzm/test1/ #/test1/ 后不能有/,否则会出现文件格式错误
如果要连接到daemon上 此处必须是linuaaa,不能是/home/wangzm/123 绝对路径,用 rsync://开头,在ip后面直接加/模块名或者加:/模块名
如果不是以rsync://开头的,则需要加::模块名
增量备份要把--delete去掉,否则会同步备份
======================================================================================
如果不连接到rsync服务器daemon上
不能用配置文件里的用户,和密码,模块路径linuaaa
1 rsync -avzrtopg --progress 192.168.8.133:/home/wangzm/133/ /home/wangzm/test1/
2 rsync -Hxva 192.168.8.133:/home/wangzm/133/ /home/wangzm/test1/
跟绝对路径,后面必须有个:号
123后面如果不跟/则会把123目录同步过来,而不是123目录下的文件,如果不连接daemon,后面test1 可以加/ 也可以不加/ 不会产生文件格式错误
======================================================================
如果客户如果要连接对方的端口,在另一端必须配置成服务器端,就daemon形式,默认端口为873
rsync -avzrtopg --progress --password-file=/home/wangzm/rsyncd.secrets rsync://clbus@ip:端口/mybackup /home/wangzm/
rsync -avzrtopg --progress --password-file=/home/wangzm/rsy_sec rsync://mingming@192.168.8.133:873/linuaaa /home/wangzm/test1
如果在外网有防火墙,则需要在防火墙上把一个端口映射到服务器内部的873端口,例如8873--》873,这时客户端需要连接8873.
如果另一端不是daemon形式,则客户端不能加端口号,默认就去ssh 连接22端口
==================================
详细配置请见