Ubuntu18.0.4 实现双机热备(rsync+inotify)。实时同步文件

Ubuntu18.0.4 实现双机热备(rsync+inotify)。实时同步文件

Ubuntu 18.0.4客户端(数据源端)192.168.142.161
Ubuntu 18.0.4服务端(数据备份端)192.168.142.162

作用:将主服务器的文件,备份/复制到 备份服务器。实验验证可以复制,但是仍要加入定时任务

一、服务端(数据备份端) [192.168.142.162]配置
1、安装rsync (Ubuntu18.0.4本身也自带)

#sudo apt-get install rsync

2、修改 /etc/default/rsync

#sudo vim /etc/default/rsync

可以看到对于服务的默认配置,修改以下配置
RSYNC_ENABLE=true
RSYNC_CONFIG_FILE = ‘/etc/rsyncd.conf’ (或者不加)

在这里插入图片描述

3.建立同步时的密码文件rsyncd.secrets,并设置为600权限(必须),在里面放用户名和密 码
复制下面语句在shell命令行执行:

# cat > /etc/rsyncd.secrets << EOF
/etc/rsyncd.secrets
tim:chenzelin
EOF

可以看到,服务器的配置是这样的
在这里插入图片描述

#chmod  -R 600  /etc/rsyncd.secrets
#注意文件的权限,必须是600,或者755和777

4.修改配置文件/etc/rsyncd.conf
在这里插入图片描述
在这里插入图片描述

注意:这里定义了两个模块。可以定义多个模块[backup]还有[www]。
作用:可以从不同的服务器同步文件过来。或者一个服务器同步多个文件目录

# GLOBAL OPTIONS                   #全局配置段
use chroot =yes
#是否chroot
strict modes =yes
#严格模式
#严格模式
lock file =/var/lock/rsyncd
#程序锁文件存放位置
pid file =/var/run/rsyncd.pid
#pid文件位置
log file =/var/log/rsyncd.log
#日志文件位置

#设置rsync服务端文件为读写权限
read only = no
list =no
#默认的rsync端口
port=873
#默认为true,修改为no或false,增加对目录文件软连接的备份
use chroot = no
#最大连接数
max connections = 200
#设置超时时间
timeout = 600
uid =root
gid =root
#虚拟用户名(非linux用户),同步登录用
#执行数据同步的用户名,需要后面手动设置。可以设置多个,用英文状态下逗号隔开
auth users =tim
secrets file =/etc/rsyncd.secrets
hosts allow =192.168.142.161,192.168.142.166
#白名单
#hosts deny =* #黑名单
ignore errors =yes
#忽略I/O错误
ignore nonreadable =yes
#忽略没有访问文件权限的用户
transfer logging =no
#使用ftp格式独立记录日志
# log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes. #日志格式
# MODULE OPTIONS
#局部配置段
#模块名称
[backup]
path =/data/nginx/
#模块名称描述
comment = web backup location
#自定义名称 
[www]
#rsync目标服务端数据目录路径,即同步到目标目录后的存放路径
path = /home/dev/compose
#模块名称描述
comment = web backup location
#refuse options =checksum dry -run
#客户端不能使用的命令
dont compress =*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
#不进行压缩传输的文件

5.启动服务

# /etc/init.d/rsync restart
# /etc/init.d/rsync status

二、客户端(数据源端) [192.168.142.161]配置
1.安装rsync

# apt-get install rsync

2.修改 /etc/default/rsync

# vim /etc/default/rsync

3.记得开放端口873

# ufw allow 873

可以看到对于服务的默认配置,修改以下配置
RSYNC_ENABLE=true

4.建立密码文件rsyncd.secrets,并设置为600权限(必须),在里面只放密码
复制下面语句在shell命令行执行:

# cat > /etc/rsyncd.secrets << EOF
chenzelin
EOF

可以看到备份服务器的/etc/rsyncd.secrets文件是这样的

在这里插入图片描述

设置权限(必须要这样设定)

# chmod 600 /etc/rsyncd.secrets

5.验证主从连接状态(在客户端(数据源端) [192.168.142.161]上运行)
#验证连接

# rsync -vzrtopg --progress --delete tim@192.168.142.162::backup --password-file=/etc/rsyncd.secrets

出现以下提示表示成功了
在这里插入图片描述

6.测试拉取的同步效果 (从客户端(数据源端) [192.168.142.161]服务端(数据备份端) [192.168.142.162]
#验证复制,从主服务器配置的文件目录,复制到备份服务器的/data/nginx/目录

# rsync -avzPt --password-file=/etc/rsyncd.secrets  tim@192.168.142.162::backup  /data/nginx

出现以下提示,表示复制成功
在这里插入图片描述
然后,rsync的运行日志,放在 /var/log/rsyncd.log 。主备服务器都是一样的
在这里插入图片描述

三、安装inotify-toos同步服务
注意:该实验的inotify是备份服务器的文件同步到主服务器的
Client是备份服务器,server是主服务器

# cd /home/file
# wget http://oxnuioltn.bkt.clouddn.com/inotify-tools-3.14.tar.gz #如果服务器无法连网可自行用工具下载此压缩包后上传到服务器
# tar -zxvf inotify-tools-3.14.tar.gz
# cd inotify-tools-3.14
# ./configure --prefix=/usr/local/inotify-tools
# make && make install
# cd /usr/local/inotify-tools/bin
# ln -sf /usr/local/inotify-tools/bin/inotifywait /usr/bin/  #做个软链方便系统调用命令

编写同步脚本/home/file/inotify.sh

# vim /home/file/inotify.sh

在这里插入图片描述

#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,move,delete /data/nginx"
RSYNC_CMD="rsync -av  --delete /data/nginx/ tim@192.168.142.162::backup --password-file=/etc/rsyncd.secrets"
 
$INOTIFY_CMD | while read file
do
$RSYNC_CMD
echo " ${file} was rsynced"
done

注意:一个文件目录/一个模块。要写一条rsync - av ……

1、在客户端服务器中启动此脚本并输出日志同时保持后台运行

# /home/file/inotify.sh & > /home/file/inotify.log &

2、另外因为inotify只在启动时会监控目录,他没有启动期间的文件发生更改,他是不知道的,
或者采取不中断的在后台运行inotify.sh:nohup ./ inotify.sh &
(inotify.sh的打印信息会输出到同级目录的nohup.out中)
使用jobs可看到inotify.sh处于running状态
使用ps -ef |grep inotify.sh可查看到正在运行的inotify.sh脚本进程
退出当前shell终端,再重新打开,使用jobs看不到正在运行的inotify.sh,但使用ps -ef可以看到

查看进程

# jobs -l

杀死进程

kill -9  进程id

3、关于后台自启动这里不描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值