linux 数据同步,linux查看软件运行状态

如何在Linux服务器中实现数据实时同步及备份

科技时代,任何行业都离不开数据的分析以及统筹,如果掌握了最关键的数据及技术,那成功就指日可待,所以数据对于一个企业来说,就是最无形的财富,而一个企业的数据基本都有服务器保存及管理着,如何保证数据安全,实现数据同步及备份?诚恺科技小编就同大家一起来看看在Linux服务器中利用rsync配合inotify实现数据实时同步及备份的方法。

rsync:可以镜像保存整个目录树和文件系统。可以很容易做到保持原来文件的权限、时间、软硬链接等等。第一次同步时 rsync会复制全部内容,但在下一次只传输修改过的文件。

方案:起初用rsync进行数据备份是利用计划任务,定时执行一下命令实现rsync的同步,但最近开发这边修改比较频繁,看来需要实时同步备份来完善备份机制!所以需要利用inotify触发器来改善!达到一旦指定的位置有了新的变动就将其同步!

环境:

CentOS 6.4 64位

rsync-3.0.9

inotify-tools-3.14

说明:

10.10.1.6(rsync+inotify)----------网站程序(/data0/htdocs/)

10.10.1.9(rsync)------------------网站程序备份(/data0/htdocs/)

目的:

实现10.10.1.6的/data0/htdocs/目录下发生任何变动都将实时同步到10.10.1.9的/data0/htdocs/上(另,这两台都跑有keepalived+nginx,来实现出现故障自动切换的容灾,详细配置会在后面补上)

一、web服务器10.10.1.6(rsync+inotify)

1、准备软件包

2、安装Rsync

1)、1234 tar-zxvf rsync-3.0.9.tar.gz

2)、cdrsync-3.0.9

3)、./configure--prefix=/usr/local/rsync

4)、make;makeinstall

建立密码认证文件

[root@ftp~]# echo"111111">/etc/rsyncd/rsyncd.secrets建立密码认证文件

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

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

# chmod 600/etc/rsyncd/rsyncd.secrets

3、安装inotify

1)、1234 tar-zxvf inotify-tools-3.14.tar.gz

2)、cdinotify-tools-3.14

3)、./configure--prefix=/usr/local/inotify

4)、make;makeinstall

4、创建rsync复制脚本

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

[root@web~]# vim/root/shell/rsync.sh

[root@web~]# chmod u+x/root/shell/rsync.sh

[root@web~]# setsid/root/shell/rsync.sh&

#后台运行脚本,关闭shell终端继续后台运行

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

# echo"/root/shell/rsync.sh">>/etc/rc.local

防火墙开启rsync端口:873

添加:

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

重启:

#/etc/init.d/iptables restart

二、备份服务器10.10.1.9(rsync)

1、准备工作

创建备份目录:

# mkdir/data0/htdocs

2、安装rsync(备份主机只安装rsync)

1)、1234 tar-zxvf rsync-3.0.9.tar.gz

2)、cdrsync-3.0.9

3)、./configure--prefix=/usr/local/rsync

4)、make;makeinstall

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

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

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

root:111111

注意:

请记住,在10.10.1.6端建立的密码文件,只有密码,没有用户名;而在10.10.1.9里建立的密码文件,用户名与密码都有。

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

#chmod 600/etc/rsyncd/rsyncd.secrets

4、建立rsync配置文件

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

启动rsync服务

#/usr/local/rsync/bin/rsync--daemon--config=/etc/rsyncd.conf

# ps-ef|grep rsync

Rsync服务加入开机启动项

# echo"/usr/local/rsync/bin/rsync--daemon--config=/etc/rsyncd.conf">>/etc/rc.local

防火墙开启rsync端口:873

添加:

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

重启:

#/etc/init.d/iptables restart

完成,其实这个时候数据已经同步了!

测试一下:

由于/data0/htdocs/下涉及到一些公司信息,所以就以/data0/htdocs/tmp/为例

主机名可以区别是两台机器,里面的内容完全一直,连文件的属性都一样

再对里面修改一下试试,创建一个文件,然后删除user目录试试

Linux下文件实时自动同步备份

本篇文章将讲解 Linux主机之间文件实时自动同步备份的方法,通过 rsync和 inotify的组合来实现,以避免由于硬件或软件导致的 Linux系统故障带来的损失。

