rsync

rsync功能说明

 ①. 可以实现本地数据备份(类似cp命令)

        本地文件备份

        [root@backup ~]# # 本地文件备份

        [root@backup ~]# cp -a /etc/hosts /tmp/

        [root@backup ~]# ls -l /tmp/hosts

        -rw-r--r-- 1 root root 352 Mar 19 17:32 /tmp/hosts

        [root@backup ~]# rsync -a /etc/hosts /tmp/hosts02

        [root@backup ~]# ls -l /tmp/hosts02

        -rw-r--r-- 1 root root 352 Mar 19 17:32 /tmp/hosts02

        本地目录备份

        [root@backup ~]# ls /tmp/

        etc  hosts  hosts02

        [root@backup ~]# m /tmp/* -rf

        [root@backup ~]# cp -a /etc/ /tmp/

        [root@backup ~]# ls /tmp/

        etc

        [root@backup ~]# m /tmp/* -rf

        [root@backup ~]# rsync -a /etc/ /tmp/

       

        当利用rsync命令进行目录备份的时候有两种情况:

        rsync命令后面接的目录信息:/etc/    表示将etc目录下面的内容进行备份

        rsync命令后面接的目录信息:/etc     表示将etc目录本身和目录下面的内容进行备份

   

    ②. 可以实现远程数据备份(类似scp命令-全量备份命令)

        [root@backup ~]# # 远程数据备份

        [root@backup ~]# scp -rp /etc/hosts 172.16.1.31:/tmp

        The authenticity of host '172.16.1.31 (172.16.1.31)' can't be established.

        RSA key fingerprint is 79:b8:2b:fe:a8:61:b9:04:a4:53:96:2b:95:94:90:21.

        Are you sure you want to continue connecting (yes/no)? yes

        Warning: Permanently added '172.16.1.31' (RSA) to the list of known hosts.

        root@172.16.1.31's password:

        hosts                                                                          100%  352     0.3KB/s   00:00

        [root@backup ~]# rsync -rp /etc/hosts 172.16.1.31:/tmp

        root@172.16.1.31's password:

 

    ③. 可以实现数据清空操作(类似rm命令)

        [root@backup ~]# mkdir /oldboy_dir

        [root@backup ~]# touch /oldboy_dir/{1..10}.txt

        [root@backup ~]# ls /oldboy_dir/

        10.txt  1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt  8.txt  9.txt

        [root@backup ~]# m -f /oldboy_dir/*

        [root@backup ~]# ls /oldboy_dir/

        [root@backup ~]#

        [root@backup ~]# touch /oldboy_dir/{1..10}.txt

        [root@backup ~]# mkdir /null

        [root@backup ~]# rsync --delete /null/ /oldboy_dir/

        rsync: --delete does not work without -r or -d.

        rsync error: syntax or usage error (code 1) at main.c(1422) [client=3.0.6]

        [root@backup ~]# rsync -r --delete /null/ /oldboy_dir/

        [root@backup ~]# ls /oldboy_dir/

   

    ④. 可以实现数据信息查看(类似ls命令)

        [root@backup ~]# ls /etc/hosts

        /etc/hosts

        [root@backup ~]# rsync /etc/hosts

        -rw-r--r--         352 2018/03/19 17:32:24 hosts

    总结:rsync命令=cp scp rm ls等命令,并且rsync命令功能还优于它们

1.1 rsync详细特性说明: 

    ①. 支持拷贝普通文件与特殊文件如链接文件,设备等。

    ②. 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。

        #tar zcvf backup_1.tar.gz  /opt/data  -exclude=oldboy   

        说明:在打包/opt/data时就排除了oldboy命名的目录和文件。

    ③. 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-p。

    ④. 可实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar -N)。

        # 将备份/home 目录自 2008-01-29 以来修改过的文件

        # tar -N 2008-01-29 -zcvf /backups/inc-backup_$(date +%F).tar.gz /home

        # 将备份 /home 目录昨天以来修改过的文件

        # tar -N $(date -d yesterday "+%F") -zcvf /backups/inc-backup_$(date +%F).tar.gz /home

        # 添加文件到已经打包的文件

        # tar -rf all.tar *.gif

        说明:这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

    ⑤. 可以使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)

    ⑥. 可以通过socket(进程方式)传输文件和数据(服务端和客户端)*****。重点掌握

    ⑦. 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。

1.1  rsync服务端部署流程

    第一个历程:确认检查软件程序是否已经安装

    rpm -qa rsync

    rpm -qa|grep rsyn

    yum install -y rsync   <--- 安装rsync软件

  

    第二个历程:编写rsync服务配置文件

vim /etc/rsyncd.conf   <--- /etc/rsyncd.conf表示rsync服务默认配置文件,默认没有此配置文件,需要进行创建

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

    ignore errors

    read only = false

    list = false

    hosts allow = 172.16.1.0/24

    hosts deny = 0.0.0.0/32

    auth users = rsync_backup

    secrets file = /etc/rsync.password

    [backup]

    comment = "backup dir by oldboy"

    path = /backup

   

    第三个历程:创建rsync服务虚拟用户

    useradd rsync -s /sbin/nologin -M

    # id rsync

    uid=892(rsync) gid=892(rsync) groups=892(rsync)

   

    第四个历程:创建认证秘钥文件,并设置600权限

    echo "用户名称:用户密码信息" >/etc/rsync.password

    [root@backup ~]# echo "rsync_backup:oldboy123" >/etc/rsync.password

    [root@backup ~]# cat /etc/rsync.password

    rsync_backup:oldboy123

    [root@backup ~]# chmod 600 /etc/rsync.password

    [root@backup ~]# ll /etc/rsync.password

    -rw------- 1 root root 23 Mar 20 17:34 /etc/rsync.password

 

    第五个历程:创建备份目录

    mkdir /backup -p

    chown -R rsync.rsync /backup   

   

    第六个历程:启动rsync服务

    rsync --daemon   <-- 以守护进程方式启动rsync服务

    [root@backup ~]# ps -ef|grep rsync

    root       3047   1926  0 16:56 pts/2    00:00:00 vim /etc/rsyncd.conf

    root       3124      1  0 17:39 ?        00:00:00 rsync --daemon

    root       3126   2691  0 17:39 pts/0    00:00:00 grep --color=auto rsync

    [root@backup ~]# netstat -lntup|grep rsync

    tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      3124/rsync         

    tcp        0      0 :::873                      :::*                        LISTEN      3124/rsync  

   

    至此,rsync服务端部署完毕

   

    客户端备份存储测试:

    rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup

 1.2rsync客户端部署流程

    第一个历程:确认检查软件程序是否已经安装

    rpm -qa rsync

    rpm -qa|grep rsyn

    yum install -y rsync   <--- 安装rsync软件

 

    第二个历程:编写rsync客户端认证秘钥文件

    echo 'oldboy123' >/etc/rsync.password 

    chmod 600 /etc/rsync.password

   

    第三个历程:在客户端进行数据推送备份,采用免交互

    rsync -avz /etc rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

优点缺点

原文地址:https://www.cnblogs.com/zdqc/p/9431293.html