📂 一键脚本 FTP/SFTP 自动备份 & 管理工具完整教程(多账号 + 定时 + 远程浏览/下载/删除)

📂 一键脚本 FTP/SFTP 自动备份 & 管理工具完整教程(多账号 + 定时 + 远程浏览/下载/删除)

__2025年12月4日 __3条评论 __331次阅读 __0人点赞 __Tao_Qi

前言

在服务器上,最怕的就是:

  • 服务器崩了
  • 硬盘挂了
  • 网站文件没备份
  • 想恢复,发现啥都没有了……
  • 宝塔等备份莫名没备份上全备份自己服务器上,硬盘爆了

为了解决「自己文件自己掌控 」的问题,我们写了一个纯 Bash 的 FTP/SFTP 自动备份与管理脚本 ,支持:

  • 多 FTP / FTPS / SFTP 账号
  • 多备份任务
  • 定时自动备份
  • 手动立即执行备份
  • 浏览远程目录
  • 下载远程文件/目录
  • 删除远程文件/目录
  • 一键卸载(清理配置 crontab 脚本本体)
    • *

📌 功能总览

功能说明
多 FTP / FTPS / SFTP 账号支持三协议,适配各种主机/VPS
多备份任务每个账号可独立配置多个任务
定时备份支持每天固定时间、每隔 N 分钟备份
即时执行新建任务可立即执行一次
远程浏览直接查看 FTP/SFTP 远程目录结构
远程下载下载远程文件或目录
远程删除删除文件/目录,带确认提示
自动保存脚本支持 bash <(curl ...) 自动落地脚本
一键卸载清除配置/任务/脚本,干净退出

兼容主流 Linux:Debian、Ubuntu、CentOS、AlmaLinux、Rocky、openSUSE、Arch 等。

    • *

🔐 三协议支持(新增完整说明)

脚本多账号完全支持:

1️⃣ FTP(传统)

用于一般虚拟主机、廉价空间等。

2️⃣ FTPS(FTP over SSL/TLS)

适合需要传输加密的网站空间:

  • 自动开启 SSL 强制加密
  • 自动保护数据通道
  • 自动 TLS AUTH
  • 登录方式与 FTP 一样,只是连接加密

3️⃣ SFTP(基于 SSH)

适合 VPS / 服务器 / OpenWrt / NAS:

  • 自动 SSH 连接
  • 自动跳过 host key 确认
  • 端口默认 22,可自定义
  • 不依赖 FTP 服务,安全性更高
✔ 无论 FTP/FTPS/SFTP,浏览/下载/上传/删除/备份逻辑完全一致。
    • *

⚡ 快速安装

[code]

bash <(curl -L https://raw.githubusercontent.com/hiapb/ftp/main/back.sh)

[/code]

脚本会自动:

  • 检查依赖(lftp、crontab)
  • 如使用 <(curl ...),自动保存到 /root/back.sh
  • 自动赋予执行权限

后续进入主菜单:
[code]

bash /root/back.sh

[/code]

    • *

🧭 主菜单功能说明

启动后界面如下:
[code]

=======================================
🌐 FTP 备份工具(多账号版)
=======================================

🔐 FTP 账号:已配置 X 个

1) 📂 管理 FTP/SFTP 账号
2) ➕ 新建备份任务
3) 📋 查看/立即执行备份任务
4) 🗑 删除备份任务
5) 🧹 卸载
0) ❎ 退出

[/code]

说明:

  • 1)账号管理 :新增/查看/删除账号 & 远程操作
  • 2)新建备份任务 :设置本地路径 → 远程目录 → 定时方式
  • 3)查看/执行任务 :可手动执行其中任意任务
  • 4)删除任务 :从 crontab 移除
  • 5)卸载 :删除配置、任务、脚本本体
  • 0)退出
    • *

🔐 FTP / FTPS / SFTP 账号管理

进入:
[code]

1) 📂 管理 FTP/SFTP 账号

[/code]

菜单:
[code]

1) ➕ 新增账号
2) 📋 查看账号列表
3) 🗑 删除账号
4) 🔍 使用账号浏览/下载/删除远程文件
0) 返回

[/code]

    • *

1️⃣ 新增账号

输入:

  • 协议(FTP / FTPS / SFTP)
  • 账号名称(如 main/web1/db1)
  • 主机名
  • 端口(FTP/FTPS 默认 21,SFTP 默认 22)
  • 用户名
  • 密码

保存位置:
[code]

~/.ftp_backup_tool/accounts/.conf

[/code]

示例:
[code]

