首页 > 其他分享 >文件共享服务之实时备份(inotify+rsync)

文件共享服务之实时备份(inotify+rsync)

时间:2024-11-15 19:40:52浏览次数:1  
标签:rsync inotify 文件共享 backup nfs test 241 root

任务需求

1.对NFS服务器上的静态资源实时备份(inotify+rsync)

主机列表

# 外网地址                内网地址          主机名
192.168.122.207   172.16.1.207  web-test-209
192.168.122.231  172.16.1.231  nfs-test-231
192.168.122.241  172.16.1.241  rsync-test-241

架构图


开始实操


1.在rsync-test-241服务器上搭建rsync

1.1.安装rsync

[root@rsync-test-241 ~]# yum install rsync -y

1.2.修改配置文件/etc/rsyncd.conf

[root@rsync-test-241 ~]# vim /etc/rsyncd.conf 
[root@rsync-test-241 ~]# cat /etc/rsyncd.conf 
uid = rsync
gid = rsync
fake super = yes
use chroot = no
max connections = 200
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password

[backup-nfs]
comment = This is nfs backup!
path = /backup/

配置文件解读

配置参数 参数说明
uid = rsync 指定rsync服务运行的时候,向磁盘进行读取和写入操作的操作者
gid = rsync 指定rsync服务运行的时候,向磁盘进行读取和写入操作的操作者
use chroot = no 进行数据同步存储时,安全相关参数,默认内网进行数据同步,可以关闭
max connections = 200 定义向备份服务器进行数据存储的并发连接数
timeout = 300 定义与备份服务器建立的网络连接,在多长时间没有数据传输时,就释放连接
pid file = /var/run/rsyncd.pid 服务程序运行时,会将进程的pid信息存储到一个指定的pid文件中
lock file = /var/run/rsync.lock 定义锁文件,主要用于配合max connections 参数,当达到最大连接就禁止继续访问
log file = /var/log/rsyncd.log 定义服务的日志文件保存路径信息
[backup] 指定备份目录的模块名称信息
path = /backup 指定数据进行备份的目录信息
ignore errors 在进行数据备份传输过程过程中,忽略一些I/O产生的传输错误
read only = false 设置对备份的目录的具有读写权限,即将只读模式进行关闭
list = false 确认是否可以将服务配置的模块信息,在客户端可以查看显示
hosts allow = 172.16.1.0/24 设置备份目录允许进行网络数据备份的主机地址或网段信息,即设置白名单
hosts deny = 0.0.0.0/32 设置备份目录禁止进行网络数据备份的主机地址或网段信息,即设置黑名单
auth users = rsync_backup 指定访问备份数据目录的认证用户信息,为虚拟定义的用户,不需要进行创建
secrets file = /etc/rsync.password 设置访问备份数据目录进行认证用户的密码文件信息,会在文件中设置认证用户密码信息
[backup] 指定模块名称,便于日后维护
path=/backup 在当前模块中,Daemon使用的文件系统或目录,注意目录权限和配置文件权限一直,防止读写出问题
#exclude= 排除文件或目录,相对路径
[ftp] 还可以添加其他模块

1.3.根据配置文件里定义的信息,创建用户,文件等

创建用户

[root@rsync-test-241 ~]# useradd rsync -s /sbin/nologin -M
[root@rsync-test-241 ~]# id rsync
uid=1000(rsync) gid=1000(rsync) 组=1000(rsync)

创建目录,修改属性

[root@rsync-test-241 ~]# mkdir /backup
[root@rsync-test-241 ~]# chown -R rsync.rsync /backup/
[root@rsync-test-241 ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 6 11月 15 16:19 /backup/

创建认证文件,授权

[root@rsync-test-241 ~]# echo "rsync_backup:mima666" > /etc/rsync.password
[root@rsync-test-241 ~]# cat /etc/rsync.password 
rsync_backup:mima666
[root@rsync-test-241 ~]# chmod 600 /etc/rsync.password
[root@rsync-test-241 ~]# ll /etc/rsync.password 
-rw------- 1 root root 21 11月 15 16:22 /etc/rsync.password

1.4.启动rsync服务,开机自启

[root@rsync-test-241 ~]# systemctl start rsyncd
[root@rsync-test-241 ~]# systemctl enable rsyncd
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.

1.5.检查rsync

[root@rsync-test-241 ~]# systemctl status rsyncd
● rsyncd.service - fast remote file copy program daemon
   Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; enabled; vendor preset: disabled)
   Active: active (running) since 五 2024-11-15 16:24:12 CST; 41s ago
 Main PID: 2411 (rsync)
   CGroup: /system.slice/rsyncd.service
           └─2411 /usr/bin/rsync --daemon --no-detach

