前言✍️
大家应该都遇到过,服务器失联,导致搭建的服务无法访问,网站备份没来得及导出。所以我写了这一篇博客,来解决大家的烦恼。
安装rclone
一键命令
sudo -v ; curl https://rclone.org/install.sh | sudo bash
挂载网盘
以Mega网盘为例,其他网盘可以自行谷歌。
命令行输入
rclone config
输入n
创建
输入名字 随便填即可
选择35 回车
user
填写邮箱
输入y
password
输入邮箱密码
Confirm the password:重复密码
剩下弹出来的回车即可
测试是否挂载成功
输入
rclone lsd 名:
如果有文件显示,则挂载成功。
定时备份脚本
#!/bin/bash
# ==== 可配置项 ====
# 要备份的目录(注意:末尾不要加 /)
source_dir="/你的/源目录"
# 本地备份目录
backup_dir="/你的/备份目录"
mkdir -p "$backup_dir"
# rclone 远程路径(例如 gdrive:/backup)
remote="远程名:/你的/远程目录"
# ==== 自动变量 ====
# 当前时间戳
now=$(date +"%Y-%m-%d_%H-%M-%S")
# 文件名前缀(可传入参数,否则默认 "backup")
filename_prefix=${1:-backup}
# 最终备份文件路径
backup_file="$backup_dir/${filename_prefix}_$now.zip"
# ==== 开始打包 ====
# 提取父目录和目标目录名
parent_dir=$(dirname "$source_dir")
target_dir=$(basename "$source_dir")
echo "📦 打包 $source_dir 为 $backup_file"
cd "$parent_dir" || { echo "❌ 无法进入目录 $parent_dir"; exit 1; }
zip -r "$backup_file" "$target_dir" > /dev/null
if [ $? -eq 0 ]; then
echo "✅ 压缩完成:$backup_file"
else
echo "❌ 压缩失败"
exit 1
fi
# ==== 上传到远程 ====
echo "📤 上传到远程:$remote"
rclone copy "$backup_file" "$remote" --quiet
# ==== 清理本地旧备份 ====
echo "🗑️ 清理本地备份,仅保留最近 3 个 ${filename_prefix}_*.zip..."
ls -1t "$backup_dir"/${filename_prefix}_*.zip 2>/dev/null | sed -e '1,3d' | while read old_file; do
echo "🗑️ 删除本地旧备份:$old_file"
rm -f "$old_file"
done
# ==== 清理远程旧备份 ====
echo "🗑️ 清理远程备份,仅保留最近 3 个 ${filename_prefix}_*.zip..."
rclone lsf "$remote" | grep "^${filename_prefix}_" | sort -r | awk 'NR>3' | while read file; do
echo "🗑️ 删除远程旧备份:$file"
rclone delete "$remote/$file"
done
echo "✅ 所有操作完成。"
给文件赋予可执行权限
chmod +x /备份文件路径
设置定时任务
crontab -e
每天凌晨2点执行一次
0 2 * * * /备份文件路径
效果图
结语🔚
至此搭建完成,rclone每天定时备份文件到网盘,可以自行修改cron
定时任务。
评论区