必须知道推送有一个限速参数。--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端口。