ACCOUNT_ID="web1"
FTP_HOST="ftp.example.com"
FTP_PORT="21"
FTP_USER="user"
FTP_PASS="password"
FTP_PROTO="ftp"

[/code]

    • *

2️⃣ 查看账号列表

显示类似:
[code]

[1] 账号:main | 协议:FTP | 主机:ftp.example.com | 用户:user
[2] 账号:server | 协议:SFTP | 主机:1.2.3.4 | 用户:root

[/code]

    • *

3️⃣ 删除账号(含关联任务)

删除账号会自动删掉:

  • 配置文件
  • 所有带 # FTP_BACKUP[ACCOUNT_ID] 的定时任务
    • *

🌍 使用账号浏览 / 下载 / 删除远程文件

进入远程操作菜单:
[code]

1) 📁 列出目录
2) 📥 下载文件
3) 📥 下载目录
4) ❌ 删除文件/目录
5) ⚠ 删除整个目录
0) 返回

[/code]

    • *

1️⃣ 列出目录

输入路径:

  • 根目录:/
  • 子目录:/wwwroot
  • 自动过滤 ...
    • *

2️⃣ 下载远程文件

输入:

  • 远程目录(如 /wwwroot/
  • 远程文件名
  • 本地保存目录(自动创建)

使用 lftp:
[code]

get "文件名" -o "本地路径"

[/code]

    • *

3️⃣ 下载远程目录

例如:

  • 远程目录:/site
  • 本地目录:/root/site_bak

内部执行:
[code]

mirror "/site" "/root/site_bak"

[/code]

    • *

4️⃣ 删除远程文件(支持删除目录名)

输入:

  • 远程目录
  • 文件或目录名(都能删)

执行:
[code]

rm -r "名称"

[/code]

支持删目录,不再出现 FTP 的 “550 Is a directory”。
    • *

5️⃣ 删除整个远程目录

输入目录路径,如:
[code]

/backup/old

[/code]

禁止删除根目录 /

    • *

💾 新建备份任务(本地 → FTP/SFTP)

进入:
[code]

2) ➕ 新建备份任务

[/code]

步骤:

  1. 输入本地路径(文件/目录)
  2. 输入远程目录
  3. 选择账号
  4. 选择定时方式

    • 每天固定时间(时:分)
    • 每隔 N 分钟
  5. 是否立即执行一次
    • *

备份逻辑

📂 本地目录 → 远程目录(mirror -R)

[code]

mirror -R "本地目录" "远程目录"

[/code]

📄 本地文件 → 远程目录(put)

[code]

put "本地文件" -o "文件名"

[/code]

    • *

⏰ 查看 / 立即执行任务

展示所有:
[code]

*/10 * * * * bash /root/back.sh run xxx ... # FTP_BACKUP[xxx]

[/code]

你可以选择某条任务立即执行。

    • *

🗑 删除备份任务

从 crontab 移除选中的任务即可。

    • *

🧹 卸载工具(彻底清理)

功能:

  • 清理所有 # FTP_BACKUP 任务
  • 删除 ~/.ftp_backup_tool/
  • 删除脚本 /root/back.sh

卸载后完全无残留。

    • *

✅ 使用建议与技巧

路径带空格时:
[code]

ln -s "/path/with space" /root/path_nospace

[/code]

建议账号分类:

  • web_backup:网站
  • db_backup:数据库
  • config_backup:配置文件

数据库备份示例:

  • mysqldump 导出到 /root/db_bak/db.sql
  • 本脚本同步 /root/db_bak/ 到 FTP
    • *

🎉 总结

这个脚本能让你:

  • 轻松管理多个 FTP/SFTP 账号
  • 自动定时备份本地文件/目录
  • 浏览、下载、删除远程文件
  • 一键下载远程整个目录
  • 一键卸载无残留
  • 完整支持 FTP / FTPS / SFTP

非常适合:

  • VPS 用户
  • 网站站长
  • 需要异地备份的人
  • 任何习惯 FTP/SFTP 同步的人
让备份真正变成「自动、可控、可靠」。

博客该文章地址

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可

__点赞 __分享

__ __ __ __ __ __ 打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

__No Tag

最后编辑:2025年12月4日

< 上一篇

下一篇 >

  1. setang说道:

2025年12月4日 下午2:48

好东西

回复

  1. 西瓜123说道:

2025年12月4日 下午2:48

好帖

回复

  1. chy说道:

2025年12月4日 下午2:49

ftp?

回复

发表回复 取消回复

电子邮件地址不会被公开。必填项已用 * 标注

__

*

__

*

__

*

__

本文著作权归作者 [ doudoudoubao ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。

发表留言