目 录CONTENT

文章目录

🌟[教程]利用rclone每天定时备份文件到网盘

Leu
Leu
2025-06-26 / 0 评论 / 1 点赞 / 28 阅读 / 0 字

前言✍️

大家应该都遇到过,服务器失联,导致搭建的服务无法访问,网站备份没来得及导出。所以我写了这一篇博客,来解决大家的烦恼。

安装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"

# 时间戳
now=$(date +"%Y-%m-%d_%H-%M-%S")

# 文件名前缀,支持自定义参数
filename_prefix=${1:-文件名}

# 备份文件路径
backup_file="$backup_dir/${filename_prefix}_$now.zip"

# rclone 远程路径
remote="名:/目录"

# ==== 开始备份 ====

# 提取上一级目录路径和最后一级目录名
parent_dir=$(dirname "$source_dir")
target_dir=$(basename "$source_dir")

echo "📦 打包 $source_dir 为 $backup_file (仅保留最后一级目录 $target_dir)"

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 个..."

ls -1t "$backup_dir"/*.zip 2>/dev/null | sed -e '1,3d' | while read old_file; do
    echo "🗑️ 删除本地旧备份:$old_file"
    rm -f "$old_file"
done

# ==== 清理远程旧备份(保留最近3条) ====

echo "🗑️ 清理远程备份,仅保留最近 3 个..."

# 获取按文件名排序的所有备份文件(倒序)
rclone lsf "$remote" | grep "^${filename_prefix}_" | sort -r > /tmp/remote_backups.txt

line_num=0
while read file; do
    line_num=$((line_num + 1))
    if [ $line_num -gt 3 ]; then
        echo "🗑️ 删除旧备份:$file"
        rclone delete "$remote/$file"
    fi
done < /tmp/remote_backups.txt

rm -f /tmp/remote_backups.txt

echo "✅ 所有操作完成。"

给文件赋予可执行权限

chmod +x /备份文件路径

设置定时任务

crontab -e

每天凌晨2点执行一次

0 2 * * * /备份文件路径

效果图

结语🔚

至此搭建完成,rclone每天定时备份文件到网盘,可以自行修改cron定时任务。

1

评论区