Herald Yu

Herald Yu

Ubuntu

安装 Ubuntu Server 22.04 LTS 是否应该启用 LVM

在安装 Ubuntu 22.04 LTS Server 版本时,系统安装器默认启用了 LVM 安装。对于不太了解 LVM 逻辑卷管理器的用户来说,这在一定程度上增加了用户的“脑负担”,毕竟是要把系统运行在另外一种自己不了解的分区结构上,多少有些心里打鼓。 不卖关子,直接说结论! * 如果确定“没有扩容需求”就不需要 LVM * 如果“有扩容需求”最好启用 LVM 简单来说,LVM 的核心用途就是构建一个可以扩缩容的存储系统,而且是热扩缩,一切都可以在系统不中断的情况下完成。 朋友最近给我寄来一台新开发的软路由,Intel(R) Celeron(R) N5095 四核四线程 2.0GHz 处理器,四个 2.5G 网口,最大支持 32GB 内存,一个原生
2 min read
Wagtail

Wagtail sitemap.xml 不索引多语言链接的问题

Wagtail 项目采用 wagtail_locale 应用实现页面多语言管理。在参照 sitemap 配置文档 启用 sitemap 生成器之后, http://localhost:8000/sitemap.xml 中只有 /en/ 英文的链接。 通过在 django shell 中导入 Page 类,查看各页面的中英文版本,发现 Wagtail 会将翻译的页面视为附属页面。比如: >>> from wagtail.core.models import Page >>> home = Page.objects.get(id=3) >>> home.locale >>> home2 = Page.objects.get(
2 min read
Manjaro

Manjaro Gnome + XRDP 最佳配置方案

五一假期闲来无事,逐一尝试了 Manjaro 21.2.6 官方维护的 xfce、KDE 和 Gnome 桌面环境的发行版,最终结论是 Gnome 在 xrdp 使用上功能相对最健全。xfce 和 KDE 虽然可以成功通过 xrdp 连接到桌面,但无法弹出密码认证窗口,这会导致无法使用系统自带的应用管理器安装程序,像 GParted 等需要获取管理员权限的 GUI 程序也无法使用。 当然,从 XRDP 远程桌面的角度来看,Gnome 版本的 Manjaro 也不是开箱即用。常规方法配置的 xrdp 连接后会提示“发生了系统错误,所有插件都已禁用,是否注销登录”,这个问题需要用第三方的补丁来解决,虽然打补丁也没多复杂,但毕竟多了步骤,就给 xrdp 的配置又增加了一层门槛。
2 min read
Redis

Redis 数据库常用命令

查看数据库总数 与 MySQL 等关系型数据库不同,Redis 预置了 16 个数据库,数据库名称是数字索引,从 0~15。 127.0.0.1:6379> CONFIG GET databases 1) "databases" 2) "16" 查看键的存储情况 列出所有存储了键的数据库及已存储的键的数量。 127.0.0.1:6379> info keyspace # Keyspace db0:keys=8,expires=0,avg_ttl=0 列出所有数据库中的键 以指定的数字(0)为起点,遍历所有数据库并打印所有已存储的键。 127.0.0.
1 min read
Youtube

yt-dlp 一个 youtube-dl 的替代品

项目主页:https://github.com/yt-dlp/yt-dlp 在 Linux 上只要把 yt-dlp 二进制文件放在任意 $PATH 即可。 因为是 youtube-dl 的衍生品,所以用法、参数几乎没有变化,youtube-dl 原来在 $HOME/.config/youtube-dl/config 配置文件创建一个副本到 $HOME/.config/yt-dlp/config 即可。 用法参考 youtube-dl 开源命令行下载工具 需要注意的是,在配置文件参数上有些细微区别,比如 $ youtube-dl -f 'bestvideo[height=1080,ext=mp4]+bestaudio[ext=m4a]' --merge-output-format mp4 其中
1 min read
PostgreSQL

PostgreSQL 启用 SSL

PostgreSQL 提供多种通信安全机制,SSL 是其中一种,类似于网站启用 https。可以配置服务端单向验证,也可以配置服务端和客户端双向验证。 这里记录单向验证的证书配置方法,作用主要是通过加密通道传输数据,防止被中间人抓包窃取。 生成证书 openssl req -new -text -passout pass:abcd -subj /CN=localhost -out server.req -keyout privkey.pem openssl rsa -in privkey.pem -passin pass:abcd -out server.key openssl req -x509 -in server.req -text -key server.key -out
1 min read
Stories

