最近一直在折腾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的删除命令依旧会被直接永久删除,防误删方法继续摸索中……
-
« 上一篇:
DELL R210 II 入坑NAS及踩坑大全