数据同步介绍

在生产环境,有时会需要两台主机的特定目录实现实时同步。比如,将NFS共享目录的数据文件,自动实时同步到备份服务器特定目录中

同步的方式

(服务运维)数据的定时同步rsync+crontab_数据同步

rsync工作方式:

  • 本地文件系统上实现同步。命令行语法格式为上述"Local"段的格式。
  • 本地主机使用远程shell和远程主机通信,例如SSH。命令行语法格式为上述"Access via remote shell"段的格式。
  • 本地主机通过网络套接字连接远程主机上的rsync daemon。命令行语法格式为上述"Access viarsync daemon"段的格式。
  • 前两者的本质是通过本地或远程shell,而第3种方式则是让远程主机上运行rsyncd服务,使其监听在一个端口上,等待客户端的连接

(服务运维)数据的定时同步rsync+crontab_rsync+crontab_02

实验环境描述

(服务运维)数据的定时同步rsync+crontab_rsync+crontab_03

实验rsync+crontab定时数据同步

实验目的:NFS的/data/www数据定期自动同步到Backup服务器,本次实验用到的是rsync的SSH工作模式

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

(服务运维)数据的定时同步rsync+crontab_数据的定时同步_04

ssh-keygen   #三次回车确认

ssh-copy-id 172.16.10.10  #输入对方Password,后续不再需要输入Password,用于自动同步铺垫

(服务运维)数据的定时同步rsync+crontab_数据的定时同步_05

crontab -e  #写入计划任务,crontab讲解 ​​https://www.runoob.com/w3cnote/linux-crontab-tasks.html​

* * * * * rsync -av 172.16.10.10:/data/www/ /data/backup &> /del/null

(服务运维)数据的定时同步rsync+crontab_数据的定时同步_06

crontab -l #查看计划信息  

(服务运维)数据的定时同步rsync+crontab_数据的定时同步_07

#切回NFS服务器再建内容观察1分钟后自动同步情况

(服务运维)数据的定时同步rsync+crontab_rsync+crontab_08

  • 修改NFS服务器的文档信息,Backup自动同步以最新为准且只保留唯一一份。
  • 删除NFS服务器的文档信息,Backup不会处理删除自己的文件
  • * * * * * rsync -av --delete 172.16.10.10:/data/www/ /data/backup&> /del/null #则会完全根据源文件变化同步,更多请查询rsync的帮助
  • crontab -R #取消计划任务