rsync和rsync后台模式

注意(有软链接的rsync同步,-L能够把软连接里的当普通文件同步。-l 只同步软连接不一样步软连接指向的目录或文件) git

rsync命令详解vim

rsync  
-a 归档模式 ,表示以递归方式传输文件,并保持全部属性,等同于-rlptgoD,-a选项后面能够跟一个--no-OPTION这个表示关闭-rlptgdoD中的某一个例如-a --no-l等同于-rptgoD -r 对于目录以递归模式处理,主要针对目录,传输的是目录必须加-r -v 打印一些信息出来,好比速率,文件数量等。 -l 保留软连链 -L 向对待常规文件同样处理软连接,若是是src(源机)中有软连接文件,刚加上该选项后会把软链接指向的目标文件拷贝到dst(目标机) -p 保持文件权限 -o 保持文件属主信息 -g 保持文件属组信息 -D 保持 设备文件信息 -t 保持 文件时间信息 --delete 删除那些dst中src没有的文件 --exclude=PATTERN指定排除不须要传输的文件,等号后面跟文件名,能够是万用字符模式(如*.txt)
  PATTERN路径是相对弄要同步的路径如(rsync -avPz --exclude=zabbix /opt/sh 10.8.64.99::backup/tmp/ #排除的是/opt/sh/zabbix)
--progress或-P 在同步的过程当中能够看到同步的过程状态,好比统计要同步的文件数量,同步的文件传输速度等等。。。 --bwlimit=10 (限制传输速度) -u 加上这个选项后将会把DST中比SRC还新的文件排除掉,不会覆盖 -z 压缩 传输的过程当中会压缩,咱们并不会感知。 文件到了目标机器上咱们看到的是同样的。 (工做中经常使用的几个 -a -v --delete --exclude ,请熟记他们)

rsync几种写法:安全

rsync同步ssh隧道方式:#后面的目录是目标地址
    例1:rsync -avPz 192.168.183.109:/tmp/1.txt /tmp/   拉 远程到本机
    例2:rsync -avPz /tmp/1.txt  192.168.183.109:/tmp/   推  本机到远程
    例3:rsync -avPz -e "ssh -p 10022" /tmp/1.txt  192.168.183.109:/tmp/   推  本机到远程  端口不     是22的状况
rsync同步daemon方式
    例4:不须要密码   学ssh免密码登录
    rsync -auvPz --bwlimit=10 (限制传输速度) net-snmp-5.7.3.tar.gz test@113.204.101.197::test --password-file=/home/hanxiaohui/.rsync.password
    例5:查询rsyncd 可用模块   (list参数,yes会显示,no不会显示)
    rsync -list --port 873  192.168.186.118::

rsync daemon 配置文件详解服务器

port=873  这是默认端口,要用其它端口改这个
log file=/var/log/rsync.log  指定日志文件
pid file=/var/run/rsyncd.pid 指定pid ,启支中止等进程管理操做
#address=192.168.0.10  指定启动rsyncd服务的ip,假如你的机器 有多个ip,就能够指定其中一个启动rsyncd服务,默认是在所有ip上启动
[test]  指定模块名,自定义
path=/root/rsync 数据存放路径(路径不存在会报@ERROR: chroot failed)
use chroot=true  true|false 默认是true,意思是在传输文件之前首先chroot到path参数所指定的目录下。这样作的缘由是实现额外的安全保护,可是缺点是须要以root权限,而且不能备份指向外部的符号链接所指向的目录文件。默认状况下chroot值为true,若是你的数据当中有软链接文件的话建议设置成false.(待验证    )
max connections=4  指定最大的链接数,默认是0即没有限制。
read only=no 若是为true则不能上传到该模块指定的路径下。
list=true 指定当用户查询该服务器上的可用模块时,该模块是否被列出,设定true列出,false隐藏
uid=root
gid=root  uid/gid指定传输文件时,以哪一个用户/组的身份传输
auth users=test 指定 传输时要使用的用户名
secrets file=/etc/rsyncd.passwd  指定密码文件,该参数连同上面的参数若是不指定则不使用密码验证,注意该密码文件的权限必定要是600(相对于rsync的启动用户)
hosts allow=192.168.183.109 192.168.55.0/24 指定被容许链接该模块的主机,能够是Ip或者网段,若是是多个之间用空格隔开。
配置文件会为两部分:全局,模块   能够有多个模块
全局:port,log file, pid file, address
其实模块中的一些参数例如use chroot,max connetcions,uid,gid,auth users, secrets file,hosts allow均可以配置成全局的。

rsync daemon启动ssh

rsync --daemon --config=/etc/rsyncd.conf

rsync daemon例子1(无密码)ui

[root@host1 111]# cat /etc/rsyncd.conf
#port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
uid=root
gid=root
[test]
path=/root/test
use chroot=no
max connections=50 
read only=no
list=true 
ignore errors
timeout = 600 
hosts allow=192.168.55.0/24


启动
rsync --daemon --config=/etc/rsyncd.conf

客户端同步
rsync -avPz /tmp/abc 192.168.55.51::test/ #把abc目录 同步到服务端test模块下

例2:
uid git = deploy
rsync -avPz --no-o --no-g /data/media/* 47.100.217.13::data/ #这种同步方式,目标文件的用户和组都是deploy

rsync daemon例子1(有密码)spa

#port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
uid=root
gid=root
#address=192.168.0.10
[test]
path=/root/rsync #
use chroot=true 
max connections=50 
read only=no 
list=true 
ignore errors
timeout = 600 
auth users=test 
secrets file=/etc/rsyncd.passwd 
hosts allow=192.168.183.0/24 
2.编辑secrets file,保存后要赋予600权限,若是权限不对,不能完成同步(相对于启动rsync的用户)
cat /etc/rsyncd.passwd      test:test123
chmod 600/etc/rsyncd.passwd     更改权限

启动rsync
rsync --daemon --config=/etc/rsyncd.conf  启动服务
启动后能够查看一下日志文件,并查看端口是否启动
cat /var/log/rsync.log      netstat -lnp | grep 873
若是 想开机启动,请把命令
#rsync --daemon --config=/etc/rsyncd.conf 写入到 /etc/rc.d/rc.local文件中rsyncd.conf修改配置文件 不须要重启服务

例1:  rsync -avLpz test@192.168.183.118::test/test/ ./test1/  拉  远程到本机
例 2: rsync -avL ./test2/ test@192.168.183.118::test/test/  推  本机到远程
例3: 自定义端口
rsync -avL --port 8730  ./test2/ test@192.168.183.118::test/test/  推  本机到远程
例4: 免输密码 1.vim /etc/pass   加入test的密码 test123
2.修改密码的权限  chmod 600 /etc/pass
3.在 同步的时候指定一下密码文件
rsync -avL ./test2/ test@192.168.183.118::test/test/  --password-file=/etc/pass  #这个密码文件必须跟执行人是同一个全部者
相关文章
相关标签/搜索