必须知道推送有一个限速参数。--bwlimit=100 工作总必须要加。
有三种模式,
1.本地的模拟cp命令,在一个服务器
2.远程的两个服务器之间,模拟scp
3.以socket进程监听的方式启动rsync的server端。
格式文件不需要加参数。
rsync /etc/hosts /opt
把什么推到什么
目录需要加参数,

rsync 命令常用参数选项说明:
-v,--verbose 详细模式输出,传输时的进度等信息 
-z,--compress 传输时进行压缩以提高传输效率,--compress-level=NUM可按级别压缩。 
-a,--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgD1(字母1)

==================================

-r,--recursive    对子目录以递归模式,即目录下的所有目录都同样传输,注意是小写r
-t,--times    保持文件时间信息
-o,--owner    保持文件属主信息
-p,--perms    保持文件权限
-g,--group    保持文件属组信息
-P,--progress    显示同步的过程及传输时的进度等信息
-D,--devices    保持设备文件信息
-l,--links    保留软链接
-e,--rsh=COMMAND    使用的信道协议(remote shell),指定替代rsh的shell程序。例如:ssh --exclude=PATTERN 指定排除不需要传输的文件模式(和tar参数一样)
--bwlimit=RATE    limit socket I/O bandwidth
--delete    让源目录SRC和目标目录数据DST一致

 

在最后加/就是同步目录下的东西,不同步目录,不加就同步
远程的要区分谁是源谁是目标
左边的是源,右边的是目标,
如果左边比右边的多会复制

如果左边的比右边的少,不加特定参数,会不做任何操作。加--delete会强行删掉,很危险
rsync -avz --delete rsync_backup@192.168.197.129::backup /backup/ --password-file=/etc/rsync.password 
命令说明:
--delete :表示同步增,删,改(文件内容出现变化,也会同步的)

 

2排除某文件后,再和服务器进行同步

rsync -avz --delete --exclude=c rsync_backup@192.168.197.129::backup /backup/ --password-file=/etc/rsync.password
命令说明:
--exclude=c:同步时不考虑文件名为c的文件

远程复制

scp -r benet root@192.168.200.195:/back/ (要有对方的账户,对方的地址,如果不写默认是超级用户,冒号后边表示去哪里)

 

第一次连接的时候会询问,一律yes,然后输入对方密码。
把对方的账户的东西拉过来,就是源和目标的路径换线位置。
-P来指定端口,

rsync -avzP -e 'ssh -p 222' benet root@192.168.200.95:/backup/写法一毛一样

 

-e 'ssh -p 2222' 是用ssh来指定端口。

socket进程的写法 rsync 源文件 虚拟的账号名@地址::模板名 --password-file=客户端的密码文件的绝对路径。

 

rsync的socket进程的配置文件写/etc/rsyncd.conf
\#用户
uid = rsync
\#组
gid = rsync
\#程序安全设置
use chroot = no
\#客户端连接数
max connections = 200
\#超时时间
timeout = 300
\#进程号文件位置
pid file = /var/run/rsyncd.pid
\#进程锁
lock file = /var/run/rsync.lock
\#日志文件位置
log file = /var/log/rsyncd.log
#####################################
[backup]
\#使用目录
path = /backup/
\#有错误时忽略
ignore errors
\#可读可写(ture或false)
read only = false
\#阻止远程列表(不让通过远程方式看服务端有啥)
list=false
\#允许ip
hosts allow = 192.168.200.0/24
\#禁止ip
hosts deny = 0.0.0.0/32
\#虚拟用户
auth users = rsync_backup
\存放用户和密码的文件
secrets file = /etc/rsync.password
###rsync_config______end#

 

然后创建备份目录,虚拟用户的密码文件,服务端的里边要有用户名:密码。客户端的只写密码。文件的权限都改成600,创建rsync的程序账号,属主属组改成rsync。
rsync --daemon 守护进程启动,监听873端口。