探究事物本源的第一性原理

了解一个原理的方法有很多中,先举几个反例: * 这件事某人之前是这样做的,所以我们也这样做; * 这个东西成本高,所以这个东西未来的成本也很高; * 媒体发文章都是长篇大论事无巨细的,所以我们写文章也应该码更多字; * 因为系统就是如此,所以我们要接受这个系统; * ... 可举的例子应该很多,每个人应该都可以顺藤摸瓜的发现类似的样本。 今天无意中刷到 Elon Musk 接受采访时分享的“第一性原理”,引发我内心强烈的共鸣。 最近经常碰到画蛇添足的、抓无意义细节的人和事,很让人头疼。 完美主义的事无巨细并无过错,但在资源有限的情况下,人更应该把宝贵的时间和注意力放在关键的事情上。当然,一定有人会反驳: * 你怎么知道这些细枝末节不关键? * 你怎么知道不把句号换成感叹号会引起什么样的不良体验? * 你怎么知道... 我总觉得进化是一个循序渐进的过程,先要解决有没有的问题,然后才是好不好的问题。
1 min read
OMV

OMV5 安装 nvidia 显卡

本来想把亮机卡给 Jellyfin 用做硬件加速的,结果发现 GT1030 不支持 NVENC,而 Jellyfin 又不支持 CUDA 加速,所以就只是单纯的记录一下在 OMV 5(Debian 10)上安装 nvidia 显卡驱动的过程。 检测显卡型号 $ lspci -nn | egrep -i "3d|display|vga" 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP108 [10de:1d01] (rev a1) 也可以安装 nvidia-detect,检测显卡型号: $ nvidia-detect Detected NVIDIA GPUs: 01:
1 min read
可用性

N个9可用性,SLA啥意思?

N个9是云计算领域常用的衡量服务可用性的指标,它衡量的是服务在一年中平均无故障时间,比如,99.99% 的可用性,代表该服务在一年中 99.99% 的时间都是可用的,即 0.01%(1-99.99%)是服务可能无法使用的时间,计算到分钟的话就是: (1-99.99%) * 365天 * 24小时 * 60分钟 ≈ 52.56 分钟 如果一个服务的 SLA 是 99.99%,则表明它的全年可能的故障时间是 52.56 分钟。 如果一个服务的 SLA 是 5 个 9,即 99.999%,则全年可能故障时间为 5.256 分钟。
1 min read

asciinema 把终端操作录制成 gif 动画

asciinema 是一个开源工具,可以把终端上的操作录制下来转换成 git 动画,也可以进一步使用 ffmpeg 将动画图片转换成 mp4 视频。 安装 macOS brew install asciinema Ubuntu/Debian sudo apt install asciinema 使用 录制 asciinema rec demo.cast 使用 ctrl + d 或 exit 停止录制 回放 asciinema play demo.cast 生成 gif 动画 按照 asciinema 项目的使用建议,录制好的配置文件可以上传到官网,然后使用官方的脚本和连接嵌入到自己的网页。如果需要离线使用,可以通过 asciinema2gif 生成动图。
1 min read
Music

认真地老去

忘了什么时候开始 到清晨才能入睡 也忘了什么叫做结尾 又有谁在乎呢 凌晨三点的窗前 播放着那段时光 有一个骄傲的少年 隐藏他的青春 不如让我忘了自己 你觉得怎么样呢 在每个向往的地方 释然一个遗憾 躺在我怀里的吉他 好像厌倦了我 重复最熟悉的段落 好像无话可说 这生命正值春光 别装作刀枪不入的模样 别错过年轻的疯狂 时光很匆忙 别错过日落和夕阳 不论在哪里呀 来不及认真的年轻过 就认真的老去 又一次和你擦肩而过 一毫米的距离 让我再次抱起吉他 为你唱那一首歌 重复最熟悉的段落 就当明天不在 没有永远的年轻 没有唱不完的歌 当所有人都离去 我也将要离去 这生命正值春光 别装作刀枪不入的模样 别错过年轻的疯狂 时光很匆忙 别错过日落和夕阳 不论在哪里呀 来不及认真的年轻过 就认真地老去 又一次和你擦肩而过 一毫米的距离 别错过年轻的疯狂 时光很匆忙 别错过日落和夕阳 不论在哪里呀 来不及认真地年轻过 就认真地老去
1 min read
Windows

在 Windows 11 上读取 ext4 文件系统

