• 首页
  • 归档
  • 关于
  • 搜索
  • 夜间模式
    ©2026  望时代 Theme by OneBlog

    望时代

    搜索
    标签
    # 教程 # Linux # 脚本 # AI # 影音 # 游戏 # 随笔 # 科技 # 认知
  • 首页>
  • >
  • 正文
  • 📂 一键脚本 FTP/SFTP 自动备份 & 管理工具完整教程(多账号 + 定时 + 远程浏览/下载/删除)

    2026年06月26日 5 阅读 0 评论 5874 字

    📂 一键脚本 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 ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    教程脚本
    取消回复

    发表留言
    回复

    Copyright©2026  All Rights Reserved.  Load:0.003 s
    Theme by OneBlog V3.7.1
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。