Lsyncd配置从入门到骚操作

天锦 发表于 码农也得有格调 分类,标签:

最近一直在折腾DELL R210 II这款服务器,准备配置好之后放老家做数据异地备份以及虚拟机应用,学校这台XC-603的小NAS让它做回单一的文件存储功能,不再在上面跑虚拟机,毕竟性能感人,真卡!总体规划为学校这边的个人文件通过sync同步到家里面,参考了多个同步工具,发现lsyncd对大量的小文件的同步有优化,并且是实时同步的,决定选用lsyncd这个工具进行同步。

开始之前先确定一下我的网络环境,要实现把主服务器上的文件同步到备份服务器上去,主服务器主机名master,IP:10.10.10.2;备份服务器主机名backup,IP:10.10.10.3。数据流方向为:

主服务器机>>>备份数据流>>>备份服务器

全程会在两个服务器之间切换,某在文中的命令行中注明了主机名,请注意区分。

入门--安装lsyncd

很简单,两行命令

[root@master ~]# yum install epel-release -y
[root@master ~]# yum install lsyncd -y

安装完成之后会在/etc/目录下面多出来一个lsyncd.conf文件

[root@mastrt ~]# vim /etc/lsyncd.conf

修改source和targetdir为你对应的目录

----
-- 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="/nfs/", host="localhost", targetdir="/home/nfs/file"}

以上内容就将其配置为把/nfs中的文件同步到/home/nfs/file文件中(本地同步),使用nodaemon模式启动lsyncd,在source目录下面新建一个文件看是否同步到了targetdir下面。

[root@master ~]# lsyncd -nodaemon /etc/lsyncd.conf

如果本地同步没问题后,就可以进行下一步测试,远程同步。

进阶--远程同步

在主备两台机器上都创建backup账户并设密码

主服务器

[root@master ~]# useradd backup && passwd backup

备份服务器

[root@backup ~]# useradd backup && passwd backup

要实现远程同步的前提是要开启ssh免密码登陆,编辑sshd_config

[root@master ~]# vim /etc/ssh/sshd_config

删除PubkeyAuthentication和RSAAuthentication前面的#

PubkeyAuthentication yes
RSAAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile      .ssh/authorized_keys

重启sshd

[root@master ~]# service sshd restart

同样的,备份服务器上面也要对sshd做同样的设置

[root@backup ~]# vim /etc/ssh/sshd_config
[root@backup ~]# service sshd restart

在主服务器中生成backup账户的rsa公钥及id,并将公钥上传至备份服务器

[root@master ~]# su backup
[backup@master ~]$ ssh-keygen -t rsa

一路回车即可,生成完后将公钥上传至备份服务器

[backup@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub backup@backup

期间会要求你输入backup@backup的密码,当提示

Now try logging into the machine, with:   "ssh 'backup@backup'"
and check to make sure that only the key(s) you wanted were added.

就可以使用

[backup@master ~]$ ssh backup@backup

尝试无密码登陆至备份服务器,当可以通过无密码登陆到备份服务器后,前往/etc/lsyncd.conf修改配置实现远程同步

[root@master ~]# vim /etc/lsyncd.conf

修改host参数即可

----
-- 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="/nfs/", host="backup@backup", targetdir="/home/nfs/file"}

修改完成后用

[backup@master ~]# lsyncd -nodaemon /etc/lsyncd.conf

测试远程同步是否成功,至此,进阶段--远程同步完成。

骚操作--防误删

基本思路是把rm命令改为mv,所有通过lsyncd删除的文件,在backup上面移动到/trash目录下面,实现主服务器进行删除操作后,文件mv到备份服务器的/trash目录里面。

Trash-cli 提供一套命令行下的回收站工具。在 Gnome 环境下,这个命令行下的回收站和 Gnome 回收站是统一的,无论是在命令行下还是在图形环境下,删除的文件都会进入这个回收站。

实践证明Trash-cli并没有什么卵用,通过sync的删除命令依旧会被直接永久删除,防误删方法继续摸索中……

0 篇评论

发表我的评论