zoukankan      html  css  js  c++  java
  • 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

    优点缺点

  • 相关阅读:
    linux下载和解压命令
    检测是否存在post类型的注入
    snort的学习
    解决ERROR: D:Snortetcsnort.conf(511) Unknown preprocessor: "sip". Fatal Error, Quitting..
    代理服务器
    Settimer及回调函数的用法
    vm安装ubantu的详细过程(转载)
    linux 常用指令汇总
    linux 用户及文件权限管理
    linux 基础知识
  • 原文地址:https://www.cnblogs.com/zdqc/p/9431293.html
Copyright © 2011-2022 走看看