https://vcb-s.com/archives/8431

VCB-Studio 的物语系列

TMDB 关于物语系列的分季分集真是太反人类了!

整理了一份 NAStool 用的自定义识别词,分享出来

1
eyIzIjogeyJpZCI6IDMsICJ0aXRsZSI6ICJcdTcyNjlcdThiZWRcdTdjZmJcdTUyMTciLCAieWVhciI6ICIyMDA5IiwgInR5cGUiOiAyLCAidG1kYmlkIjogNDYxOTUsICJzZWFzb25fY291bnQiOiA0LCAid29yZHMiOiB7IjI4IjogeyJpZCI6IDI4LCAicmVwbGFjZWQiOiAiTmlzZW1vbm9nYXRhcmkiLCAicmVwbGFjZSI6ICJNb25vZ2F0YXJpIFNlcmllcyBbUzAyXSIsICJmcm9udCI6ICIiLCAiYmFjayI6ICIiLCAib2Zmc2V0IjogIiIsICJ0eXBlIjogMiwgInNlYXNvbiI6IDIsICJyZWdleCI6IDAsICJoZWxwIjogIiJ9LCAiMzAiOiB7ImlkIjogMzAsICJyZXBsYWNlZCI6ICJCYWtlbW9ub2dhdGFyaSIsICJyZXBsYWNlIjogIk1vbm9nYXRhcmkgU2VyaWVzIFtTMDFdIiwgImZyb250IjogIiIsICJiYWNrIjogIiIsICJvZmZzZXQiOiAiIiwgInR5cGUiOiAyLCAic2Vhc29uIjogMSwgInJlZ2V4IjogMCwgImhlbHAiOiAiIn0sICIzMSI6IHsiaWQiOiAzMSwgInJlcGxhY2VkIjogIk1vbm9nYXRhcmkgU2VyaXNlW1JlY2FwX0lJXSIsICJyZXBsYWNlIjogIk1vbm9nYXRhcmkgU2VyaWVzIFtTMDBFMTFdIiwgImZyb250IjogIiIsICJiYWNrIjogIiIsICJvZmZzZXQiOiAiIiwgInR5cGUiOiAyLCAic2Vhc29uIjogMCwgInJlZ2V4IjogMCwgImhlbHAiOiAiIn0sICIzNiI6IHsiaWQiOiAzNiwgInJlcGxhY2VkIjogIk1vbm9nYXRhcmkgU2VyaXNlW1JlY2FwX0l2Ml0iLCAicmVwbGFjZSI6ICJNb25vZ2F0YXJpIFNlcmllcyBbUzAwRTEwXSIsICJmcm9udCI6ICIiLCAiYmFjayI6ICIiLCAib2Zmc2V0IjogIiIsICJ0eXBlIjogMiwgInNlYXNvbiI6IDAsICJyZWdleCI6IDAsICJoZWxwIjogIiJ9LCAiMzciOiB7ImlkIjogMzcsICJyZXBsYWNlZCI6ICJNb25vZ2F0YXJpIFNlcmlzZVtSZWNhcF9JSUldIiwgInJlcGxhY2UiOiAiTW9ub2dhdGFyaSBTZXJpZXMgW1MwMEUxMl0iLCAiZnJvbnQiOiAiIiwgImJhY2siOiAiIiwgIm9mZnNldCI6ICIiLCAidHlwZSI6IDIsICJzZWFzb24iOiAwLCAicmVnZXgiOiAwLCAiaGVscCI6ICIifSwgIjM1IjogeyJpZCI6IDM1LCAicmVwbGFjZWQiOiAiTmVrb21vbm9nYXRhcmkgXFwoU2hpcm9cXCkiLCAicmVwbGFjZSI6ICJNb25vZ2F0YXJpIFNlcmllcyBbUzAzXSIsICJmcm9udCI6ICIiLCAiYmFjayI6ICIiLCAib2Zmc2V0IjogIiIsICJ0eXBlIjogMiwgInNlYXNvbiI6IDMsICJyZWdleCI6IDEsICJoZWxwIjogIiJ9LCAiMjAiOiB7ImlkIjogMjAsICJyZXBsYWNlZCI6ICJIYW5hbW9ub2dhdGFyaSIsICJyZXBsYWNlIjogIk1vbm9nYXRhcmkgU2VyaWVzIFtTMDBdIiwgImZyb250IjogIlMwMCIsICJiYWNrIjogIkhpMTBwXzEwODBwIiwgIm9mZnNldCI6ICJFUCsxMiIsICJ0eXBlIjogMywgInNlYXNvbiI6IDAsICJyZWdleCI6IDEsICJoZWxwIjogIiJ9LCAiMjEiOiB7ImlkIjogMjEsICJyZXBsYWNlZCI6ICJPbmltb25vZ2F0YXJpIiwgInJlcGxhY2UiOiAiTW9ub2dhdGFyaSBTZXJpZXMgW1MwM10iLCAiZnJvbnQiOiAiUzAzIiwgImJhY2siOiAiSGkxMHBfMTA4MHAiLCAib2Zmc2V0IjogIkVQKzEzIiwgInR5cGUiOiAzLCAic2Vhc29uIjogMywgInJlZ2V4IjogMSwgImhlbHAiOiAiIn0sICIyOSI6IHsiaWQiOiAyOSwgInJlcGxhY2VkIjogIkthYnVraW1vbm9nYXRhcmkiLCAicmVwbGFjZSI6ICJNb25vZ2F0YXJpIFNlcmllcyBbUzAzXSIsICJmcm9udCI6ICJTMDMiLCAiYmFjayI6ICJIaTEwcF8xMDgwcCIsICJvZmZzZXQiOiAiRVArNSIsICJ0eXBlIjogMywgInNlYXNvbiI6IDMsICJyZWdleCI6IDEsICJoZWxwIjogIiJ9LCAiMzIiOiB7ImlkIjogMzIsICJyZXBsYWNlZCI6ICJLb2ltb25vZ2F0YXJpIiwgInJlcGxhY2UiOiAiTW9ub2dhdGFyaSBTZXJpZXMgW1MwM10iLCAiZnJvbnQiOiAiUzAzIiwgImJhY2siOiAiSGkxMHBfMTA4MHAiLCAib2Zmc2V0IjogIkVQKzE3IiwgInR5cGUiOiAzLCAic2Vhc29uIjogMywgInJlZ2V4IjogMSwgImhlbHAiOiAiIn0sICIzNCI6IHsiaWQiOiAzNCwgInJlcGxhY2VkIjogIk5la29tb25vZ2F0YXJpIFxcKEt1cm9cXCkiLCAicmVwbGFjZSI6ICJNb25vZ2F0YXJpIFNlcmllcyBbUzAwXSIsICJmcm9udCI6ICJTMDAiLCAiYmFjayI6ICJIaTEwcF8xMDgwcCIsICJvZmZzZXQiOiAiRVArNSIsICJ0eXBlIjogMywgInNlYXNvbiI6IDAsICJyZWdleCI6IDEsICJoZWxwIjogIiJ9LCAiMzgiOiB7ImlkIjogMzgsICJyZXBsYWNlZCI6ICJPdG9yaW1vbm9nYXRhcmkiLCAicmVwbGFjZSI6ICJNb25vZ2F0YXJpIFNlcmllcyBbUzAzXSIsICJmcm9udCI6ICJTMDMiLCAiYmFjayI6ICJIaTEwcF8xMDgwcCIsICJvZmZzZXQiOiAiRVArOSIsICJ0eXBlIjogMywgInNlYXNvbiI6IDMsICJyZWdleCI6IDEsICJoZWxwIjogIiJ9LCAiMzkiOiB7ImlkIjogMzksICJyZXBsYWNlZCI6ICJPd2FyaW1vbm9nYXRhcmkgUzIiLCAicmVwbGFjZSI6ICJNb25vZ2F0YXJpIFNlcmllcyBbUzAwXSIsICJmcm9udCI6ICJTMDAiLCAiYmFjayI6ICJNYTEwcF8xMDgwcCIsICJvZmZzZXQiOiAiRVArMzQiLCAidHlwZSI6IDMsICJzZWFzb24iOiAwLCAicmVnZXgiOiAxLCAiaGVscCI6ICIifSwgIjQwIjogeyJpZCI6IDQwLCAicmVwbGFjZWQiOiAiVHN1a2ltb25vZ2F0YXJpIiwgInJlcGxhY2UiOiAiTW9ub2dhdGFyaSBTZXJpZXMgW1MwMF0iLCAiZnJvbnQiOiAiUzAwIiwgImJhY2siOiAiTWExMHBfMTA4MHAiLCAib2Zmc2V0IjogIkVQKzE3IiwgInR5cGUiOiAzLCAic2Vhc29uIjogMCwgInJlZ2V4IjogMSwgImhlbHAiOiAiIn0sICI0MSI6IHsiaWQiOiA0MSwgInJlcGxhY2VkIjogIktveW9taW1vbm9nYXRhcmkiLCAicmVwbGFjZSI6ICJNb25vZ2F0YXJpIFNlcmllcyBbUzAwXSIsICJmcm9udCI6ICJTMDAiLCAiYmFjayI6ICJNYTEwcF8xMDgwcCIsICJvZmZzZXQiOiAiRVArMjEiLCAidHlwZSI6IDMsICJzZWFzb24iOiAwLCAicmVnZXgiOiAxLCAiaGVscCI6ICIifSwgIjQzIjogeyJpZCI6IDQzLCAicmVwbGFjZWQiOiAiWm9rdSBPd2FyaW1vbm9nYXRhcmkiLCAicmVwbGFjZSI6ICJNb25vZ2F0YXJpIFNlcmllcyBbUzAwXSIsICJmcm9udCI6ICJTMDAiLCAiYmFjayI6ICJNYTEwcF8xMDgwcCIsICJvZmZzZXQiOiAiRVArNDEiLCAidHlwZSI6IDMsICJzZWFzb24iOiAwLCAicmVnZXgiOiAxLCAiaGVscCI6ICIifSwgIjQ0IjogeyJpZCI6IDQ0LCAicmVwbGFjZWQiOiAiXFxdIE93YXJpbW9ub2dhdGFyaSBcXFsiLCAicmVwbGFjZSI6ICJdTW9ub2dhdGFyaSBTZXJpZXMgW1MwNF1bIiwgImZyb250IjogIlMwNCIsICJiYWNrIjogIk1hMTBwXzEwODBwIiwgIm9mZnNldCI6ICJFUC0xIiwgInR5cGUiOiAzLCAic2Vhc29uIjogNCwgInJlZ2V4IjogMSwgImhlbHAiOiAiIn19fX1AQEBAQEBWQ0ItU3R1ZGlvIOeJqeivreezu+WIlw==

