实时文件备份更新功能的实现Rsync和inotify搭配

2023-05-16

 一、两者结合实时监控的执行脚本构建

# 该脚本运行于 源文件所在的服务器,也就是本机的目录要push备份到远程服务器上!!
cat rsync-inotify.sh   # 该脚本的内容如下

#!/bin/bash
#
DESTHOST=192.168.1.230                      # 请修改为备份服务器的IP地址
DESTHOSTDIR=/home/remote/backup_files/      # 请修改为备份目录
SRCDIR=/home/source_files/                  # 请修改为源文件目录

inotifywait -mrq $SRCDIR | while read DATE TIME DIR FILE;do
FILECHANGE=${DIR}${FILE}

rsync -avz --delete -e 'ssh -p 33322 -i /home/ssl-key' $SRCDIR root@${DESTHOST}:${DESTHOSTDIR} &>/dev/null && \
echo "$FILECHANGE was backed up via rsync" >/dev/null 2>&1 &
done

# 编辑保存后为其增加 x属性
chmod +x rsync-inotify.sh

二、利用systemd设置该脚本开机自动运行

mv ~/rsync-inotify.sh /etc/systemd/system/   ## 将上一步编写好的脚本移动到文件夹
vi /etc/systemd/system/rsync-inotify.service
#内容:
[Unit]
Description = remove the nohup.out file
 
[Service]
ExecStart =/bin/bash /etc/systemd/system/rsync-inotify.sh
Restart = no
Type = simple
 
[Install]
WantedBy = multi-user.target

# 编辑完成,设定该服务开机运行
systemctl enable rsync-inotify.service

三、单独用rsync实现文件周期性同步操作

 1. 先创建备份操作的脚本

vim /etc/systemd/system/rsync-back.sh
#内容:
#!/bin/bash
rsync -avz --delete -e "ssh -i /home/ssl_key -p 33333" root@192.168.1.251:/home/source_files/ /home/remote/backup_files/

 注: 如果有多个源目录,则多构建几行就可以了。  此外,这里的脚本运行于远程备份服务器,也就是从源文件服务器pull文件到备份服务器中。

2. 创建脚本的启动服务。 

vi /etc/systemd/system/rsync-back.service
#内容:
[Unit]
Description = remove the nohup.out file
 
[Service]
ExecStart =/bin/bash /etc/systemd/system/rsync-back.sh
Restart = no
Type = simple
 
[Install]
WantedBy = multi-user.target

3. 创建和运行备份脚本服务的定时任务

vi /etc/systemd/system/rsync-back.timer
#内容如下:
 
[Unit]
Description=Run a service every 120 minutes
 
[Timer]
OnBootSec=5m             # 开机5分钟后运行
OnUnitActiveSec=120m     # 每隔120分钟运行一次
Unit=rsync-back.service       # 所要启动的服务的名称
 
[Install]
WantedBy=timers.target

# 编辑好后,启动timer服务,将timer服务设定为随机启动

systemctl start rsync-back.timer
systemctl enable rsync-back.timer

注: 关于 rsync -e " ssh -p 54321 -i /home/ssl_key" ,可以参考我之前的文章

Debian11.5 最小化安装后更改主机名、安装桌面、设置默认语言、时区、静态IP、局域网DNS等_lggirls的博客-CSDN博客_debian最小化安装后安装图形界面

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实时文件备份更新功能的实现Rsync和inotify搭配 的相关文章

随机推荐