11月 15 16:24:12 rsync-test-241 systemd[1]: Started fast remote file copy program daemon.
[root@rsync-test-241 ~]# 
[root@rsync-test-241 ~]# ps -ef|grep rsync
root      2411     1  0 16:24 ?        00:00:00 /usr/bin/rsync --daemon --no-detach
root      2450  1928  0 16:26 pts/1    00:00:00 grep --color=auto rsync
[root@rsync-test-241 ~]# netstat -tnlp | grep rsync
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      2411/rsync          
tcp6       0      0 :::873                  :::*                    LISTEN      2411/rsync          
[root@rsync-test-241 ~]# 

2.在nfs-test-231服务器上运行rsync

2.1安装rsync

[root@nfs-test-231 ~]# yum install rsync -y

2.2.创建密码文件,只写密码即可

[root@nfs-test-231 ~]# echo 'mima666' > /etc/rsync.password
[root@nfs-test-231 ~]# cat /etc/rsync.password 
mima666

2.3.必须要给密码文件授权,去掉other的权限,否则rsync会报错

[root@nfs-test-231 ~]# chmod 600 /etc/rsync.password 
[root@nfs-test-231 ~]# ll /etc/rsync.password 
-rw------- 1 root root 8 11月 15 16:34 /etc/rsync.password

2.4.测试rsync数据同步是否正确

client > server 、数据推送

[root@nfs-test-231 ~]# rsync -avzP network_init.sh [email protected]::backup-nfs --password-file=/etc/rsync.password 
sending incremental file list
network_init.sh
            496 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/1)

sent 381 bytes  received 35 bytes  277.33 bytes/sec
total size is 496  speedup is 1.19
-avzP 
-a  保持文件原有属性
-v    显示传输细节情况
-z    对传输数据压缩传输
-P    显示文件传输的进度信息
也可以直接使用密码变量,进行同步

tail -1 /etc/bashrc
export RSYNC_PASSWORD=chaoge

验证rsync服务端接收到了文件

[root@rsync-test-241 ~]# cd /backup/
[root@rsync-test-241 backup]# ls
network_init.sh
[root@rsync-test-241 backup]# 

3.在nfs-test-231服务器上部署inotify

3.1.安装inotify-tools

[root@nfs-test-231 ~]# yum install inotify-tools -y

3.2.编写脚本,完成数据同步

检测共享文件夹,只要有了数据变化,立即触发rsync备份
[root@nfs-test-231 ~]# vim rsync_nginx.sh
[root@nfs-test-231 ~]# cat rsync_nginx.sh

#!/bin/bash
/usr/bin/inotifywait -mrq -e modify,delete,create,attrib,move  /nfs-web-share/  | while read line
do
    rsync -a --delete  /nfs-web-share/  [email protected]::backup-nfs --password-file=/etc/rsync.password 
    echo "`date +%F\ %T`出现事件$line" >> /var/log/rsync.log 2>&1
done
[root@nfs-test-231 ~]# 

3.3.执行脚本,放入后台运行

[root@nfs-test-231 ~]# bash rsync_nginx.sh &
[1] 13040
[root@nfs-test-231 ~]# jobs
[1]+  运行中               bash rsync_nginx.sh &
[root@nfs-test-231 ~]# 

4.验证同步情况

4.1.在web-test-207服务器上更新文件

[root@web-test-207 ~]# cd /usr/share/nginx/html/
[root@web-test-207 html]# vim index.html 
[root@web-test-207 html]# cat index.html 
<meta charset=utf8> 这是一个网页
hello world
<h1>其实我来自nfs服务端</h1>
<h2>哈哈哈,你好inotify</h2>
[root@web-test-207 html]# 

4.2.在nfs-test-231上查看同步日志

[root@nfs-test-231 ~]# tail -f /var/log/rsync.log
2024-11-15 17:28:11出现事件/nfs-web-share/ MODIFY index.html
2024-11-15 17:28:11出现事件/nfs-web-share/ MODIFY index.html
2024-11-15 17:28:12出现事件/nfs-web-share/ ATTRIB index.html

