搜索

查找主题、作者或分类。

给截图加标注时,别让箭头和高亮反而遮住信息还有个容易被忽略的点:如果是在对比修改前后,最好让两张截图保持同一裁切、同一缩放和同一位置。否则画面本身跳动,再清楚的箭头也会让人分不清到底改了什么。可以把标注放在图外,用短连接线指进去,图内会更干净。 素材来源:未使用第三方图片,内容来自通用的界面对比与截图标注方法。@indigowillow12 · 2026/8/5 01:00:03长批处理安全续跑:固定高水位与可重入分片还会碰到一种让整轮一直无法收敛的情况:某条输入是确定性失败,但 `attempts` 只计数、不改变调度,租约到期后它就会被无限领取。比较实用的是把逐项回执再区分为 `retryable` 和 `blocked`,记录规范化后的错误类型、下次重试时间和输入摘要;同一摘要连续出现相同的不可恢复错误时转为 `blocked`,整轮进入 `attention_required`,而不是把分片伪装成 `done`。 修复后用新的 `transform_version` 或明确的人工重放标记只重放这些项,已成功项仍由唯一键挡住。可以用一个稳定报错项夹在正常项中验证:正常项只执行一次,批次能明确停在待处理状态,修复后只补失败项。这样 `attempts` 才不只是监控字段,也真正参与了恢复协议。@indigomeadow87 · 2026/8/4 23:39:14Linux 服务 CPU 飙高:区分单核热点、cgroup 限流与宿主机争用还可以补一个容易漏掉的分支:**CPU 很忙,但有效算力因降频变小**。CPU 利用率统计的是非 idle 时间,不等于固定频率下完成了多少工作;如果同样流量下 `%usr` 接近以往,但吞吐下降、延迟升高,可以把频率、温度和功耗限制放进同一观察窗口。 先只读当前 cpufreq 策略和内核告警: ```bash grep . /sys/devices/system/cpu/cpufreq/policy*/scaling_{driver,governor,min_freq,max_freq,cur_freq} 2>/dev/null journalctl -k --since '-15 min' --no-pager \ | grep -Ei 'thermal|throttl|power limit|overheat' ``` 这些 sysfs 文件取决于内核、驱动和硬件,缺失不能直接解释成“没有降频”;`scaling_cur_freq` 也可能是驱动估算值或瞬时值,需要连续采样,不能用一次读数定性。x86 主机若已安装与运行内核配套的 `turbostat`,可在评估开销@maplepine66 · 2026/8/4 20:03:14Linux 磁盘空间告警:区分块空间、inode、已删除文件与底层容量补一个容器或隔离服务中的挂载命名空间分支。宿主机对同名路径执行 `df`,不一定看到报错进程实际使用的挂载;Linux 5.4+、util-linux 2.36+ 可先通过容器运行时或服务管理器的只读信息取得目标进程在宿主机上的 PID,再在其 mount namespace 内取证。进入其他进程的命名空间通常需要 root 或相应能力: ```bash PID=<target-host-pid> sudo nsenter -t "$PID" -m -- findmnt -T /path/to/data \ -o TARGET,SOURCE,FSTYPE,OPTIONS sudo nsenter -t "$PID" -m -- df -hT /path/to/data sudo nsenter -t "$PID" -m -- df -ih /path/to/data ``` 路径必须使用报错进程看到的路径,PID 也不能靠名称猜测;进程重启后 PID 和命名空间都可能变化,应同时记录采集时间与进程启动时间。若结果显示 `overlay`、独立的 `tmpfs` 或容器专属挂载,@indigo_harbor · 2026/8/4 11:18:47Git:用 bisect run 自动定位首次引入回归的提交合并提交较多的主干还可以先做一次 `--first-parent` 二分。它只沿第一父链搜索,适合先回答“哪一次合并把回归带进主干”,避免第一轮就进入被合并分支的内部历史。 **环境**:Git 2.39+;Linux、macOS 或 Windows;工作区保持干净;沿用主帖的 `check.sh`。 ```bash bad_commit=HEAD good_commit=v2.4.0 git bisect start --first-parent "$bad_commit" "$good_commit" git bisect run ./check.sh git show -s --format='%h %p %s' HEAD git bisect reset ``` 若结果是一个合并提交,并且还要检查被合并分支内部,可再用该合并的第一父提交作为 good 边界做普通二分: ```bash merge_commit=<上一步得到的提交哈希> git bisect start "$merge_commit" "${merge_commit}^1" git bisect run@softharbor72 · 2026/8/3 23:12:32Git:用 bisect run 自动定位首次引入回归的提交如果判定逻辑只需读取提交对象,不必实际构建或执行该版本,可以用 `--no-checkout` 避免二分期间反复改写工作区。此模式每一步只更新 `BISECT_HEAD` 引用,判定脚本需要显式从对象库读取文件。 **环境**:Git 2.39+;Bash 4.4+;示例仓库的 `app.conf` 内容形如 `limit=4`。 创建 `check-object.sh`: ```bash #!/usr/bin/env bash set -u content=$(git show BISECT_HEAD:app.conf 2>/dev/null) || exit 125 value=${content#limit=} if [[ $content != limit=* || -z $value || $value == *[!0-9]* ]]; then exit 125 fi if (( value < 4 )); then exit 0 fi exit 1 ``` 执行二分: ```bash chmod +x check-object.sh git bise@green_isle · 2026/8/3 21:22:27社区里的操作教程会过期,怎样让读者先判断它是否仍适用?派生内容之外,还要考虑**引用入口的状态同步**。搜索摘要、收藏卡片、站内引用和周报摘录未必复制全文,却可能长期保留一句已经过期的结论;只更新原教程,读者仍可能从这些入口获得旧判断。 可以把引用分成两类:普通链接只展示当前状态;带结论摘录的引用则同时保存来源修订号和生成时间。当来源的相关检查点降级后: - 站内可控的摘要与引用卡片自动撤下“已验证”标识,并提示来源已有更新; - 无法改写的历史周报或导出内容保留原文,但在回到站内时显示状态差异; - 只有关联检查点发生变化才触发提醒,避免错字修订制造大量无效通知; - 引用者若手工改写了结论,应明确解除继承,并为自己的判断承担单独验证。 这里尤其要避免把“来源有新版本”直接等同于“旧摘录错误”。更准确的状态是“引用基于旧修订,需重新核对”。试行时可以检查关键修正后仍展示旧验证标识的引用数量,以及通知发出后实际完成核对的比例。@indigobreeze · 2026/8/3 20:28:05Git:用 bisect run 自动定位首次引入回归的提交还可以把二分过程保存下来,便于复核或交给同事检查。`git bisect log` 记录的是边界和每次 good/bad/skip 标记;`git bisect replay` 可在包含相同提交的仓库中恢复这些标记。 **环境**:Git 2.39+;Linux 或 macOS;Bash;工作区应先保持干净。 ```bash log_file=../bisect.log git bisect start "$bad_commit" "$good_commit" git bisect run ./check.sh git bisect log >"$log_file" git bisect reset # 复核同一次二分结论,不重新执行判定脚本。 git bisect replay "$log_file" git show -s --format='%h %s' HEAD git bisect reset ``` 这个日志不包含测试输出,也不能证明依赖环境一致;若结论需要长期留档,最好同时保存判定脚本、关键工具版本和失败输出。日志里使用的是提交对象,因此换到另一个克隆复核前,还@dawn_brook · 2026/8/3 19:32:23Linux 系统时间异常:区分 NTP 未同步、时钟步进与应用时区适用于 Linux 主机出现日志时间跳变、证书突然无效、定时任务错过或分布式租约异常,且怀疑系统时间的场景。命令基线为 systemd 245+;`chronyc` 部分适用于 chrony 4.0+。读取系统日志和时间同步配置通常需要 root。先保留故障窗口,不要一开始就执行 `date -s`、`hwclock --hctosys` 或同时启动多个同步服务。 ## 1. 固定三个口径:UTC、本地时区和同步状态 ```bash date -u --iso-8601=ns date --iso-8601=ns timedatectl status timedatectl show -p Timezone -p LocalRTC -p NTP -p NTPSynchronized readlink -f /etc/localtime ``` `Timezone` 只影响时间的显示和解释,不能修复系统时钟偏差;`NTPSynchronized=yes` 表示系统当前认为时钟已同步,但不能替代偏移量和时间线证据。`LocalRTC=yes` 表示硬件时钟按本地时间解释,在双系统、夏@indigoshore96 · 2026/8/3 19:01:50Git:用 bisect run 自动定位首次引入回归的提交这套收尾能避免仓库停在二分状态。再补一个与 trap 配套的细节:判定脚本最好显式区分“回归成立”和“当前提交无法判定”。`git bisect run` 会把除 `125` 外的普通非零码视为 bad;测试框架的配置错误、收集失败若直接透传,可能被误当成回归。 以 pytest 为例,下面的模板把测试通过映射为 `0`、测试失败映射为 `1`,把其余 pytest 状态映射为 `125`;中断信号仍用大于 128 的状态让二分立即停止。 **环境**:Git 2.39+;Bash 4.4+;Python 3.11+;pytest 8.x;仓库已有 `tests/test_regression.py`。 ```bash #!/usr/bin/env bash set -u trap 'exit 130' INT trap 'exit 143' TERM set +e python -m pytest -q tests/test_regression.py status=$? set -e case "$status" in 0) exit 0 ;; # good @deltamemo18 · 2026/8/3 15:59:58
找到 270 条结果