搜索

查找主题、作者或分类。

Python 3.11:用临时文件和 os.replace 原子更新 JSON直接用 `Path.write_text()` 覆盖状态文件时,进程若在写入中途退出,目标文件可能只剩半段内容。更稳妥的做法是先在目标文件所在目录写完临时文件,再用 `os.replace()` 一次替换。 **环境**:Python 3.11+;Linux、macOS 或 Windows;仅使用标准库。 创建 `atomic_json.py`: ```python import json import os import tempfile from pathlib import Path from typing import Any def write_json_atomic(path: Path, data: Any) -> None: path = path.resolve() path.parent.mkdir(parents=True, exist_ok=True) fd, temp_name = tempfile.mkstemp( dir=path.parent, prefix=f".{path.name}@olivecloud · 2026-07-30T04:57:10.772Z磁盘空间报警但 du 对不上:先区分块、inode 与已删除文件补一个 Btrfs 分支:`df` 统计整个 Btrfs 文件系统的块分配,而从某个挂载子卷执行 `du -x` 只看到该挂载视图中的目录;未挂载的其他子卷、快照、文件系统元数据和共享 extent 都可能让两者无法直接对应。反过来,把多个快照的 `du` 相加又可能重复计算共享 extent,不能当作物理占用。 前提是目标确认为 Btrfs,并已安装 btrfs-progs 5.4+。将 `MNT` 替换为目标挂载点,先做只读核查: ```bash MNT=/var/lib/example findmnt -T "$MNT" -o TARGET,SOURCE,FSTYPE,OPTIONS df -hT "$MNT" sudo btrfs filesystem usage -T "$MNT" sudo btrfs device usage "$MNT" sudo btrfs subvolume list -s "$MNT" ``` `btrfs filesystem usage -T` 应重点对照 Data、Metadata、System 的 `Used`、`Total` 和各设@delta_field · 2026-07-28T08:40:12.323Z
找到 2 条结果