首先,rsync是 Linux/Unix下的一个远程数据同步工具,用于快速同步多台主机间的文件和目录。rsync比 scp(复制、粘贴,文件存在则覆盖)具有更高的执行性能,因为它在文件不同才进行更新,同时保留文件夹、文件的权限信息。然而,rsync在同步大量文件时,需要扫描所有文件进行比对,耗时较长,且不能实时监测同步数据,可能导致数据不一致的问题。因此,使用 rsync+inotify实现实时同步备份。

inotify是 Linux内核中的文件系统事件监控机制,通过在2.6.13版本后加入,可以监测文件系统中的添加、删除、修改、移动等事件。在部署中,首先检查系统内核是否支持 inotify,通常,若存在 inotify、inotify-tools和 inotify_line等文件,表示系统默认支持。

整体架构涉及两个 Linux服务器节点,node1为源服务器节点(需要同步数据的节点),部署 rsync+inotify;node2为同步节点(接收同步数据的节点),只需部署 rsync。

在同步节点(node2)部署 rsync,步骤包括安装、配置 rsync,创建密码文件 rsync.password(内容为用户:密码),并给文件设置权限。启动 rsync守护进程,可加入系统自启动文件,开放873端口。

源服务器节点(node1)部署 rsync和 inotify。安装 rsync,配置 rsync,创建密码文件 rsync.password,并设置权限。启动 rsync守护进程,加入系统自启动文件,开放873端口。手动测试同步,创建文件夹 test,使用命令进行同步测试,查看同步结果。

部署 inotify,下载 inotify-tools,创建用于 rsync同步的 shell脚本,实现文件或文件夹变动时的实时同步。在需要监控的目录创建脚本,添加、修改、删除文件或文件夹时,inotify可监控变动并通过 rsync进行同步。

实时同步备份验证,通过在 node1中添加、删除、修改文件或文件夹,观察 node2中是否进行实时同步备份。如果在 node2中查看 backup129文件夹,可以看到同步结果。

在部署过程中遇到的问题及其解决方法包括:手动同步测试时的目录不存在或无权限错误,解决方法为创建相应目录;rsync启动失败的 pid文件已存在问题,删除 pid文件即可;inotifyrsync.sh shell脚本运行错误,是因为路径不对,修改为正确的路径即可。

Linux系统实时数据同步inotify+rsync

一、inotify简介

inotify是 Linux内核的一个功能,用于监控文件系统的变动,包括删除、读、写和卸载等操作。内核版本需大于2.6.13。监控到事件发生,会默认在标准输出打印事件信息。通过配合用户空间工具使用,可以触发同步数据等操作。

二、inotify软件介绍

inotify包括 inotify-tools、sersync、lrsyncd等实现。以 inotify-tools为例,inotifywait用于实时同步目录监控,inotifywatch收集文件系统事件统计。通常使用 inotifywait即可。安装 inotify-tools。

三、inotify软件安装和使用

确认系统支持 inotify功能。内核参数说明,如 max_queued_events控制事件队列最大长度。安装 inotify-tools,通过文档和命令行了解软件包内容和使用方法。

四、inotifywait命令常见选项说明

inotifywait命令选项包括-m、-d、-r、-q、--timefmt、--format、-e、--exclude、--excludei、-o、-s等。这些选项控制监控、事件处理、文件输出等。理解选项以实现特定监控需求。

五、rsync服务安装配置

1、检查系统是否已安装 rsync。如未安装,请安装。

2、查看 rsync配置文件路径,通常在/etc/rsyncd.conf。

3、配置文件内容说明,包括服务运行用户、最大并发连接数、日志文件、服务端口等。

六、在客户端编写脚本实现inotify+rsync实时同步

实验环境为 CentOS6客户端和 CentOS7服务器。监控目录为/root/test/,通过 rsync实现实时同步。编写脚本,定义监控目录和 rsync地址,使用 inotifywait指定监控资源和事件,rsync推送变化的文件到服务器,将事件信息记录到日志文件。

测试脚本效果,验证实时同步功能。在客户端操作后,观察服务器上文件变化。

总结:inotify+rsync实现了实时数据同步,监控事件由脚本指定,后台运行以持续监控。通过内核参数和 rsync配置,可以灵活调整同步策略。

阅读剩余
THE END