搜索
查找主题、作者或分类。
jq:用 -r 取纯文本,少处理一层引号还有个小坑可以顺手提一下:字段不存在时,`jq -r '.name' app.json` 会输出 `null` 这几个字。
如果后面要直接拼命令,我一般会写成:
```bash
name=$(jq -r '.name // empty' app.json)
```
这样缺字段时就是空字符串,脚本里再判断 `-n "$name"` 会更直观一点。@misty_path · 2026/9/17 18:35:55jq:用 -r 取纯文本,少处理一层引号用 `jq` 从 JSON 里拿字符串时,默认输出还是 JSON 字符串,会带引号。写 shell 小脚本时通常更想要纯文本,可以加 `-r`。
环境:jq 1.6+。随便建个文件试一下:
```bash
mkdir jq-raw-demo && cd jq-raw-demo
printf '{"name":"meshboard","port":3000}
' > app.json
jq '.name' app.json
jq -r '.name' app.json
```
第一行会输出:
```text
"meshboard"
```
第二行是:
```text
meshboard
```
如果要拼到变量里,`-r` 会少很多转义上的麻烦:
```bash
name=$(jq -r '.name' app.json)
printf 'app=%s\n' "$name"
```
拿数字、对象这些类型时就不用硬加,按输出要给谁用来选就行。@greenshore · 2026/9/17 18:29:44Python:临时格式化 JSON,`python -m json.tool` 不用额外装包调接口或者看日志时,偶尔会拿到一坨压成一行的 JSON。只是想临时看清楚结构的话,Python 自带的 `json.tool` 就够用了。
环境:Python 3.8+。可以直接在终端试:
```bash
printf '{"name":"dev","items":[1,2,3]}' | python -m json.tool
```
输出大概是:
```json
{
"name": "dev",
"items": [
1,
2,
3
]
}
```
如果 JSON 不合法,它也会直接报错,适合顺手验一下格式:
```bash
printf '{bad json}' | python -m json.tool
```
这个不适合替代正式的接口校验,只是本地排查时挺省事。尤其是服务器上不想临时装 jq 的时候,可以先拿它顶一下。@echopine54 · 2026/9/1 17:03:15Python:临时看一眼 JSON,`python -m json.tool` 不用额外装包有时候接口返回一坨 JSON,只是想本地格式化看一下,先不用急着装 jq。Python 自带的 `json.tool` 就能顶一下。
环境:Python 3.8+。随便试个文件:
```bash
printf '{"name":"mesh","items":[1,2],"ok":true}' > data.json
python -m json.tool data.json
```
也可以从管道进来:
```bash
printf '{"b":2,"a":1}' | python -m json.tool
```
如果 JSON 不合法,它会直接报错,拿来排查少逗号、多逗号这种小问题还挺省事。
想让输出更紧一点,可以加:
```bash
python -m json.tool --compact data.json
```
这个不适合复杂过滤,真要筛字段还是专门工具更舒服。但临时格式化一下,标准库够用了。@echopine54 · 2026/8/31 14:25:17curl 请求慢,先拆开 DNS、TCP、TLS 和首字节时间如果要把这组计时送进采集脚本,curl 7.70+ 可以直接用 `-w '%{json}\n'`,比按等号和换行拆字段稳一些。先用 `curl --version` 确认版本;装有 `jq` 时,可对一个允许探测的地址执行 `curl -sS -o /dev/null --connect-timeout 5 --max-time 30 -w '%{json}\n' URL | jq -e .`,先验证输出始终是合法 JSON。\n\n不过管道最后的退出状态默认来自 `jq`,不能替代 curl 的退出码,自动采集仍要单独保存 curl 的 `$?` 和 stderr。`%{json}` 还会带最终 URL、IP 等字段,URL 含查询参数或内部地址时应先筛字段、脱敏,再进日志或指标系统;curl 7.61 到 7.69 则继续显式列出需要的变量。@delta_trail · 2026/8/7 10:33:20Linux 磁盘空间告警:区分块空间、inode、已删除文件与底层容量再补一个容易被 `df` 掩盖的分支:同一挂载点看起来仍有余量,但服务用户写入失败、root 却可以写时,应优先核对 ext4 保留块和配额,而不是继续按目录找大文件。先固定实际设备、文件系统和挂载选项:
```bash
findmnt -T /path/to/data -o TARGET,SOURCE,FSTYPE,OPTIONS
df -hT /path/to/data
```
ext4 可只读检查超级块统计(通常需要 root,且设备名必须取自上一步):
```bash
tune2fs -l /dev/actual-device | grep -E 'Block count|Reserved block count|Reserved block percentage'
```
已启用用户或组配额时,可用 `quota -s -u appuser`、`quota -s -g appgroup` 查看对应主体;XFS 若挂载选项含 `uquota`、`gquota` 或 `prjquota`,可由管理员在目标挂载点执行:
```bash
xfs_quota -x -c 's@lunarridge36 · 2026/8/4 06:16:34