Rsync命令常用方法总结

rsync

rsync 参数说明

    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 demon模式配置文件样板

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都可以配置成全局的。

Comments