Windows 10 或 11 上读取 ext4 可以借助 WSL 实现,首先参考安装 WSL。 然后参考 WSL 2 挂载 Linux 磁盘 执行命令查看磁盘列表: PS C:\Users\herald> GET-CimInstance -query "SELECT * from Win32_DiskDrive" DeviceID Caption Partitions Size Model -------- ------- ---------- ---- ----- \\.\PHYSICALDRIVE0 SAMSUNG MZVLB256HAHQ-00000 3 256052966400 SAMSUNG MZVLB256HAHQ-00000 \\.\PHYSICALDRIVE1 HIKSEMI MD202 SCSI Disk
1 min read
Backup

家庭数据备份方案

自从大二装国产 Linux 误删了硬盘中积累了多年的照片,我对数据的存储和备份有了敬畏之心,这可能也是我后来投身存储领域的潜在动因吧。 于我们家庭而言,照片视频是最宝贵的数字资产。从 2005 年至今,我们一直会比较认真的归档每个月的照片,目前累计 800GB 左右。 昨天下午江苏盐城海域发生了 5.0 级地震,上海有很明显的震感,虽然的确如网上所说,大家都觉得是自己疲劳过度导致的眩晕,但地震过后,我不时的会联想到地震毁掉了 NAS,就是那个存有 800GB 数据的服务器。 其实家庭相册并不是只有 NAS 里这一份,我和老婆真的很担心它发生意外,所以在很久很久以前,老婆用 USB2.0 的移动硬盘做过离线备份,硬盘放在苏州我父母的家里。我还额外用一个 1TB 的硬盘对它做了另外一个离线备份,会定期的接到 NAS 上同步最新的数据。但这个 1TB 的盘也放在上海家里,它只是 NAS 的一个灾备。保险起见,
7 min read
React

Docusaurus v2 获取当前页面超链接

Docusaurus 是基于 React 的文档生成器,也可以说是在 NextJS 的基础上改进而来的程序。 当需要获取当前页面超链接时,可以使用 JS 的 windows 全局变量,例如: console.log(window.location.href) 但直接在组建中使用 window 会导致 build 报错,程序会建议使用 useEffect,即 React 的 Hook。 使用示例: import React, { useState, useEffect } from 'react'; const [pageurl, setPageurl] = useState('') useEffect(() => { setPageurl(window.location.href) }) console.log(pageurl)
1 min read
markdown

Markdown 页内跳转 ToC

对于内容较多的 Markdown 文档,通常会在页头创建一个 ToC 导航,以各个段落标题为锚点。在手动创建时一般需要注意以下几点: 1.纯英文标题时 所有单词改为小写,空格使用 - 替换。例如:[My Title](#this-is-my-title) 当标题中有 / 等符号时,也使用 - 替换。例如:[ That/s My box](#that--s-my-box) 2.中英文混合时 所有单词改为小写,空格使用 - 替换。例如:[这是 Tom 的书包](#这是-tom-的书包)
Rancher

Rancher 忘记密码如何重置?

对于安装在 Docker 上的 Rancher,可以在宿主机执行以下命令重置管理界面的密码,例如: $ sudo docker exec trusting_buck reset-password New password for default admin user (user-ssggz): tkk0z67Tdoh8GpQzB4UI 其中,trusting_buck 是 Rancher 所在的容器名。重置后的用户名和密码如下: * 用户名:admin * 密码:tkk0z67Tdoh8GpQzB4UI References * https://github.com/rancher/rancher/issues/12697#issuecomment-383651948
前端

Gatsby 3.13 + Strapi 3.6 + React-markdown 故障排查

美好的十一国庆节假期,陪孩子、睡懒觉、看各种前端资料。儿子5岁了,再也不用像之前那样寸步不离,他会找自己喜欢玩的东西。就算是缠着我下楼玩,也不用我时时刻刻的当他的拐棍,特别是他最近社交技能提升,玩秋千会排队、会交涉,也会抢,为父甚是欣慰。 言归正传,这几天以 Strapi 为数据源,分别试用了 Next.js 和 Gatsby 两款开源的前端框架。首先说 Strapi,真乃神器!本质上他是一个内容管理器 CMS,但与传统的 CMS 不同在于它不直接提供前端界面,只按照需求对外暴漏 API,它的逻辑非常灵活,你可以用预置的各种字段去组装需要的内容类型。可以很轻松的创建各种单页面、文章博客或是产品列表,然后直接在 Strapi 上面管理相应的内容,它通过 API 对外提供各种内容类型的数据,使用 react 或 vue 等前端框架从 API
4 min read