在 HelloGithub 上看了这个项目 https://github.com/lucavallin/barco

跳过 formatter, linter 直接改成 gcc 试了一下

有报错

1
2
16:41:20 ERROR ./src/cgroups.c:82: failed to open /sys/fs/cgroup/barcontainer/cpu.weight: No such file or directory
16:41:20 FATAL ./src/barco.c:133: failed to initialize cgroups

查后发现

子层级的cgroup资源限制范围被上一级的cgroup.subtree_control文件内容所限制

于是

1
echo '+cpu' > /sys/fs/cgroup/cgroup.subtree_control

正常了!

参考:https://zorrozou.github.io/docs/详解Cgroup V2.html

现象

对端版本为 OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

ssh 报错

1
no matching host key type found. Their offer: ssh-rsa,ssh-dss

在 ssh config 中添加

1
HostKeyAlgorithms +ssh-rsa

后仍报错

1
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

查看对端 secure 日志

1
2
3
4
Jul 31 11:46:53 sshd[11845]: error: ssh_rsa_verify: cannot handle type rsa-sha2-512
Jul 31 11:46:53 sshd[11845]: error: cert_parse: Certificate signature verification failed
Jul 31 11:46:53 sshd[11845]: error: key_from_blob: can't parse cert data
Jul 31 11:46:53 sshd[11845]: error: userauth_pubkey: cannot decode key: ssh-rsa-cert-v01@openssh.com

