• rsync+inotify同步备份


    1.rsync与scp区别

    scp无法备份大量数据,先统计文件信息,后进行拷贝,如果文件大小超出磁盘空间,则无法拷贝
    rsync边复制,边比较,边统计
    

    2.rsync特点

    (1.)支持增量备份
    (2.)选择性的保持:符号链接,硬链接,文件属性,权限,时间
    (3)传输前执行压缩,适用于异地备份,镜像服务器等应用。
    (4.)使用ssh作为传输端口,sftp,ssh
    (5.)rsync默认端口 873,是c/s架构,可以直接使用rsync命令,进行点到点的传输 。
    (6.)官网:http://rsync.samba.org    推荐开源网站下载:https://sourceforge.net/
    

    3.同步数据的方式

    (1.)推:一台主机负责将数据传给其他主机,服务器开销大,适合后端服务器比较少
    (2.)拉:所有知己定时去找一台主机拉数据,可能会导致数据同步缓慢。
    一般做法:推拉结合,即主机A先将数据推送给主机B和主机C,然后其他主机D,E,F从B和C主机上拉取数据。
    

    4.rsync安装

    rpm -qf  `which rsync`
    ls /etc/xinetd.d/rsync
    rpm -ivh /mnt/Package/xinetd-2.3.14-33.el6.x86_64.rpm
    开启rsync服务
    vim /etc/xinetd.d/rsync
    将disable改为no
    
    rsync监听端口 TCP 873
    

    5.rsync命令基本用法

    格式:rsync [选项] 源文件 目标文件
    rsync 选项 用户名@备份源服务器IP::共享模块名 目标目录

    -a 归档
    -p 保持原有文件权限
    -t 保持原有文件时间
    -g 保持原有文件的用户组
    -o 保持原有文件的属主
    -z 压缩传输
    -P 显示传输进度
    --delete 删除那些目标位置有而原始位置没有的文件
    

    6.创建sync用户

    useradd rget1
    echo "123456" | password --stdin rget1
    
    useradd rput1
    echo "123456" | password --stdin rput1
    
    设置权限
    setfacl -R -m user:rput1:rwx  /var/www/html/
    serfacl -R -m user:rget1:rwx  /var/www/html/
    setfacl -R -m default:rget1:rwx /var/www/html/
    
    getfacl /var/www/html/
    

    7.同步文件

    rsync -azP --delete rget1@192.168.1.63:/var/www/html/  /web-back/
    注意:文件的权限要有拷贝的权限,如果没有加权限。
    

    8.免密传输

    ssh-keygen -t rsa   //一路回车
    ssh-copy-id  rget1@192.168.1.63
    ssh rget1@192.168.1.63  //测试登录
    
    //实现无交互脚本
    export RSYNC_PASSWORD=xxx
    rsync -avz backer@192.168.1.63::www/root  /web-back/
    

    9.定期增量备份

    crontab -e
    0 1 3 * * * /root/rsync.sh    //写一个同步脚本,定时同步数据
    

    10.配置rsync服务器

    (1.)创建自己的配置文件
    /etc/rsyncd.conf

    • 全局参数:对于rsync服务器生效,如果模块参数冲突,模块参数生效。
    • 模块参数:定义rsync输出的目录的参数

    (2.)创建备份账户,以daemon的方式运行rsync

    11.添加防火墙规则

    iptables -A INPUT -p tcp --dport 873  -j ACCEPT
    /etc/init.d/iptables  save
    

    12.rsync与inotify实现同步机制

    (1.)inotify下载
    https://sourceforge.net/projects/inotify-tools/
    (2.)查看内核是否支持

    uname -a     //内核版本大于2.6.13即可
    ll /proc/sys/fs/inotify/      //三个文件表示:监控事件队列  监控实例数  监控文件数
    可以修改上述三个文件中的数字,vi /etc/sysctl.conf配置文件
    fs.inotify.max_queued_events=32768
    fs.inotify.max_users_instances=1024
    fs.inotify.max_watches=90000
    
    修改后,使文件生效
    sysctl -p
    查看是否修改成功
    cat  /proc/sys/fs/inotify/max_user_watches
    

    (3.)安装inotify

    tar -zxvf inotify-tools-3.1.3.tar.gz
    ./configure
    make -j 4   //指定4核cpu进行编译
    make install
    

    (4.)inotifywait 用法

    -e 用于指定监控哪些事件  creat delete move modify
    -m 持续监控
    -r 递归整个目录
    -q 简化输出
    
    示例:
    inotify-wait  -mrq  -e create,move,delete,modify  /var/www/html/
    

    相关链接

    https://linux.cn/thread-13095-1-1.html
    https://www.cnblogs.com/chensiqiqi/p/6542268.html

    ----------------------------------【喜欢打赏】-------------------------------------------

    小主,辛苦啦!文章棒棒哒,赏杯咖啡吧...
    打赏

    ----------------------------------【喜欢打赏】-------------------------------------------

  • 相关阅读:
    Linux——配置secureCRT远程连接图形化显示
    Oracle——insert ino,insert all into,insert first into
    Mysql——case函数
    Mysql——语句执行顺序
    Mysql——实现按字段部分升序,部分降序的方法
    无线网ping虚拟机
    http协议
    eclipse——32位64位Eclipse和jdk对应关系
    2019-07-24_windows系统一些常用的dos命令
    2019-07-23_zabbix监控安装视频教程
  • 原文地址:https://www.cnblogs.com/tomtellyou/p/11123514.html
Copyright © 2020-2023  润新知