4.3.在rsync-test-241上查看是否同步

[root@rsync-test-241 backup]# pwd
/backup
[root@rsync-test-241 backup]# ll
总用量 4
-rw-r--r-- 1 rsync rsync 123 11月 15 17:28 index.html
[root@rsync-test-241 backup]# cat index.html 
<meta charset=utf8> 这是一个网页
hello world
<h1>其实我来自nfs服务端</h1>
<h2>哈哈哈,你好inotify</h2>
[root@rsync-test-241 backup]# 
如果过程里出现了失败,大部分原因是
1.防火墙未关
2.nfs配置权限不对
3.网络不通
其它情况看报错信息排查

标签:rsync,inotify,文件共享,backup,nfs,test,241,root
From: https://www.cnblogs.com/funlyp/p/18548553

相关文章

  • 文件共享服务之NFS挂载实验
    任务需求1.部署一台web服务器,提供静态网页的展示,该网站的html等静态资源远程存储在NFS服务器。2.部署NFS服务器,创建共享文件夹(提供静态文件),发布该共享目录,提供给web服务器使用。主机列表#外网地址内网地址主机名192.168.122.207172.16.1.207......
  • HarmonyOS Next移动办公的多设备文件共享:WLAN P2P与蓝牙串行通信的综合应用
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、场景描述在现代移动办公环境中,高效......
  • 在 Windows 系统中,DFS (Distributed File System) 是一种用于文件共享和管理的技术,能
    在Windows系统中,DFS(DistributedFileSystem)是一种用于文件共享和管理的技术,能够让多个服务器上的共享文件夹(共享资源)通过一个统一的命名空间来访问。DFS主要通过DFS命名空间和DFS复制这两个组件来实现。DFS相关命令和功能在Windows中,DFS相关的命令通常是通过......
  • rsync+inotify实现文件实时同步
    一、rsync简介rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具RemoteSync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。Rsync使用一个特殊的算法来识别文件的差异,并仅传输发生变化的部分,以实现高效的文件同步和备份。它还支持多种模式和选项,使其非常......
  • rsync文件同步使用说明
    常用参数-a归档模式(最常用,替代-r参数,递归传输并保持文件属性,等同于-rlptgoD)-v显示执行过程明细-z压缩模式-n模拟执行-i显示传输文件的路径-P显示文件传输进度--exclude指定排除不进行同步的文件/目录,rsync在使用排除路径的时候对于路径的解析比较特殊,它使用......
  • IDEA远程运行使用rsync异常:rsync: connection unexpectedly closed (0 bytes received
    前提:已经使用了Cygwin64且IDEA版本2023、2024均有这个问题发生这个问题可能是使用的是windows自带的C:\Windows\System32\OpenSSH\ssh.exe安装Cygwin64时,需要同时选择安装rsync和ssh。第一次安装没选也没关系,可以再次运行安装程序安装,不用删除上一次的安装。或者使用Cygwin64T......
  • 数据同步rsync
    数据同步rsyncRsync本地模式和远程模式1.安装yuminstall-yrsync2.命令语法本地模式rsync参数srcdest1.对文件同步[[email protected]]#rsync-avzP/var/log/messages/tmp/sendingincrementalfilelistmessages3,311,285100%84.50MB/s......
  • 在 Windows Server 2025 中,默认情况下,操作系统会为共享资源(如文件共享和打印共享)设置
    在WindowsServer2025中,默认情况下,操作系统会为共享资源(如文件共享和打印共享)设置一个最大并发连接数限制。这通常是出于系统性能和稳定性的考虑。在一些版本的WindowsServer中,您可能会看到类似于167772这样的默认限制,这个值通常对应于可同时连接到共享资源的用户数量......
  • 文件共享服务
    AppSrv服务文件共享创建用户主目录共享文件夹:本地目录为d:\share\users\,允许所有域用户可读可写。将该文件夹设置为所有域用户的home目录,用户登录计算机成功后,自动映射挂载到H卷。禁止用户在该共享文件中创建“*.exe,*.bat,*.sh”文件。创建manager组共享文件夹:本地目录为d......
  • 数据同步rsync
    数据同步rsyncRsync本地模式和远程模式1.安装yuminstall-yrsync2.命令语法本地模式rsync参数srcdest1.对文件同步[[email protected]]#rsync-avzP/var/log/messages/tmp/sendingincrementalfilelistmessages3,311,285100%84.50MB/s......