• rsync远程同步


    rsync远程同步 是一个开源的快速备份工具,可以在不同主机之间同步整个目录,

    源端负责文件起始位置,发起端和源端文件同步,拷贝文件,连接文件设备,

    在保持源文件的权限,所有者,所在组,时间,软连接等都可以保持不变,实现增量同步,值同步发生变化的数据,数据传输效率很高,支持匿名,适合同步大文件,数据库可以同步

    同步方式:

    1 完整备份,第一次备份都是完整备份

    2 往后的备份都是增量备份,同步变化的数据

    rsync的命令选项:

    -r 递归模式,目录和子目录的内容

    -l 复制链接文件,软链接

    -v 显示同步过程中的详细信息

    -z 文件传输,进行压缩

    -a 归档模式,保留文件的原有权限

    -p 保留文件的权限标记(所有者,所有组)

    -t 保留时间标记(时间戳)

    -g 保留文件的所有者

    -o 保留文件的所在组

    -H 保留硬链接
    -D: 保留设备文件和其他特殊文件
    --delete: 删除目标位置有,但是原始位置没有的文件

    下行同步:源端到客户端

    上行同步:客户端到源端

    test1 192.168.10.102

    test2 192.168.10.101

    下行同步:

    test 1 

    systemctl stop firewalld
    setenforce 0
    vim /etc/rsyncd.conf
    ***************************************
     
    uid = root
    gid = root
    use chroot = yes
    #禁锢在源文件
    address = 192.168.10.10   #
    #监听地址
    port = 873
    #监听端口
    log file = /var/log/rsync.log
    pid file = /var/run/rsyncd.pid
    hosts allow = 192.168.10.0/24
    #指定可以访问服务端的地址
    dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
    取消注释:以上述后缀名的,同步时不进行压缩
     
    配置共享模块和目录、账户、密码
    [test]
    path = /opt/test      指定共享目录
    comment = test
    read only = no
    auth users = backuper
    secrets file = /etc/rsyncd_users.db
     
    ******************************************
     
     
     
    vim /etc/rsyncd_users.db
    ***************************************
    backuper:123456
    ***************************************
    赋权 chmod 600 /rsyncd_users.db
     
    创建共享文件夹
    mkdir -p /opt/test
    chmod 777 /opt/test
     
    rsync --daemon                 重启
    netstat -antp | grep rsync   查看服务是否启动,是否正常运行
    kill $(cat /var/run/rsyncd.pid)    关闭服务

    验证

    test1
    **********************
    cd /opt/test
    创建文件到/opt/test
     
    **********************
     
    test2
    rsync -avz backuper@192.168.10.102::test /opt/
     
    *************************************
    rsync 发起同步的命令
    -avz a保留文件权限 v显示详细过程 z同步过程中对文件进行压缩
    :test 模块名称
    /opt/ 存放路径
    *************************************

    免密交互

    免密交换
    test2
    echo"123456"> /etc/server.pass
    chmod 600 /etc/server.pass
     
    rsync -avz --password-file=/etc/server.pass backuper@192.168.10.10::test /opt

    上行同步:

    inotifv通知接口,可以来监控文件系统的各种变化,文件存取,删除,移动都可以来监控

    inotifv机制和rsynct同步一起使用,既可以实现监控,也可以实现同步

    tar -xf inotify-tools-3.14,tar.gz

    监控事件列队

    最多监控的实例

    每个实例最多监控的文件

    test2
     
    vim /etc/sysctl.conf
    ********************************
     
    fs.inotify.max_queued_events = 16384
    fs.inotify.max_user_instances = 1024
    fs.inotify.max_user_watches = 1048576
     
    ********************************
    sysctl -p
    ./configure
    make && make install
     
     
    test1
    vim /etc/rsyncd.conf
    ********************************
    read only = no
    ********************************

    test2监控

    test2
    inotifywait -mrq -e modify,create,move,delete /opt/test/
    -m 持续监控
    -r 递归整个目录
    -q 简化的输出信息,信息提示
    -e 指定监控的事件,多个事件用逗号隔开

    写脚本,功能:既可以上行同步,也可以监控

    vim /opt/inotifg
    ***********************************************************************
    CMD="inotifywait -mrq -e modify,create,move,delete /opt/data/"
    rsync_cmd="rsync -avz --password-file=/etc/server.pass /opt/data backuper@192.168.10.10::test"
    $CMD | while read DIRECTORY EVENT FILE
    do
        if[ $(pgrep rsync | wc -l) -le 0 ]
        then
            $rsync_cmd
        fi
    done
     
    ***********************************************************************
     
    给脚本777权限
    chmod 777 /opt/inotifg
     
    在系统启动期间自动运行用户自定义的命令或脚本
    chmod +x /etc/rc.d/rc.local
    echo '/opt/inotify.sh' >> /etc/rc.d/rc.local
     
    crontab -e -u root 
    * * */2 * * /opt/inotify.sh

    rsync同步数据

    /home/blank/ 创建blank文件夹,在其内部多个创建文件,写入内容
    将此文件夹/opt/test1/ 下的内容与/home/blank/同步
     
    rsync --delete-before -a -H -v --progress --stats /home/blank/ /opt/test1
    --delete-before 在传输的过程中进行删除
    -a 归档
    -H 硬链接
    -v 输出过程信息
    --progress 显示传输过程
    --stats 给出文件的传输状态
     
    执行完后:test1文件夹更新到与blank相同
    test1和blank两个内的文件一样
     

  • 相关阅读:
    Bias in Emotion Recognition with ChatGPT
    第37节——useDeferredValue+useTransition
    AI量化与机器学习流程:从数据到模型
    Unity 向量计算、欧拉角与四元数转换、输出文本、告警、错误、修改时间、定时器、路径、
    Find My资讯|新系统苹果Find My不再显示AirTag电池电量
    LeetCode --- 1534. Count Good Triplets 解题报告
    Nginx的安装与使用入门
    批处理文件中运行指定路径下的exe文件
    浅谈Linux系统信息与资源
    RL 从敲门到入门
  • 原文地址:https://blog.csdn.net/Lachewuxian/article/details/134552421