Rsync详解

官方网站Rsyncopen in new window, 参考CSDNopen in new window编程宝库open in new window

命令详解

Rsync 使用 ssh协议rsync协议进行文件传输, rsync协议 需要目标主机安装 Rsync 程序

  • Rsync基本命令

# 命令格式
rsync 选项 源路径 本地路径
rsync 选项 本地路径 远程路径
rsync 选项 远程路径 本地路径

# 本机使用 拷贝源目录
rsync -r test.txt /tmp/

# 模拟执行结果
rsync -n /tmp/abc root@192168.1.1:/tmp/

# 递归传输 同步元数据
rsync -a /tmp/abc root@192.168.1.1:/tmp/

# 传输时压缩
rsync -z /tmp/abc root@192.168.1.1:/tmp/

# 显示详细信息
rsync -v /tmp/abc root@192.168.1.1:/tmp/

# 保持相同(镜像)
rsync --delete /tmp/abc root@192.168.1.1:/tmp/

# 增量备份(以某个文件为基准)
rsync --link-dest /compare/path /source/path root@192.168.1.1:/tmp/
  • Rsync应用实例

# 同步本地目录到远程
rsync -avz /tmp/abc root@192.168.1.1:/tmp

# 同步远程目录到本地
rsync -avz root@192.168.1.1:/tmp/abc /tmp/

# 同步并且保持目录相同
rsync -avz --delete /tmp/abc root@192.168.1.1:/tmp

Lsyncd详解

Lsyncd安装

# 安装epel源
yum install epel-release -y

# 安装lsyncd
yum install lsyncd -y

Lsyncd配置

参考CSDNopen in new window吕郑江的博客open in new window

  • 配置详解

编辑配置文件
# 配置文件地址
vim /etc/lsyncd.conf
配置文件解释
# 全局配置
settings {
    # 定义日志文件
    logfile ="/var/log/lsyncd/lsyncd.log",
    # 定义状态文件
    statusFile ="/var/log/lsyncd/lsyncd.status",
    # 指定inotify监控事件 选项 modify CloseWrite or Modify
    inotifyMode = "CloseWrite",
    # 最大进程数
    maxProcesses = 7,
    # 默认不启用守护模式
    nodaemon =true,
    # 将状态文件写入的时间间隔
    statusInterval = 10,
}
# 定义同步参数
sync {
    # 模式(选择一个)
    # rsync模式同步
    default.rsync,
    # ssh同步
    default.resyncssh,
    # 本地目录同步
    default.direct,

    # 同步的源目录(监控目录)
    source = "/data",

    # 同步目标模块, 可以使用多种模式语法
    target = "root@同步目标",

    # 目标目录和源目录保持一致
    delete = true,

    # 是否同步进程启动前发生的改变
    init = true,

    # 同步间隔 默认为15秒
    delay = 15,

    # 排除文件列表
    excloudFrom = "",

    # 排除文件匹配(通配符)
    excloud = { ".*" },

    # rsync配置
    rsync = {
        # rsync命令绝对路径
        binary = "/usr/bin/rsync",

        # 递归(同步子目录内容)
        archive = true,

        # 传输过程中压缩文件数据(传输快, 消耗CPU)
        compress = true,

        # 传输信息
        verbose = true,

        # 密码文件路径
        password_file = "/etc/rsync.password"

        # 传输限速 单位KB
        _extra = {"--bwlimit=1000"}

    }
}
常用配置实例
# 全局配置
settings {
    # 定义日志文件
    logfile ="/var/log/lsyncd/lsyncd.log",
    # 定义状态文件
    statusFile = "/var/log/lsyncd/lsyncd.status",
    # 指定inotify监控事件 选项 modify CloseWrite or Modify
    inotifyMode = "CloseWrite",
    # 最大进程数
    maxProcesses = 7,
    # 将状态文件写入的时间间隔
    statusInterval = 10,
    # 定义同步参数
}
sync {
    # ssh同步
    default.rsync,
    # 同步的源目录(监控目录)
    source = "/data",

    # 同步目标模块, ssh模式
    target = "root@192.168.1.1:/tmp",
    # 目标目录和源目录保持一致
    delete = true,
    # 同步间隔 默认为15秒
    
    delay = 15,
    # rsync配置
    rsync = {
        # rsync命令绝对路径
        binary = "/usr/bin/rsync",
        # 递归(同步子目录内容)
        archive = true,
        # 传输过程中压缩文件数据(传输快, 消耗CPU)
        compress = true,
        # 传输信息
        verbose = true,
    }
}

Lsyncd命令

lsyncd 配置文件需运行, 创建进程

# 启动服务
systemctl start lsyncd

# 运行配置文件记录执行记录
lsyncd -log Exec /etc/lsyncd.conf

# 运行配置文件交互显示日志
lsyncd -nodaemon /etc/lsyncd.conf