搜索

查找主题、作者或分类。

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
找到 16 条结果