• 第一章 Rsync实战教程


    rsync实战教程

    作者:一本正经胡说的韩


    1、rsync基本概述
    rsync是不用主机之间备份使用
    官网地址:https//rsync.samba.org
    rsync监听端口:tcp 873
    rsync运行模式:c/s (客户端/服务器)
    常见备份
    (1)完全备份 所以数据备份
    (2)增量备份 只备份上次增加的数据
    (3)差异备份 备份是上一次完全备份后变化的数据
    常见备份方法
    各种组合

    2、rysnc基本应用方式
    推push 上传(upload)
    将客户端的数据上传到rsync服务器
    拉pull 下载(download)
    将rsync服务器的数据下载到客户端

    3、rsync传输模式
    rsync -avz
    本地方式:

    文件同步: rsync -avz /etc/passwd /data/
    目录同步: rsync -avz /data/ /opt/
    注意: /data/ "同步是目录的内容" /data "同步的是目录及其内容"
    完全同步

    --delete 保存目录数据保持一致 rsync -avz /a/ /b/ --delete 会删除

    远程备份:

    rsync -avz /etc/hosts root@172.16.1.31:/etc

    rsync -avz root@172.16.1.31:/home/html/a.txt . (当前目录)
    rsync -avz root@172.16.1.31:/server/scripts/rbackup.sh /root/
    守护进程

    1、安装软件包 yum install -y rsync
    2、配置文件
    查找配置文件
    #############################
    rpm -qc rsync
    rpm -ql|grep /etc
    vim 清空 %d |dG
    3、
    全局配置文件
    vim /etc/rsyncd.conf
    rsync配置模板文件
    uid = rsync #---运行进程用户
    gid = rsync #---运行进程的用户组
    prot = 873 #端口监听
    fake super = yes #3.1版本以上 无需rsync使用root身份运行
    user chroot = no
    max connections = 200
    timeout = 600
    ignore errors
    read only = false
    list = false
    auth users = rsync_backup
    secrets file = /etc/rsync.password
    log file = /var/log/rsyncd.log

    [backup]
    comment = "this is hx"
    path = /backup

    #################################
    4、创建程序用户(服务端配置流程)
    #创建用户 无需登录
    useradd -M -s /sbin/nologin rsync
    #查看
    cat /etc/passwd|grep rsync
    #创建目录
    mkdir -p /backup
    #* 设置权限
    chown -R rsync.rsync /backup
    #创建虚拟用户认证文件
    #虚拟用户名:密码
    echo "rsync_backup:123456" >/etc/rsync.passwd
    chmod 600 /etc/rsync.passwd
    #启动服务
    systemctl start rsyncd

    #查看启动状态
    systemctl status rsyncd
    #查看端口号
    lsof -i :873
    ss -antp|grep rsync
    netstat -antp|grep rsync
    5(客户端安装)
    yum install -y rsync

    #实战教程
    man rsync
    推:
    客户端推送文件|目录到rsync服务器
    rsync -avz /etc/ rsync_backup@172.16.1.41::backup
    拉:
    客户端从服务器backup模块下的内容拉倒本地
    rsync -avz rsync_backup@172.16.1.41::backup/ /opt/


    错误实例:
    文件权限问题:
    [root@backup backup]# ll
    total 1724
    -rw------- 1 root root 0 Jul 3 08:35 1.sh
    -rw-r--r-- 1 root root 106 Jul 4 02:47 1.sh.gz
    -rw-r--r-- 1 root root 106 Jul 4 02:48 1.sh.tar.gz
    -rw------- 1 root root 1728597 Jul 3 07:39 messages
    -rw------- 1 root root 22089 Jul 3 07:39 secure


    [root@nfs opt]# rsync -avz rsync_backup@172.16.1.41::backup /opt/
    Password:
    receiving incremental file list
    rsync: failed to read xattr user.rsync.%stat for "messages" (in backup): Permission denied (13)
    rsync: failed to read xattr user.rsync.%stat for "secure" (in backup): Permission denied (13)
    rsync: failed to read xattr user.rsync.%stat for "1.sh" (in backup): Permission denied (13)
    rsync: send_files failed to open "1.sh" (in backup): Permission denied (13)
    rsync: send_files failed to open "messages" (in backup): Permission denied (13)
    rsync: send_files failed to open "secure" (in backup): Permission denied (13)

    sent 85 bytes received 724 bytes 231.14 bytes/sec
    total size is 1,750,898 speedup is 2,164.27
    rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1650) [generator=3.1.2]

    查看日志

    cat /var/log/messags
    cat /var/log/secure

    免密登录
    客户端建立密码
    echo "123456" /etc/rsync.passwd
    设置权限
    chmod 600 /etc/rsync.passwd

    paintoolsal

    出现问题 同步失败问题

    [root@nfs opt]# rsync -avz rsync_backup@172.16.1.41::backup/ /opt/ --password-file=/etc/rsync.password
    receiving incremental file list
    rsync: link_stat "." (in backup) failed: Permission denied (13)

    sent 8 bytes received 85 bytes 186.00 bytes/sec
    total size is 0 speedup is 0.00
    rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1650) [Receiver=3.1.2]
    rsync: read error: Connection reset by peer (104)
    [root@nfs opt]#

    解决方法1
    修改服务器端rsyncd.conf
    uid=root
    gid=root
    出现问题
    rsync -avz rsync_backup@172.16.1.41::backup /opt/ --password-file=/etc/rsync.password
    @ERROR: auth failed on module backup
    解决方法

    修改密码文件:
    免密登录
    echo "123456" > /etc/rsync.password
    两种方式都可以
    (1)chmod 600 /etc/rsync.password
    (1)export RSYNC_PASSWORD=123456
    rsync -avz rsync_backup@172.16.1.41::backup/ /opt1/ --password-file=/etc/rsync.passwod

    正儿八经实战教程

    ssh 和rsync 的区别
    1、tcp端口不一致(22,873)
    2、认证方式不一致("/etc/passwod /etc/shadow" : "/etc/rsync.password")
    3、程序用户不一致(“服务系统用户”:“程序用户创建的 rsync”)注:修改共享模块的属主 属组

    一、增加新的模块

    修改/etc/rsyncd.conf
    [backup]
    path = /backup
    auth users = rsync_backup
    secres files = /etc/rsync.password

    二、实战教程

    创建备份要求的文件 文件名-ip地址-时间
    (1)mkdir -p /backup/$(hostname)_$(ifconfig eth1|awk 'NR==2{print $2}')_$(date +%F)
    (2)创建脚本文件 进行创建备份目录

    出现的小问题
    {
    1)修改别名
    vim ~/.bashrc
    2)解决centos7命令不能使用
    export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    }

    注意推动的时候/ 是代表文件 不加/ 是目录一起推送

    客户端
    (1)制作推送 简易脚本
    #!/bin/bash

    #定义变量

    Host=$(hostname)
    IP=$(ifconfig eth1|awk 'NR==2{print $2}')
    Date=$(date +%F)
    BackupDir=/backup
    Dest=${BackupDir}/${Host}_${IP}_${Date}

    #
    mkdir -p $Dest

    echo "create is ok >>>ok"

    #
    #cp -p /etc/fstab /etc/hosts /var/spool/cron/root $Dest
    #cp -p /var/log/messages /var/log/secure /var/log/cron $Dest
    #cp -p /etc/rsyncd.conf $Dest

    # 打包需要备份的文件
    tar -zcPf $Dest/log.tar.gz /etc/fstab /etc/hosts /var/spool/cron/root $Dest
    tar -zcPf $Dest/sysconf.tar.gz /var/log/messages /var/log/secure /var/log/cron $Dest
    tar -zcPf $Dest/svrconf.tar.gz /etc/rsyncd.conf $Dest


    # md5 校验
    md5sum $Dest/* > $Dest/backup_check_$Date

    #push 免密推送
    export RSYNC_PASSWORD=123456

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

    #保留七天删除

    find $BackupDir -type d -mtime +7 |xargs rm -rf

    服务器校验
    (2)
    md5sum -c /backup/*_$(date +%F)/backup_check* >/backup/*_$(date +%F)/result.txt


    服务端发邮件

    yum install mailx -y
    vim /etc/mail.rc
    set from=1805478333@qq.com
    set smtp=smtps://smtp.qq.com:465
    set smtp-auth-user=1805478333@qq.com
    set smtp-auth-password=
    set smtp-auth=login
    set ssl-verify=ignore
    set nss-config-dir=/etc/pki/nssdb/

    发送
    mail -s "rsync" 1805478333@qq.com </etc/hostes


    客户端备份

    1、安装rsync
    yum install -y rsync
    2、将客户端的备份脚本拉过来就可以了
    3、修改密码文件(只是添加密码即可123456)

  • 相关阅读:
    使用 Eclipse PhoneGap 构建 Android 应用程序入门
    SSAS系列——【01】准备知识
    HDU 5763 Another Meaning 2016多校第四场1001 KMP+DP
    HDU 5794 A Simple Nim 2016多校第六场1003
    HDU 5758 Explorer Bo 2016多校第三场1007 树上DP
    HDU 5755 Gambler Bo 2016多校第三场1004
    HDU 5754 Life Winner Bo 2016多校第三场1003
    vue2.0引入腾讯地图
    MVC Razor模板引擎输出HTML或者生产HTML文件
    慎把“DataContext”静态化 或则单例
  • 原文地址:https://www.cnblogs.com/carsar/p/11158224.html
Copyright © 2020-2023  润新知