惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

HANG ♥ WRITING

Agents 当道,我们都可以被蒸馏成 Skills ChatGPT 问世两年,我在 AI 的辅助下成为了一名 iOS 业余开发者 如何使用 Netcat 构建简单的安全聊天系统 QuakeSense 震感,一款简洁原生的 iOS 地震通知 App App Store 中国大陆 ICP 备案最佳实践 几款有意思的 Google Chrome 侧边栏扩展应用 GetVM 让编程学习更快一步 WildCard (野卡) - 国内用户零门槛订阅 ChatGPT、Claude、App Store 万里汇开发者收款使用全指南 | 注册、开户与账户绑定教程 中国大陆居民开通华侨银行(OCBC)海外账户完全指南 实用的 macOS 内置命令,省下买第三方应用的钱 《认知觉醒》之触动学习法 不是程序员也可以搞开发,一小时入门 Retool 低代码 疫情来袭,手把手教你在家制作美味炒鸡 企业微信机器人 Webhook 推送语雀更新消息 基于 Cloudflare Workers 部署的 JSON Database 数据库 印象时间:印象笔记出品的时间管理应用 Pixelmator Photo 2.0: 桌面级功能并适配 iPhone Shortery:Mac 快捷指令自动化 Pixelmator Pro 2.3:AI 背景去除 Quit All:一键退出应用程序 Raycast:推出官方扩展商店和开发者平台 简悦 API 2.0:收藏助手和快照功能 HomePod mini 使用体验 Prizmo 5.5:扫描效果增强并新增批注功能 Notion:近期值得关注的新特性 Google Analytics 替代品,零成本和零门槛搭建 umami.is Infuse 7:一款近乎完美的视频播放器 Gyroscope 4.14:新的产品名称和多项改进 V day:在手机上创作短视频 Things 3.14:备注支持 Markdown,同步速度加快 MoneyWiz 2021:新的通知选项和视觉改善 Doppler:管理和分享你的本地音乐 CARROT Weather:5.3 带了多项新特性 Obsidian:知名知识管理工具推出移动应用 NOMO RAW:专业 ProRAW 相机 Tape:全能且好用的录屏软件 Apple Design Award 2021 Craft 1.6:每日笔记重磅更新 Trakt:官方 iOS 应用全新上线 Notion:支持 API 和自动化集成 Varlens:iOS 专业相机应用 Infuse 7:不只是 M1,支持所有 Mac 简悦:支持 API 和自动化流程 奇妙组件:小而美的自定义 iOS 小组件 Farbox 2:支持自部署和多站点的开源博客系统 图图记账:高颜值记账应用 Coppice:帮助整理你的想法 DarkModeBuddy:基于光线切换深色模式 走进微软成都 Office,聊一聊 Microsoft 365 HapiGo:符合国情的效率启动器 Eagle 2.0:数十项功能更新 + 数倍的性能提升 无需记账,通过更新余额了解自己有「多少资产」 Dato:支持日历和时区的菜单栏时钟 极具潜力的效率启动器 App,Raycast 脚本功能详解 Pixelmator Pro 2.0.2:增加新效果,支持 ProRAW Raycast:面向开发人员的效率启动器 Sorted:全新的 Mac 版本,原生支持 Apple Silicon App Store 和 Google Play 的 2020 年度 App 榜单 VSCO:全新的视频效果和拍摄模式 Pixelmator Pro 2.0:全新设计并支持 M1 芯片 Maipo 4:全功能新浪微博 macOS 客户端 Bartender 4:Mac 菜单栏定制工具 JSBox:适配并支持 iOS 14 小组件 Little Snitch 5:macOS 上出色的流量监控与防火墙应用 Photoshop:更多的 AI 创意工具 Capslox:文本操作快捷键增强效率工具 Airport:TestFlight 测试应用商店 Disk Drill 4:全新设计,支持 macOS 11 Big Sur OneWidget:小组件中的瑞士军刀 Todoist:新增看板视图 IFTTT Pro:合理的定价、全新的特性 PooPoo Privacy Policy QuakeSense Privacy Policy | 震感 App 隐私政策 ThenNow Privacy Policy | 今昔 App 隐私政策 LaunchBar 6.13:支持 macOS Big Sur 24 Hour Wallpaper:近百张 Mac 动态壁纸 简悦 2.0 阅读模式 + 标注系统 + 稍后读 绕过 App Store 付费,Setapp 采用新的 iOS 付费应用解锁策略 Noto 笔记:2.3 版本带来 10 余项功能更新 PliimPRO:让 Mac 一键进入演示模式 Pixelmator Pro 1.7:文字输入、画布旋转和 ML 超分辨率更新 Ulysses 20:新增导航面板和中文拼写检查 Mailbrew:新增 Inbox 集中订阅 Newletter Fluent Reader:免费跨平台 RSS 阅读器 Moment:高颜值 Mac 状态栏倒数日应用 Meeter:集中管理你的远程会议 Adobe Lightroom:新版带来了众多实用特性 WWDC:在 Mac 上观看 WWDC 直播和视频 LongWe:Mac 上的文本长图生成工具 Photoshop Camera:风格独特的艺术效果 Empoche:任务管理和时间追踪二合一 Camera+ 2:Magic ML 带来照片处理新魔法 Tuck:将窗口停靠在屏幕边缘 Wormhole:在电脑上操作 iOS 和 Android 设备 Coherence X:一键将网页转换为桌面应用 Charty:让快捷指令支持图表可视化 Edison Mail:又一款免费邮件客户端 Service Station:定制 Mac 右键菜单 WatchSmith:前所未有地个性化 Apple Watch
Ghost 博客数据自动备份和图片自动压缩
huhuhang@gmail.com (huhuhang) · 2018-10-14 · via HANG ♥ WRITING

