rsync安装和使用

简介

开源的,快速的,多功能的,可实现全量和增量的本地或远程数据同步的工具

1.支持拷贝特殊文件如链接文件,设备等
2.可以排除指定文件或目录同步的功能,相当于打包命令tar的排除功能
3.可以保持源文件或目录的权限,时间,软硬链接,属组,主等所有属性均不改变
4.可实现增量同步
5.可以使用rcp,rsh,ssh等方式来配合传输文件
6.可以通过socket传输文件和数据
7.支持匿名或认证的进程模式传输,可实现方便安全的进行数据备份和镜像

安装

yum install rsync

命令

1.拷贝文件
    rsync demo.txt /tmp/demo.txt

2.清空目录下的文件(null为新建的空目录)
    rsync -r -delete /null/ /data/

3.对目录下所有文件进行传输
    -r

4.保持文件时间信息
    -t

5.保持文件属主信息
    -o

6.保持文件权限
    -p

7.保持文件属组信息
    -g

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

9.保持设备文件信息
    -D

10.保留软连接
    -l

11.指定排除不需要传输的文件模式
    --exclude=PATTERN

12.保留所有属性
    -a

13.一般使用(保留所有属性,压缩并显示进度传输)
    -avz

应用场景

1.两台服务器同步数据(rsync+cron)
1.多台服务器同步(rsync+cron)
2.实时备份数据(rsync+inotify/sersync)

服务端配置

配置文件

创建 /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          #log日志位置

    [test]                                  #模块
    path = /test/                           #传输目录

    #如果配置多个共享目录的话,下面的内容是可以放到[test]上面进行配置共享的,如果是每个共享目录都需要单独的,那就配置在自己的模块下面
    ignore errors                           #忽略错误
    read only = false                       #非只读
    list = false                            #不允许列表
    hosts allow = 10.0.0.0/24               #允许ip
    hosts deny = 0.0.0.0/32                 #拒绝ip
    auth users = rsync_backup               #虚拟用户
    secrets file = /etc/rsync.password      #虚拟用户对应的密码文件

以守护进程的方式启动

rsync --daemon

创建传输目录

1.添加系统用户
    useradd rsync -s /sbin/nologinifconf

2.创建传输目录
    mkdir /test

3.修改目录权限
    chown -R rsync.rsync /test/

4.添加虚拟用户及密码
    echo "rsync_backup:test" >/etc/rsync.password
    chmod 600 /etc/rsync.password

客户端配置

1.保存虚拟用户密码
    echo "test" >/etc/rsync.password
    chmod 600 /etc/rsync.password

注意

无论是拉数据还是推数据,都在客户端执行命令
/etc/rsync.password 密码文件控制别人不可见,不然会报错sudo

拉数据(客户端执行)

1.需要输入密码
    rsync -avz  rsync_backup@172.16.17.12::test /data/
2.指定密码文件
    rsync -avz  rsync_backup@172.16.17.12::test /data/ --password-file=/etc/rsync.password

推数据

rsync -avz /data/ rsync_backup@172.16.17.12::test --password-file=/etc/rsync.password

rsync -avz /data/ rsync://rsync_backup@172.16.17.12/test --password-file=/etc/rsync.password[]]
坚持原创技术分享,您的支持将鼓励我继续创作!