rsync网络备份系统工具
选项与参数
-v :观察模式,可以列出更多的信息,包括镜像时的档案档名等;
-q :与 -v 相反,安静模式,略过正常信息,仅显示错误讯息; -r :递归复制!可以针对『目录』来处理!很重要! -u :仅更新 (update),若目标档案较新,则保留新档案不会覆盖; -l :复制链接文件的属性,而非链接的目标源文件内容; -p :复制时,连同属性 (permission) 也保存不变! -g :保存源文件的拥有群组; -o :保存源文件的拥有人; -D :保存源文件的设备属性 (device) -t :保存源文件的时间参数; -I :忽略更新时间 (mtime) 的属性,档案比对上会比较快速; -z :在数据传输时,加上压缩的参数! -e :使用的信道协议,例如使用 ssh 通道,则 -e ssh -a :相当于 -rlptgoD ,所以这个 -a 是最常用的参数了!rsync三种运行方式
1 )本地同步
格式 :rsync option file1 file2
示例:将etc目录备份到tmp目录下
[root@mylinux 桌面]# rsync -av /etc /tmp/...................中间省略...............[root@mylinux 桌面]# ll -d /etc /tmp/etc/drwxr-xr-x. 116 root root 12288 4月 21 23:18 /etcdrwxr-xr-x. 116 root root 12288 4月 21 23:18 /tmp/etc/
2 )通过ssh通道连接同步
前提是服务器与客户端配置好ssh密钥互通认证,具体配置请查看这里
① 从服务器下载文件同步到本地
格式 : rsync option -e ssh user@server:file1 file2
② 从本地上传文件同步到服务器
格式 : rsync option file2 -e ssh user@server:file1
示例 :将服务器上的/etc备份到本地的/tmp下
[root@TestA tmp]# rsync -av -e ssh root@192.168.1.108:/etc /tmp/.................上面省略................etc/yum/pluginconf.d/fastestmirror.confetc/yum/protected.d/etc/yum/vars/etc/yum/vars/infrasent 26102624 bytes received 17717 bytes 5804520.22 bytes/sectotal size is 26033336 speedup is 1.00
注 :如果ssh端口不是22,那么需要写成这样的形式:
rsync -av "--rsh=ssh -p port” /file1/ IP:/tmp/file2/
3 )通过rsync服务进行同步
1. 在服务端启动 rsync , 看 /etc/xinetd.d/rsync 即可;
2. 编辑 /etc/rsyncd.conf 配置文件; 3. 设定好 client 端联机的密码数据; 4. 在 client 端可以利用:rsync -av user@hostname::模块名字 filepath配置文件/etc/rsyncd.conf格式内容,配置完毕后执行命令rsync --daemon
[root@mylinux ~]# vim /etc/rsyncd.conf#port=873#监听端口默认为873,也可以是别的端口log file=/var/log/rsync.log#指定日志pid file=/var/run/rsyncd.pid#指定pidaddress=192.168.1.108#可以定义绑定的ip#以上部分为全局配置部分,以下为模块内的设置[mylinux]#为模块名,自定义path=/etc# 指定该模块对应在哪个目录下use chroot=fasle#是否限定在该目录下,默认为true,当有软连接时,需要改为faslemax connections=4# 指定最大可以连接的客户端数read only=no#是否为只读list=true#是否可以列出模块名uid=root#以哪个用户的身份来传输gid=root#以哪个组的身份来传输#auth users=test#指定验证用户名,可以不设置#secrets file=/etc/rsyncd.passwd#指定密码文件,如果设定验证用户,这一项必须设置,格式为:username:passwordhosts allow=192.168.1.201#设置可以允许访问的主机,可以是网段
示例 :执行同步命令
rsync -av root@192.168.1.201::mylinux /tmp/