阅读本文需要具备的前提:

  • 可自行在云主机上部署 Ghost
  • 熟悉 Git 和 GitHub 使用

我已经使用 Ghost 博客 接近 2 年了。目前来讲,随着 1.0 的正式发布,版本迭代非常快,体验也越来越好。

这篇文章中,我将分享两个使用过程中的小技巧,分别是:数据自动备份和图片自动压缩。

数据自动备份

Ghost 博客默认不提供自动备份和图片压缩功能,所以需要借助第三方工具实现。由于平常和 Git 打交道的时间比较多,再加上每天都会使用 GitHub。所以,我就想借助于 GitHub 来对 Ghost 数据进行备份。

如果你把 Ghost 托管在 Ubuntu 系统的云主机(推荐 AWS Lightsail)上,默认的安装目录一般是 /var/www/ghost/。那么,该文件夹下方就存放了 Ghost 一系列安装文件。其中,./ghost/content 路径下方存放了博客的数据文件。结构如下:

.
├── apps
├── data
├── images
├── settings
└── themes

由于我使用 SQLite 数据库,所以数据库文件就直接在 ./ghost/content/data 下方,备份起来就更加方便了。

接下来,你可以在 GitHub 中新建一个私有仓库(推荐)。然后将 ./ghost/content 下的文件 Push 到仓库即可。关于 Git 的使用这里不再介绍,可通过官方文档快速上手。

如果想要实现自动备份则可以在 ./ghost/content 目录下方新建一个脚本文件 auto\_run.sh

#!/bin/sh

cd /var/www/ghost/content # 切换到目录
sudo git pull # 拉取仓库
sudo git add . # 添加暂存
sudo git commit -m "auto backup" # 提交 commit
sudo git push

特别提醒,你可以添加 .gitignore 文件来排除不需要同步的文件,保证仓库清洁和同步效率。

然后,自动备份就交给 crontab 服务完成。例如,在 crontab 服务中添加 00 16 * * * sh /var/www/ghost/content/auto\_run.sh,则会在每天 16:00 定时执行脚本将更新提交到仓库。

特别留意一下 crontab 服务的运作状态,以防止自动备份失效。sudo service cron status 处于 active (running) 状态即代表正常。

如此以来,Ghost 博客数据自动备份就完成了。使用 Github 备份的好处在于可以追踪数据变化,同时避免数据丢失且方便回滚。但有一点不好的是,由于 Ghost 大多数数据都是图片等,二进制文件同步到 GitHub 会使得仓库越来越大。不过,拿我个人的博客来说,数百篇文章加上图片不过百余兆而已,尚且还好。

图片自动压缩

我们在写文章时,一般都会插入图片,而这些图片就存放在 ./ghost/images 下方。同时,图片是增加仓库体积的罪魁祸首,也增加了网页的加载时间。

由于使用了 GitHub 同步,压缩图片就可以轻而易举的解决了。GitHub Marketplace 中提供了一个第三方 Bot,名叫 ImgBot。ImgBot 可以遍历仓库,并自动完成图片无损压缩。

你可以通过 此链接 来安装 ImgBot 应用。安装完成之后,ImgBot 会自动提交一个包含压缩后图片的 Pull requests,只需要等待你检查后合并即可。

图片自动压缩完成后会收到相应的 PR

得益于上面的自动同步机制,这些压缩之后的图片自动在下一个时间节点被同步到云主机。ImgBot 会监测仓库的变化,自动压缩新增加的图片。

如果你不想一些图片被压缩,那么可以在仓库中添加 .imgbotconfig 配置文件排除。

{
    "schedule": "daily" // daily|weekly|monthly
    "ignoredFiles": [
    	"*.jpg",                   // 根据后缀排除
    	"image1.png",              // 根据名称排除
    	"public/special_images/*", // 根据路径排除
    ]
}

所以,通过 GitHub 巧妙地解决了数据自动备份和图片压缩问题,Ghost 用起来也越来越得心应手了。