• scp(安全拷贝)和rsync(增量复制)


    1. scp(安全拷贝)
      又称为全量复制,每次复制都会复制所有文件。
      使用:

    scp -r 源文件用户名A@主机名1:path1 目标文件用户名B@主机名2:path2
    -r: 递归,复制目录
    执行过程:

    在主机1上,使用A用户读取path1的文件
    再使用用户B登录到主机2,在主机2的path2路径执行写入!
    要求: 用户名A@主机名1 对path1有读权限
    用户名B@主机名2 对path2有写权限

    1. rsync (远程同步)
      可以只同步变化的文件(对比文件的修改时间)!增量同步!

    使用:

    rsync -rvlt path1 目标文件用户名B@主机名2:path2
    -r: 递归,复制目录
    -v: 显示复制的过程
    -l: 同步软连接
    -t: 基于文件的修改时间进行对比,只同步修改时间不同的文件
    只能将本机的文件同步到其他机器!

    path1是个目录,目录以/结尾,只会同步目录中的内容,不会同步目录本身!
    path1是个目录,目录不以/结尾,同步目录中的内容,也会同步目录本身!

    1)一般liunx系统默认自带rsync,我们之间使用

    常见的选项:

    -a,–archive(存档) 归档模式,表示以递归的方式传输文件,并且保持文件属性,等同于加了参数-rlptgoD
    -r,–recursive 对子目录以递归模式处理
    -l,–links 表示拷贝链接文件
    -p , --perms 表示保持文件原有权限
    -t , --times 表示保持文件原有时间
    -g , --group 表示保持文件原有属用户组
    -o , --owner 表示保持文件原有属主
    -D , --devices 表示块设备文件信息
    -z , --compress 表示压缩传输
    -e,指定接收服务器端口,例如: -e ‘ssh -p 22000’

    -H 表示硬连接文件
    -A 保留ACL属性信息
    -P 显示传输进度

    –delete 删除那些目标位置有而原始位置没有的文件

    rsync -azP --delete /var/www/html/  root@192.168.1.64:/web-back
    rsync -azP -e 'ssh -p 22000' --delete /var/www/html/  root@211.149.213.241:/web-back
    
    • 1
    • 2

    使用ssh密钥实现无交互备份。做成脚本,将server01上的数据,定期备份到server02上。

    [root@server01 ~]# ssh-keygen
    
    [root@server01 ~]# ll -a /root/.ssh/
    
    [root@server01 ~]# ssh-copy-id root@192.168.1.64
    相当于你执行了:
        scp /root/.ssh/id_rsa.pub  root@192.168.1.64:/root/.ssh/authorized_keys
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2)配置rsync+inotify实现实时同步

    下载地址: https://sourceforge.net/projects/inotify-tools/files/inotify-tools/3.13/inotify-tools-3.13.tar.gz/download

    查看是否支持inotify,从kernel 2.6.13开始正式并入内核。

    [root@server01 ~]# uname -r
    3.10.0-957.5.1.el7.x86_64
    
    • 1
    • 2

    上传 inotify-tools-3.13.tar.gz

    tar -zxvf inotify-tools-3.13.tar.gz
    cd inotify-tools-3.13
    ./configure   检查安装环境
    make -j 4   #make编译,将源代码编译成二进制,可执行的文件
    make  install  # 安装
    
    • 1
    • 2
    • 3
    • 4
    • 5

    inotifywait -h

    常用参数:
    -e 用来指定要监控哪些事件。
    这些事件包括: create创建,move移动,delete删除,modify修改文件内容,attrib属性更改。
    -m 表示持续监控
    -r 表示递归整个目录
    -q 表示简化输出信息。

    在另一个终端登录,在/var/www/html目录进行相关的操作,然后,回到原来的终端查看监控变化情况。

    echo aaa > /var/www/html/a.html
    mkdir /var/www/html/test
    cp /etc/passwd /var/www/html/test/
    rm -rf /var/www/html/test/passwd
    
    • 1
    • 2
    • 3
    • 4
    1. 编写脚本 touch copy.sh
    #!/bin/bash
    inotifywait -mrq -e create,move,delete,modify /var/www/html/  | while read a b c
    do
    rsync -azP --delete /var/www/html/ root@192.168.10.64:/web-back  # 192.168.10.64 备份的服务器
    done
    
    • 1
    • 2
    • 3
    • 4
    • 5

    登录后复制

    chmod +x copy.sh
    
    • 1

    后台挂载命令

    nohup bash copy.sh &
    
    • 1

    另外启动方法 setid

  • 相关阅读:
    1010hw
    springboot手机推荐网站毕业设计源码052329
    ElasticSearch~副本~分片
    TypeScript语法快速上手
    Flink_CDC搭建及简单使用
    Go语言Web开发Echo框架搭建
    面试冲刺季,Android进阶开发知识点面试题全汇总
    写docx
    【线下沙龙】低成本高效率构建您的业务系统
    自然语言处理学习笔记(九)———— OVV Recall Rate与 IV Recall Rate
  • 原文地址:https://blog.csdn.net/baidu_38432732/article/details/125387322