还需在 ssh config 中添加

1
PubkeyAcceptedKeyTypes +ssh-rsa

总结

需要添加如下两条配置

1
2
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

NCurses Disk Usage

推荐一个 Linux 下 TUI 的磁盘使用分析查看工具 ncdu

https://dev.yorhel.nl/ncdu

  • 广泛的发行版支持,brew/yum epel 源可安装,好耶!
  • TUI、Colorful,好耶!
  • 速度快,有缓存,好耶!
1
2
3
4
5
6
7
8
9
10
11
ncdu 1.18 ~ Use the arrow keys to navigate, press ? for help
--- /root ----------------------------------------------------------------------------------------------------------------
2.2 GiB [#################] /insight
1.1 GiB [######## ] /pkg
268.1 MiB [## ] /.cargo
209.5 MiB [# ] /.nvm
182.2 MiB [# ] /.pm2
80.2 MiB [ ] /.vim
50.9 MiB [ ] /.cache
22.4 MiB [ ] /.npm
8.5 MiB [ ] /backup

两个问题,原因是一样的

为什么 docker mysql 建出来的 /var/lib/mysql 用户是 systemd-coredump

是 systemd-coredump 只是碰巧而已

因为 mysql 容器内的 mysql 用户 ID 是 999

1
2
# passwd in mysql container
mysql:x:999:999::/var/lib/mysql:/bin/bash

而主机上的 999 为 systemd-coredump

1
2
# passwd on host
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin

为什么 percona-xtrabackup 备份容器中的 mysql 显示无权限

1
2
3
2023-07-24T02:47:58.476552-00:00 0 [ERROR] [MY-012592] [InnoDB] Operating system error number 13 in a file operation.
2023-07-24T02:47:58.476735-00:00 0 [ERROR] [MY-012595] [InnoDB] The error means mysqld does not have the access rights to the directory.
2023-07-24T02:47:58.490978-00:00 0 [ERROR] [MY-013861] [InnoDB] Failed to list redo log files in the redo log directory ./#innodb_redo/

因为 percona-xtrabackup 容器内的 mysql 用户又是其它 ID

1
2
3
# passwd in xtrabackup container
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
mysql:x:1001:1001:Default Application User:/home/mysql:/sbin/nologin

可以在 docker run 时指定用户 -u 解决这个问题

1
docker run --rm -u 999:999 --volumes-from [some-mysql] -v ./backup:/backup percona/percona-xtrabackup xtrabackup --backup --datadir=/var/lib/mysql/ --target-dir=/backup --user=user --password=password

如何简单粗暴的在 Vim 中自定义高亮的关键词

当然你可以去改各种 syntax.vim, 但是由于复杂的 source 顺序、优先级等等,并不一定能生效

有没有一种方法简单粗暴的自定义高亮关键词

来了!

vimrc中添加

1
2
3
4
5
augroup myTodo
autocmd!
autocmd Syntax * syntax match myTodo /\v\c(fuck|hbspy)/ containedin=.*Comment
augroup END
highlight link myTodo Todo

REF: https://vi.stackexchange.com/questions/15505/highlight-whole-todo-comment-line

brew 4.0.0 之后运行 doctor 显示

1
2
3
4
5
6
Warning: Some installed kegs have no formulae!
This means they were either deleted or installed manually.
You should find replacements for the following formulae:
pycparser
cffi
erdtree

虽然没什么影响但看着不爽

可以通过brew untap homebrew/core解决

原因是

It removes the local copy of the tap repository (see manpage). This is fine if you do not work on the repository, because the default option since brew 4.0.0 is to fetch formulae information from the JSON API (see 4.0.0 release notes). If you run brew doctor, you should see that the homebrew/core tap has not been updated for a while.

大致就是走 JSON API 了,homebrew/core 也不维护升级了,所以本地那份也别留着了

参考:

用 pip 从源码安装,pyproject.toml 中的包名不能被正确识别,显示为 UNKNOWN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Collecting git+https://github.com/suno-ai/bark.git
Cloning https://github.com/suno-ai/bark.git to /tmp/pip-req-build-t_euvdls
Running command git clone --filter=blob:none --quiet https://github.com/suno-ai/bark.git /tmp/pip-req-build-t_euvdls
Resolved https://github.com/suno-ai/bark.git to commit 97c6019ecdf1a70fdb313835c3bb3f770a0459e4
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: UNKNOWN
Building wheel for UNKNOWN (pyproject.toml) ... done
Created wheel for UNKNOWN: filename=UNKNOWN-0.0.0-py3-none-any.whl size=7276 sha256=a30755a229112b321e0b4ee3f6cc35ef61cbc02bedde64ac4c5c147f51ae64f8
Stored in directory: /tmp/pip-ephem-wheel-cache-54oie7jn/wheels/e6/6d/c2/107ed849afe600f905bb4049a026df3c7c5aa75d86c2721ec7
Successfully built UNKNOWN
Installing collected packages: UNKNOWN
Successfully installed UNKNOWN-0.0.0

其中的一个可能的原因是 pip 版本不够新

1
2
3
4
5
6
7
8
9
10
11
# pip install -U pip
Requirement already satisfied: pip in /usr/lib/python3/dist-packages (22.0.2)
Collecting pip
Downloading pip-23.1.1-py3-none-any.whl (2.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 3.5 MB/s eta 0:00:00
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 22.0.2
Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'pip'. No files were found to uninstall.
Successfully installed pip-23.1.1

更新后正常

1
2
3
4
5
6
7
8
9
Collecting git+https://github.com/suno-ai/bark.git
Cloning https://github.com/suno-ai/bark.git to /tmp/pip-req-build-gsgifvjp
Running command git clone --filter=blob:none --quiet https://github.com/suno-ai/bark.git /tmp/pip-req-build-gsgifvjp
Resolved https://github.com/suno-ai/bark.git to commit 97c6019ecdf1a70fdb313835c3bb3f770a0459e4
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Collecting boto3 (from suno-bark==0.0.1a0)

同理,也有可能是 setuptools 的版本不够新,升级即可

我们赚哪部分钱?

高校的网络管理是各成一派的,我们又不愿意投入研发成本,打造有技术壁垒甚至门槛的产品
结果就是赚辛苦钱

chromium(aarch64)

Kylin Linux Advanced Server 10

chromium 版本仅为 81.0.4044.138

想要编译个新点儿的版本太难了,gcc 仅为 7.3.0

强烈谴责国产操作系统这种只生不养的行为!

  • chromium-headless: 不能只装 headless,rpm 内只有一个 headless_shell,许多本体其实在 chromium 中
  • freetype: 自带的 freetype 会报错 undefined symbol: FT_Palette_Select,需要 kylinos 源中的
  • google-droid-sans-fonts: 解决截图中文乱码问题
1
2
3
4
5
6
7
8
9
cat <<EOT >> /etc/yum.repo.d/kylinos.repo
[kylinos]
name = kylinos
baseurl = http://archive2.kylinos.cn/rpm/kylin/Library/custom/kylin-server/KY10-GFB-aarch64/
enabled = 0
gpgcheck = 0
EOT

dnf install -y --enablerepo=kylinos chromium chromium-headless freetype google-droid-sans-fonts
0%