文:高效人生手册
今天有时间,我们来探讨在linux下,如何进行文件的同步和备份。
但凡做过系统运维的人都有体会,数据备份何其重要,关键时刻救人一命。而,找到一款合适的工具,更是一件势在必行的先头工作。
对于那些管理和Linux服务器的人来说,这条路早晚要走一遍。
之前使用Rsync工具进行数据备份,它的安装和配置文档稍后整理。
数据备份的原理:
就是在源和目标机器上都安装rsync软件,配置相关信息,启用服务,定时执行即可。
其中定时执行部分需要在cron中配置任务。lsyncd不用配置cron任务。
这段时间有机会了解到lsyncd,发现这个工具的功能完全覆盖之前的rsyncd,除此之外,还有一个亮点功能,实时监控源目录的文件变化,一旦文件有变化就能够进行同步,支持本地,远程同步的方式。
下面,让我们来简单的介绍一下如何使用Lsyncd这个工具吧。
一、首先是安装
在centos上命令很方便,使用yum install lsyncd即可。
如果报错等,可能是需要安装依赖包,如果不能自动解决就手动执行命令:yum install lua lua-devel
ubuntu的话同样操作,命令稍有不同而已。
二、进行功能配置
软件安装完成之后并没有提供配置文件,可以在usr/share/doc/lsyncd/examples目录下找到可以参考的一些例子。
下面,我们来创建配置文件:
vi /etc/lsyncd.conf
settings
说明一下:
- default.rsyncssh方式,启用的是ssh方式远程进行文件的传输。
- host后面跟的是目标机器的IP地址,记住前面一定要使用user,特别是ubuntu等机器默认不是root用户的,一定要注明。否则会报错:Temporary or permanent failure on startup nsist" is not set
- ssh端口,使用默认的话可以去掉。但是特殊端口则需要写明。
- 支持多个sync,上面代码中的第二个sync就是本地备份。
三、配置ssh的免密码登录并启用服务。
#
下面用centos来连接ubuntu的操作过程如下。
在centos上生成key文件
ssh-keygen
提示输入文件名称,比如id_rsa
ssh-copy-id -i /刚刚保存的证书目录/id_rsa 你的登录名@服务器地址
提示目标机器的密码
最后测试一下登录
ssh 你的登录名@服务器地址 -p 端口号 -i ~/证书目录/id_rsa
每一步根据提示进行保存即可,记住user不要出错。最后的ssh是用来测试登录的。如果前面两个步骤完成的话,那么第三步是可以直接登录系统的。
然后,我们来启用服务或者重启服务。
service lsyncd start /restart
至此系统配置完毕,在日志中可以看到文件同步的记录,在目标机器上的相应目录下也可以看到同步过来的文件。
四、其他提示
查看log及状态的话可以使用
tail /var/log/lsyncd/lsyncd.log 或者status文件
备注一下,lsyncd使用的是inotify触发机制,监控的文件数默认是8192,修改的话可以在/etc/sysctl.conf中增加一行。
fs.inotify.max_user_watches = 1048576
最后用sysctl -p生效即可。
好了,至此我们已经完成了配置。
从中可以看出来,Lsyncd这个工具也是非常简单的。当然更为深入的应用我们有机会再探讨,在此模式下已经能够解决90%以上的数据备份问题。
附上几个小工具。
查看当前目录下所有文件的个数,用于统计源和目标的备份情况,特别有效。
ls -lR | grep "^-" | wc -l
查看当前目录大小。
du -sh
du -sh * 可以查看每个目录的大小
好了,用上面的两条命令就可以比对源目录,目标目录,文件个数和大小的区别,以确认备份的情况。