热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

rsync+inotify目录文件实时同步备份

说明:192.168.1.2(rsync+inotify)-----------FTP192.168.1.3(rsync)---------------------backup实验目的:实时自动同步:192.168.1.2------->192.168.1.3到目录:/data

说明:

192.168.1.2 (rsync+inotify)-----------FTP

192.168.1.3 (rsync)---------------------backup

实验目的:

实时自动同步:192.168.1.2 ------->192.168.1.3到目录:/data/ftpdata ;

 

一、FTP服务器(rsync+inotify)

1、准备软件包

[root@ftp ~]# mkdir /data/ftpdata

[root@ftp ~]# wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz

[root@ftp ~]# wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

 

2、安装Rsync

[root@ftp ~]# tar -zxvf rsync-3.0.9.tar.gz

[root@ftp ~]# cd rsync-3.0.9

[root@ftp rsync-3.0.9]# ./configure --prefix=/usr/local/rsync

[root@ftp rsync-3.0.9]# make;make install

 

建立密码认证文件

[root@ftp ~]# echo "111111">/etc/rsyncd.secrets

[root@ftp ~]# less /etc/rsyncd.secrets 

111111

*其中111111可以自己设置密码,rsyncd.secrets名字也可以自己设置;

权限:要将/etc/rsyncd.secrets设置为root拥有且权限为600

[root@ftp ~]# chmod 600 /etc/rsyncd.secrets

[root@ftp ~]# ll /etc/rsyncd.secrets

-rw------- 1 root root 7 Jun9 21:24 /etc/rsyncd.secrets

 

3、安装inotify

[root@ftp ~]# tar -zxvf inotify-tools-3.14.tar.gz 

[root@ftp ~]# cd inotify-tools-3.14

[root@ftp inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify

[root@ftp inotify-tools-3.14]# make;make install

 

4、创建rsync复制脚本

此项功能主要是将ftp端的目录/data/ftpdata里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给backup/data/ftpdata里,下面是通过shell脚本实现的。

[root@ftp ~]# vim /opt/rsync.sh

#!/bin/bash

SRC=/data/ftpdata/

DST=root@192.168.1.3::ftpdata

/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format'%T %w%f' -e modify,delete,create,attrib $SRC| while 

read files

do

/usr/bin/rsync -vzrtopg --delete --password-file=/etc/rsyncd.secrets$SRC $DST> /dev/null

done

:wq

[root@ftp ~]# chmod u+x /opt/rsync.sh

 

rsync.sh脚本加入开机启动项

[root@ftp ~]# echo "/opt/rsync.sh" >> /etc/rc.local

 

防火墙开启rsync端口:873

[root@ftp ~]# vim /etc/sysconfig/iptables

添加:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT

重启:

[root@ftp ~]# /etc/init.d/iptables restart

二、备份服务器(rsync)

1、准备工作

创建备份目录:

[root@backup ~]# mkdir /data/ftpdata

 

2、准备软件包

[root@backup ~]# wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz

 

3、安装rsync(备份服务器只安装rsync

[root@backup ~]# tar -zxvf rsync-3.0.9.tar.gz 

[root@backup ~]# cd rsync-3.0.9

[root@backup rsync-3.0.9]# ./configure --prefix=/usr/local/rsync

[root@backup rsync-3.0.9]# make;make install

 

4、建立用户与密码认证文件

[root@backup ~]# echo "root:111111" > /etc/rsyncd.secrets

[root@backup ~]# less /etc/rsyncd.secrets

root:111111 

注意:

请记住,在ftp端建立的密码文件,只有密码,没有用户名;而在备份服务端backup里建立的密码文件,用户名与密码都有。

权限:要将/etc/rsyncd.secrets设置为root拥有且权限为600

[root@backup ~]#chmod 600 /etc/rsyncd.secrets

 

5、建立rsync配置文件

[root@backup ~]# vim /etc/rsyncd.conf

uid = root

gid = root

port = 873

use chroot = yes

read only = yes

hosts allow=192.168.1.0/255.255.255.0

hosts deny=*

max connections = 5

log file =/var/log/rsyncd.log

pid file =/var/run/rsyncd.pid

lock file =/var/run/rsyncd.lock

log format = %t %a %m %f%b

syslog facility = local3

timeout = 300

 

[ftpdata]

path = /data/ftpdata

list = no

read only = no

ignore errors

auth users = root

secrets file =/etc/rsyncd.secrets

:wq

 

启动rsync服务

[root@backup ~]# /usr/local/rsync/bin/rsync --daemon--cOnfig=/etc/rsyncd.conf

[root@backup ~]# ps -ef |grep rsync

 

Rsync服务加入开机启动项

[root@backup ~]# echo "/usr/local/rsync/bin/rsync --daemon --cOnfig=/etc/rsyncd.conf" >> /etc/rc.local

 

防火墙开启rsync端口:873

[root@backup ~]# vim /etc/sysconfig/iptables

添加:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT

 

重启:

[root@backup ~]# /etc/init.d/iptables restart

 

现在rsyncinotifyftp端安装完成,rsync在备份服务器backup端也安装完成!

 

重启

[root@ftp ~]# reboot

[root@backup ~]# reboot

 

三、测试验证

1、在ftp/data/ftpdata 目录上创建一个文件夹:

[root@ftp ftpdata]# mkdir zl

 

2、在backup端查看/data/ftpdata目录是否相同;

[root@backup ~]# ll /data/ftpdata/

 

四、备份与恢复

1、手动备份

192.168.1.2---------->192.168.1.3 

[root@ftp ~]# /usr/bin/rsync -vzrtopg --delete--password-file=/etc/rsyncd.secrets /data/ftpdata/ root@192.168.1.3::ftpdata

 

2、手动恢复

192.168.1.3 ---------->192.168.1.2

[root@ftp ~]# /usr/bin/rsync -vzrtopg --delete--password-file=/etc/rsyncd.secrets root@192.168.1.3::ftpdata /data/ftpdata/


推荐阅读
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 图片复制到服务器 方向变了_双服务器热备更新配置文件步骤问题及解决方法
    本文介绍了在将图片复制到服务器并进行方向变换的过程中,双服务器热备更新配置文件所出现的问题及解决方法。通过停止所有服务、更新配置、重启服务等操作,可以避免数据中断和操作不规范导致的问题。同时还提到了注意事项,如Avimet版本的差异以及配置文件和批处理文件的存放路径等。通过严格执行切换步骤,可以成功进行更新操作。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 我创建了一个SSH密钥,当我以admin身份在GitBash中运行ssh-Tgit@gitlab.com时,我得到W ... [详细]
  • Linux 服务器修改用户名
    Linux服务器修改用户名1、编辑名称vimetchostname2、保存编辑并退出wq3、重 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 基于SSL的mysql服务器的主从架构实现说明:本文选用172.16.22.1作为主服务器,172.16.22.3作为从服务器从服务器的mysql软件版 ... [详细]
  • 这篇文章给大家介绍怎么从源码启动和编译IoTSharp ,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。IoTSharp项目是 ... [详细]
author-avatar
乌龟北京飘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有