rsync实时备份到另一台服务器

414 字
2 分钟
rsync实时备份到另一台服务器

前言:#

如果需要两台服务器数据同步 可以使用此脚本实现修改文件、删除文件自动同步数据 本脚本需要密钥实现免密传文件到另一台服务器 以debian系统为例

安装#

两台服务器都要安装rsync

Terminal window
apt install rsync

需要备份的服务器安装实时监控inotify-tools

Terminal window
apt install inotify-tools

创建实时备份脚本

Terminal window
vim rsync_backup.sh

手动备份全部

Terminal window
rsync -av /备份目录 root@远程服务器ip:/存储目录

手动远程同步

Terminal window
rsync -avz --delete /备份目录 root@远程服务器ip:/存储目录

卸载实时监控inotify-tools

Terminal window
sudo apt-get autoremove --purge inotify-tools

创建实时备份脚本#

脚本见文章最下面 设置可读权限

Terminal window
chmod +x rsync_backup.sh

设置后台运行

Terminal window
vim /etc/systemd/system/rsync-backup.service

后台运行脚本见文章最下面 重新加载配置

Terminal window
sudo systemctl daemon-reload

启动后台运行

Terminal window
sudo systemctl start rsync-backup.service

申请密钥 实现免密传文件到另一台服务器#

申请密钥 一路回车即可

Terminal window
ssh-keygen -t ecdsa -b 521

导入公钥到另一台vps

Terminal window
ssh-copy-id -i ~/.ssh/id_ecdsa.pub -p 服务器端口 root@服务器IP地址

如果是导入自己的密钥 请给私钥设置可读权限

Terminal window
chmod 600 .ssh/id_ecdsa

实时备份脚本#

#!/bin/bash
# 监控目录
SOURCE_DIR="/备份目录"
# 备份到的远程服务器路径
REMOTE_DIR="root@ip:/存储目录"
# 使用 inotifywait 监控文件的变化
inotifywait -m -r -e modify,create,delete --exclude '.*\.swp|.*\.bak' "$SOURCE_DIR" |
while read path action file; do
echo "File $file in directory $path was $action. Starting rsync backup..."
# 同步文件的修改、创建、删除操作
rsync -avz --delete "$SOURCE_DIR" "$REMOTE_DIR"
done

后台运行脚本#

Terminal window
[Unit]
Description=Rsync Backup Script
[Service]
ExecStart=/root/rsync_backup.sh
Restart=always
[Install]
WantedBy=multi-user.target

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
rsync实时备份到另一台服务器
https://blog.leuxx.de/posts/6/
作者
Leu
发布于
2025-05-14
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Leu
慢慢折腾,认真记录,每一天都有新的收获
公告
欢迎来到我的博客,随便看看不用客气!
分类
标签
站点统计
文章
35
分类
10
标签
12
总字数
19,835
运行时长
0
最后活动
0 天前

文章目录