用 rclone 实现 Linux 服务器全盘备份方案
用 rclone 把服务器全盘 tar 打包后同步到远程备份机的完整方案:安装 → 配置 SSH 免密 → 备份/恢复/测试 → Node 脚本自动化 → 定时执行。
涉及的 IP、域名、账号、密码均以占位符
<...>表示,使用时替换为自己的。
一、下载与安装
yum install unzip -y
sudo -v ; curl https://rclone.org/install.sh | sudo bash
二、配置 SSH 免密(备份机 → 存储机)
# 生成专用 key
ssh-keygen -q -t rsa -b 4096 -C "rclone key" -N "" -f ~/.ssh/rclone
cd ~/.ssh/
cat rclone* > rclone-merged
# 把公钥复制到存储机
ssh-copy-id -p <端口> -i ~/.ssh/rclone.pub <用户>@<存储机域名>
ssh-copy-id会把公钥写入远程主机的~/.ssh/authorized_keys,并设置好相关目录权限。
三、测试
rclone copy /test <remote名>:/<远程路径>
四、备份(tar 打包 + rclone sync)
cd /opt/backup && \
tar -cvzf vm100-$(date +%d.%m.%Y).tar.gz --directory=/ \
--exclude=lost+found --exclude=dev/* --exclude=proc/* --exclude=run/* \
--exclude=sys/* --exclude=tmp/* --exclude=mnt/* --exclude=media/* --exclude=opt/backup/* \
. --warning=no-file-changed && \
/usr/bin/rclone sync -P --update --verbose --transfers 30 \
--log-file=/var/log/upload.log "/opt/backup" "<remote名>:/<远程备份目录>/"
五、恢复
rclone copy -P <remote名>:/<远程备份目录>/vm100-26.10.2023.tar.gz /
cd /
tar zxvf /vm100-26.10.2023.tar.gz -C /
六、Node 脚本自动化(tar + ssh2-sftp-client 上传)
核心思路:用 Node 脚本打包 tar,再通过 ssh2-sftp-client 上传到远程,上传后删除本地包,并用 log4js 按天记录日志。配置集中在 args 对象(IP/域名/账号/密码/路径用占位符):
// npm install -d ssh2-sftp-client moment log4js
const args = {
bn: '<备份名>', // backupName
bp: 'opt/backup/', // backupPath
bd: '<备份目录名>', // backupDirName
bi: '<服务器IP>', // backupIp
sip: '<存储机域名>', // serviceIp
sport: '<端口>', // servicePort
suser: '<用户>', // serviceUser
spass: '<密码>', // servicePassword
spath: '/<存储机备份路径>/', // servicePath
};
// 打包:tar 排除 dev/proc/sys/tmp 等,--warning=no-file-changed
// 上传:sftp.connect(config) → sftp.fastPut(local, remote) → 删除本地包
// 日志:log4js dateFile 按天切割
七、定时执行(crontab)
crontab -e
# 每周一凌晨 3 点执行 node 备份脚本
0 3 * * 1 /usr/bin/node /path/to/your-node-script.js
chmod +x /path/to/your-node-script.js
原文链接:https://www.ssssmy.com/notes/yong-rclone-shi-xian-linux-fu-wu-qi-quan-pan-bei-fen-fang-an