Rsync的工作方式

  1. 单个主机本地之间的数据传输(此时类似于cp命令的功能)。

  2. 借助rcp,ssh等同到来传输数据(此时类似于scp命令的功能)。

  3. 以守护进程(socket)的方式传输数据(这个是rsync自身的重要的功能)。

Rsync 常用参数 -avz或者-vzrtopg

-v 详细模式输出,传输时的进度等信息

-z 传输时进行压缩以提高传输效率,--compress-level=NUM 可按级别压缩

-a 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgDl.

    -r 对子目录以递归模式

    -t 保持文件时间信息

    -o 保持文件属主信息

    -p 保持文件权限

    -g 保持文件属组信息

    -P 显示同步的过程及传输时的进度等信息

    -D 保持设备文件信息

    -l 保留软链接

-e 指定通道

--exclude=PATTERN       exclude files matching PATTERN

--exclude-from=FILE     read exclude patterns from FILE

  1. cp -a /etc/hosts /tmp/
    rsync -avz /etc/hosts /tmp/
    rsync --delete /null/ tmp/
  2. 推送scp /etc/hosts ***@********:/tmp/
    推送rsync -avz -e 'ssh ' /etc/hosts ***@********:/tmp/
    拉取scp ***@********:/etc/hosts /tmp/
    拉取rsync -avz -e 'ssh ' ***@********:/etc/hosts /tmp/
  3. 守护进程方式备份拓扑

    wKioL1W6IwyR7f6QAAD_giILwBM784.jpg


    服务端:

    创建配置文件/etc/rsyncd.conf

    #rsyncd_config start

    uid = rsync

    gid = rsync

    use chroot = no

    max connections = 200

    timeout = 300

    pid file = /var/run/rsyncd.pid #进程号保存地址

    lock file = /var/run/rsyncd.lock#锁(上厕所)

    log file = /var/log/rsyncd.log

    [Boris]

    path = /Boris/

    ignore errors

    read only = false

    list = false

    hosts allow = 10.0.0.0/24

    hosts deny = 0.0.0.0/32

    auth users = rsync_backup

    secrets file = /etc/rsync.password

    #rsync_config end

    默认端口是873

mkdir /Boris
useradd rsync -s /sbin/nologin
chown -R rsync.rsync /Boris
echo "rsync_backup:Boris" > /etc/rsync.password
chmod 600 /etc/rsync.password

    关闭Selinux,iptables

    启动

rsync --daemon


    客户端:

echo "Boris" > /etc/rsync.password#客户端secrets文件只有密码
chmod 600 /etc/rsync.password

拉:

1.rsync -avz rsync_backup@*****::Boris /data --password-file=/etc/rsync.password #密码为虚拟用户密码
2.rsync -avz rsync://rsync_backup@*****/Boris /data --password-file=/etc/rsync.password

推:

1.rsync -avz /data/ rsync_backup@*****::Boris --password-file=/etc/rsync.password #密码为虚拟用户密码
2.rsync -avz /data/ rsync://rsync_backup@*****//Boris --password-file=/etc/rsync.password

重启rsync

pkill rsync #关闭rsync服务
kill `cat /var/run/rsyncd.pid`
rsync --daemon #启动rsync服务
ps -ef | grep rsync #检测rsync服务

日志检查

cat /var/log/rsyncd.log

排除文件:

客户端排:

--exclude=**

--exclude-from=FILE

排除单个:

rsync -avz --exclude=a /data/ rsync_backup@*****::Boris --password-file=/etc/rsync.password

排除多个:

rsync -avz --exclude={a,b} /data/ rsync_backup@*****::Boris --password-file=/etc/rsync.password

服务端:

vim /etc/rsyncd.conf

加入 exclude = a b c/d

无差异备份:风险较大

--delete

多模块:

    创建配置文件/etc/rsyncd.conf

    #rsyncd_config start

    uid = rsync

    gid = rsync

    use chroot = no

    max connections = 200

    timeout = 300

    pid file = /var/run/rsyncd.pid #进程号保存地址

    lock file = /var/run/rsyncd.lock#锁(上厕所)

    log file = /var/log/rsyncd.log

    ignore errors

    read only = false

    list = false

    hosts allow = 10.0.0.0/24

    hosts deny = 0.0.0.0/32

    auth users = rsync_backup

    secrets file = /etc/rsync.password

    [Boris]

    path = /Boris/

    [data]

    path = /data/

    #rsync_config end


Inotify的工作方式:

由inotify监控变化从而调用rsync同步数据。