一、两者结合实时监控的执行脚本构建
# 该脚本运行于 源文件所在的服务器,也就是本机的目录要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最小化安装后安装图形界面