跳到正文

网络文件系统

避免共享状态与并发写入破坏任务记录。

区分项目文件与应用状态

共享项目目录适合协作访问文件;客户端数据库、锁、缓存和运行套接字有不同要求。不要因为项目能在 NFS 上读取,就把整个 Lime 用户数据目录共享给多台主机。

SQLite 的 WAL 模式依赖同机协调,跨主机共享数据库可能损坏状态。文件系统能持久保存 JSONL,也不意味着数据库中的全部状态能由记录文件恢复。

检查共享主目录

  • 列出使用共享目录的桌面应用、CLI、远程服务和计划任务。
  • 请存储管理员验证挂载类型、跨主机锁、权限、可用空间和断连行为。
  • 把任务状态与诊断数据放在执行主机的私有本地磁盘;项目和交付物按授权保留在共享存储。
  • 不要复制未核实的上游 NFS 迁移命令、SQLite 目录变量或管理员存储字段。

调整现有目录

  • 结束在途任务并保存输出;停止全部可能写入同一状态目录的进程。
  • 备份完整状态目录及附属数据库文件,保留原始权限和版本信息。
  • 按 Lime 当前支持的数据目录机制迁移到单机私有位置,先在副本验证。
  • 从另一条独立客户端进程检查历史可读、任务可继续,再开放正常使用。

处理诊断日志与批处理

日志和数据库分开规划。将日志放在私有本地磁盘可以减少共享存储流量,但必须使用当前版本支持的配置。每个无人值守作业使用独立运行目录与凭据范围,交付物写入获准的持久位置。

bash
lime exec --sandbox read-only --ask-for-approval never -o "build-summary.md" "概述当前仓库的构建步骤,只读取文件。"

最终回复文件与完整会话状态不同。需要恢复任务时,保留受支持的任务记录;仅需结果时,也要记录退出状态和验证结果。

排查锁与完整性异常

  • 出现无法独占打开、锁超时或损坏错误时,先停止其他写入者,保存原始错误和文件副本。
  • 确认错误发生在项目文件、应用数据库还是日志;分别检查目录位置和锁语义。
  • 不反复启动多个客户端碰运气,不直接删掉 WAL、journal 或锁文件。
  • 在副本中制定恢复计划,完整性通过后再由负责人执行恢复。