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 /etc
drwxr-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.conf
etc/yum/protected.d/
etc/yum/vars/
etc/yum/vars/infra

sent 26102624 bytes  received 17717 bytes  5804520.22 bytes/sec
total 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
#指定pid

address=192.168.1.108
#可以定义绑定的ip

#以上部分为全局配置部分,以下为模块内的设置

[mylinux]
#为模块名,自定义

path=/etc
# 指定该模块对应在哪个目录下

use chroot=fasle
#是否限定在该目录下,默认为true,当有软连接时,需要改为fasle

max connections=4
# 指定最大可以连接的客户端数

read only=no
#是否为只读

list=true
#是否可以列出模块名

uid=root
#以哪个用户的身份来传输

gid=root
#以哪个组的身份来传输

#auth users=test
#指定验证用户名,可以不设置

#secrets file=/etc/rsyncd.passwd
#指定密码文件,如果设定验证用户,这一项必须设置,格式为:username:password

hosts allow=192.168.1.201
#设置可以允许访问的主机,可以是网段

      示例 :执行同步命令

      rsync -av root@192.168.1.201::mylinux /tmp/