Rsync详解
命令详解
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配置
配置详解
编辑配置文件
# 配置文件地址
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