[Lizzy McAlpine]利兹·麦卡尔平 写给25岁自己的信
祝我生日快乐!天哪,5年间发生了好多变化。心怀感激,爱你们 :)
(前面一堆废话,可拉到文章后面查看项目地址)
终于开始经营属于自己的网络私人空间啦,近几天折腾下来,最大的感觉是形式多于内容,嘿嘿。看着为数不多的内容填充了博客首页,出于对自己稀少的劳动成果的珍视,我决定好好备份我的博客。
但可惜的是,找了几圈没有非常满意的,或者我这种小白可以轻松上手的。正好我前一天找ChatGPT写了Caddy重定向的配置,被AI写代码的能力惊讶到,并决定试试用Shell脚本加上Crontab,以实现定时将整个Typecho文件夹打包备份到我的网盘里去。
然后我就去找ChatGPT大神求助了,ChatGPT果然非常优秀,简单地描述了我的需求和实现思路后,几秒内就发给我一份完整可用的Shell脚本,完全满足了我的需求。然而,这种体验实在太爽了,ChatGPT有求必应,响应速度极快,还任劳任怨。
于是,我这两天时不时想出一些新点子,让ChatGPT帮我修改这个脚本,使得其更加简单易用,对用户更友好。大概前后改了几十版吧(主要是我太小白了,提需求的能力有待进步),进行了功能添加到代码精简的大大小小的修改,有时候发现我对脚本代码的理解速度还跟不上ChatGPT的编写速度,还得请ChatGPT大神耐心讲解。有时候太小的注释修改,或者用户界面改进就由我自己复制到本地手动改改,然后发给ChatGPT帮我在此基础上进一步添加功能。
最终呢,终于还是累坏了ChatGPT大神,由于最终脚本太长了,它有时候一次性生成不了那么多代码,还得分多次生成,有时候还写出了死循环,必须重新生成。(Sry,Professor GPT)。
无论如何,在这个故事的最后,在ChatGPT大神和我非常基础的手动修改之下,最终版本终于跑起来啦!Typecho2Rclone正式诞生!而且界面超级友好,小白也能轻松上手~
Enjoy~
以下是本项目简介(由ChatGPT草稿)
/tmp
文件夹容量与需备份文件夹的体积。备份时需要在/tmp
额外占用体积为 需备份文件夹+需备份文件夹打包后的压缩文件
的磁盘空间作为临时存储。确保用户在当前工作目录下有创建文件的权限,并安装curl:
apt update && apt install curl
运行:
bash -c "$(curl -sSL https://raw.githubusercontent.com/GreyFlorence/Typecho2Rclone/main/Typecho2Rclone.sh)"
运行前:
首次运行:
Typecho2Rclone.sh
脚本,按照提示输入 Typecho 文件夹绝对路径、Rclone 远程配置名称、远程文件夹路径、以及自定义 Cron 表达式等信息。非首次运行:
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
写入指定目录,并创建定时任务,按照用户配置的时间定期执行备份操作。首次安装完成后,用户可以选择立即运行一次备份。备份步骤:
Typecho2Rclone_script.sh
会将Typecho文件夹复制到位于/tmp/typecho_temp
的临时文件夹/tmp/typecho_temp
临时文件夹./TypechoBackupScript/config.txt
文件中,确保用户在非首次运行时能够查看和修改配置如果需要卸载脚本,执行 Typecho2Rclone.sh
脚本,选择相应菜单选项并输入 "Uninstall"
此脚本基于 MIT 许可证