(前面一堆废话,可拉到文章后面查看项目地址)
终于开始经营属于自己的网络私人空间啦,近几天折腾下来,最大的感觉是形式多于内容,嘿嘿。看着为数不多的内容填充了博客首页,出于对自己稀少的劳动成果的珍视,我决定好好备份我的博客。

但可惜的是,找了几圈没有非常满意的,或者我这种小白可以轻松上手的。正好我前一天找ChatGPT写了Caddy重定向的配置,被AI写代码的能力惊讶到,并决定试试用Shell脚本加上Crontab,以实现定时将整个Typecho文件夹打包备份到我的网盘里去。

然后我就去找ChatGPT大神求助了,ChatGPT果然非常优秀,简单地描述了我的需求和实现思路后,几秒内就发给我一份完整可用的Shell脚本,完全满足了我的需求。然而,这种体验实在太爽了,ChatGPT有求必应,响应速度极快,还任劳任怨。

于是,我这两天时不时想出一些新点子,让ChatGPT帮我修改这个脚本,使得其更加简单易用,对用户更友好。大概前后改了几十版吧(主要是我太小白了,提需求的能力有待进步),进行了功能添加到代码精简的大大小小的修改,有时候发现我对脚本代码的理解速度还跟不上ChatGPT的编写速度,还得请ChatGPT大神耐心讲解。有时候太小的注释修改,或者用户界面改进就由我自己复制到本地手动改改,然后发给ChatGPT帮我在此基础上进一步添加功能。

最终呢,终于还是累坏了ChatGPT大神,由于最终脚本太长了,它有时候一次性生成不了那么多代码,还得分多次生成,有时候还写出了死循环,必须重新生成。(Sry,Professor GPT)。

无论如何,在这个故事的最后,在ChatGPT大神和我非常基础的手动修改之下,最终版本终于跑起来啦!Typecho2Rclone正式诞生!而且界面超级友好,小白也能轻松上手~

Enjoy~

以下是本项目简介(由ChatGPT草稿)


项目地址

Typecho2Rclone

  • 用于自动备份 Typecho 博客并通过 Rclone 定时上传到远程存储的易用 Shell 脚本。
  • 理论上亦可适用于其他文件夹的定时备份。
  • Powered by ChatGPT

功能特性

  • 一键安装:首次运行脚本即可完成必要的配置和安装,包括创建定时任务和备份脚本
  • 定时备份:可以设置定时任务,定期自动备份 Typecho 网站
  • 手动备份:支持手动运行备份程序,方便用户随时备份数据
  • 配置修改:提供菜单选项,用户可以方便地修改备份目录、远程目录、Rclone 远程配置和 Cron 表达式等信息
  • 卸载脚本:提供卸载脚本的功能,包括删除相关定时任务和文件夹
  • 灵活适用:理论上亦可适用于其他文件夹的定时备份,但请注意/tmp文件夹容量与需备份文件夹的体积。备份时需要在/tmp额外占用体积为 需备份文件夹+需备份文件夹打包后的压缩文件 的磁盘空间作为临时存储。

使用方法

  • 确保用户在当前工作目录下有创建文件的权限,并安装curl:

    apt update && apt install curl
  • 运行:

    bash -c "$(curl -sSL https://raw.githubusercontent.com/GreyFlorence/Typecho2Rclone/main/Typecho2Rclone.sh)"
  1. 运行前:

    • 请确保 Rclone 配置正确,能够成功进行文件上传
  2. 首次运行:

    • 执行 Typecho2Rclone.sh 脚本,按照提示输入 Typecho 文件夹绝对路径、Rclone 远程配置名称、远程文件夹路径、以及自定义 Cron 表达式等信息。
    • 脚本将创建子脚本和相关定时任务。
  3. 非首次运行:

    • 执行 Typecho2Rclone.sh 脚本,将显示当前脚本文件和定时任务的安装状态。
    • 提供菜单选项,用户可以手动运行备份、修改配置、卸载脚本等。

功能原理

  • 当用户首次运行脚本时,脚本将引导用户输入必要的配置信息,包括 Typecho 文件夹路径(TYPECHO_DIR)、Rclone 远程配置名称(REMOTE_NAME)、Rclone 远程文件夹路径(REMOTE_FOLDER)和定时备份的 Cron 表达式(CUSTOM_CRON)

    这些信息将被记录到配置文件(config.txt)中,同时创建用于定时备份的子脚本文件(Typecho2Rclone_script.sh)

  • 配置文件的内容如下:
TYPECHO_DIR="/path/to/typecho"
REMOTE_NAME="your_remote_config"
REMOTE_FOLDER="/path/to/remote/folder"
CUSTOM_CRON="0 4 * * 1"
  • 首次运行完成后,脚本会将子脚本文件 Typecho2Rclone_script.sh 写入指定目录,并创建定时任务,按照用户配置的时间定期执行备份操作。首次安装完成后,用户可以选择立即运行一次备份。
  • 备份步骤:

    1. Typecho2Rclone_script.sh会将Typecho文件夹复制到位于/tmp/typecho_temp的临时文件夹
    2. 将该临时文件夹打包成tar.gz后缀的压缩包
    3. Rclone将该tar.gz压缩包移动至指定远程文件夹
    4. 删除整个/tmp/typecho_temp临时文件夹
    5. 完成
  • 在非首次运行时,脚本将读取配置文件中的信息,显示当前脚本文件和定时任务的安装状态。用户可以选择手动运行备份程序、修改配置信息、卸载脚本或退出。
  • 当用户选择修改配置信息时,脚本将引导用户输入新的 Typecho 网页文件夹路径、Rclone 网盘配置名称、Rclone 远程文件夹路径和新的定时备份的 Cron 表达式。这些新的配置信息将被更新到配置文件中,同时备份脚本文件将重新生成。

配置文件

  • 用户的首次输入将会被记录到 ./TypechoBackupScript/config.txt 文件中,确保用户在非首次运行时能够查看和修改配置
  • 配置文件明文存储:Typecho 文件夹绝对路径、Rclone 远程配置名称、远程文件夹路径、自定义 Cron 表达式

卸载脚本

如果需要卸载脚本,执行 Typecho2Rclone.sh 脚本,选择相应菜单选项并输入 "Uninstall"

操作菜单示例

许可证

此脚本基于 MIT 许可证

项目地址

推荐文章

[Vogue]与Hunter Schafer共度米兰9小时

"Fashionably late"

[Vulture]为何“That’s that me, espresso”如此洗脑?

彻夜难眠?都怪Espresso。不,我不是指浓缩咖啡,我是指Sabrina Carpenter正风靡全球的新单曲。......在这首歌众多稀奇古怪的歌词中,我们为什么就总忍不住唱“That’s that me, espresso”呢?

可按 ESC 键退出搜索

0 篇文章已搜寻到~