数据同步介绍
在生产环境,有时会需要两台主机的特定目录实现实时同步。比如,将NFS共享目录的数据文件,自动实时同步到备份服务器特定目录中
同步的方式
实现实时同步的方法
- notify + rsync 方式实现数据同步
- sersync :前金山公司周洋(花椒直播)在 inotify 软件基础上进行开发的功能更加强大
工作原理:
- 要利用监控服务(inotify),监控同步数据服务器目录中信息的变化
- 发现目录中数据产生变化,就利用rsync服务推送到备份服务器上
inotify
异步的文件系统事件监控机制,利用事件驱动机制,而无须通过诸如cron等的轮询机制来获取事件,linux内核从2.6.13起支持 inotify,通过inotify可以监控文件系统中添加、删除,修改、移动等各种事件
实验环境描述
实验rsync+crontab定时数据同步
实验目的:NFS的/data/www数据定期自动同步到Backup服务器
NFS服务器
mkdir -pv /data/www
cd /data/www
touch f1.txt
touch f2.txt
yum install rsync -y
Backup服务器
mkdir -pv /data/backup
yum install rsync -y
sync -av 172.16.10.10:/data/www/ /data/backup &> /del/null #尝试手动同步一次,需要输入账户Password
ssh-keygen #三次回车确认
ssh-copy-id 172.16.10.10 #输入对方Password,后续不再需要输入Password,用于自动同步铺垫
crontab -e #写入计划任务,crontab讲解https://www.runoob.com/w3cnote/linux-crontab-tasks.html
* * * * * rsync -av 172.16.10.10:/data/www/ /data/backup &> /del/null
crontab -l #查看计划信息
#切回NFS服务器再建内容观察1分钟后自动同步情况
- 修改NFS服务器的文档信息,Backup自动同步以最新为准且只保留唯一一份。
- 删除NFS服务器的文档信息,Backup不会处理删除自己的文件
- * * * * * rsync -av --delete 172.16.10.10:/data/www/ /data/backup&> /del/null #则会完全根据源文件变化同步,更多请查询rsync的帮助
- crontab -R #取消计划任务