同步备份S 7 安现文件实时装 Lsyncd 实

lsyncd 是基于 inotify + rsync 的开源同步软件,支持增量同步,之前也讲到过通过 Rsync 同步方法,可参考:使用 Rsync 自动实现网站增量备份,而本文所谈到的 lsyncd 与 Resilio Sync 相比优势是更加安全、占用资源更低,多种参数自定义配置更加方便。劣势是配置要比 Resilio Sync 麻烦一点,如果多台服务器的情况下速度可能不及 Resilio Sync,因为 Resilio Sync 使用了 P2P 分享。

 

CentOS 7 安装 Lsyncd 实现文件实时同步备份

CentOS 7 安装 Lsyncd 实现文件实时同步备份

 

注意:本教程在 CentOS 7 系统测试,如果是 CentOS 6 系统可能部分地方略有不同,但流程和步骤都一样。

准备

有两台 CentOS 7 服务器,其中 A:192.168.1.100 文件需要实时同步到 B:192.168.1.200

安装rsync

Lsyncd 官方帮助手册:
项目地址:

lsyncd 基于 rsync,且要求 rsync >= 3.1,可输入 rsync -v 查看当前版本,如果不符合要求,按照以下方法升级 rsync 版本,两台服务器 A/B 均要安装 rsync

升级步骤

#查看当前rsync版本rsync -v#如果版本太低,直接卸载yum -y remove rsync#下载rsync源码wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz#解压tar -zxvf rsync-3.1.2.tar.gz#进入目录cd rsync-3.1.2#编译安装./configuremake install#查看是否升级成功rsync -v

设置密钥登录

如果想要将 A 的数据同步到 BA 必须拥有免密码登录 B 的权限,可以设置密钥登录来完成。只需要两条命令即可,下面的命令在 A 服务器执行:

#生成密钥文件ssh-keygen -t rsa#将公钥拷贝到Bssh-copy-id username@remote-server#测试ssh username@remote-server

username 为 B 服务器用户名,remote-server 为 B 服务器 IP 地址,如果服务器不是使用的 22 作为 SSH 端口,需要 -p 参数指定端口号。更多说明可参考:SSH 无密码登录:只需两个简单步骤 (Linux)。

安装epel仓库

CentOS 7 内置的源并没有包括 Lsyncd,可以自行编译安装 Lsyncd,不过更简单的办法是先安装 epel 源,就可以直接 yum 安装了,以下命令再 A 服务器执行。

yum -y install epel-release

安装lsyncd并配置

如果已经安装了 epel 仓库,直接输入下面的命令安装 lsyncd 即可,一下命令在 A 服务器执行。

#安装lsyncdyum -y install lsyncd#查看lsyncd版本lsyncd --version

安装完成后配置文件位于 /etc/lsyncd.conf,会看到如下的内容,其中 -- 是注释符。

------ User configuration file for lsyncd.---- Simple example for default rsync, but executing moves through on the target.---- For more examples, see /usr/share/doc/lsyncd*/examples/--sync{ default.rsyncssh, source="/var/www/html", host="localhost", targetdir="/tmp/htmlcopy/"}

vi /etc/lsyncd.conf 修改配置文件,注释或删除掉默认的最后一行,然后添加自己的配置。

settings {    logfile    = "/tmp/lsyncd.log",   statusFile = "/tmp/lsyncd.status",   insist = true,   statusInterval = 10}sync {    default.rsyncssh,   source="/home/test1",   host="192.168.1.200",   targetdir="/home/test2",   rsync = {      archive = true,     compress = false,     whole_file = false   },   ssh = {      port = 22   }}

继续输入命令 lsyncd -nodaemon /etc/lsyncd.conf 运行查看下是否有报错,如果有报错根据报错情况检查修改,如果没有报错直接退出后输入命令:systemctl start lsyncd 启动 lsyncd 即可。

部分参数说明

settings 为全局配置,部分参数如下:

logfile:日志文件路径statusFile:进程路径insist:继续运行,即使有失败的目标。statusInterval:多少秒写入文件,默认是10s

sync 为同步配置,部分参数如下:

source:本地文件目录host:远程服务器地址targetdir:远程目标目录port:目前主机SSH端口号,默认为22

相关命令

#启动systemctl start lsyncd#停止systemctl stop lsyncd#重启systemctl restart lsyncd#设置开机自动启动systemctl enable lsyncd
上一篇:芹菜配什么菜最好吃 3种做法 爽脆可口超下饭 家人都爱吃
下一篇:小龙虾的头部是“虾黄”还是“虾屎”?很多人还不懂,别再乱吃了