CSR配置字典之FileSync类
更新时间: 2026/09/03
在AtomGit上查看源码

📋 文档信息

项目内容
文档标题FileSync类配置字典
版本v1.1
创建日期2025-05-13
最后更新2026/09/03
维护状态✅ 活跃维护

📋 变更历史记录

文档变更记录

版本发布日期变更类型变更内容影响范围维护人员
v1.02026/05/16修订与model.json同步更新,新增分类标准和同步模式/类型说明FileSync类所有CSR属性bmc_datasync组件组
v1.12026/09/03修订补充混合同步模式和摘要比对/安全接收说明FileSync类所有CSR属性bmc_datasync组件组

🎯 类概览

FileSync 类

属性
类名称FileSync
功能描述文件同步配置类,用于配置需要同步的文件列表、同步模式、强制同步和接收处理方式
所属SIG组hardware
所属组件bmc_datasync
责任人基础服务组
最后更新2026/09/03
状态🟢 正常运行

📊 属性定义详表

FileSync 类 - 必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SyncTypeU810-1-文件同步的类型, 0:自动覆盖,即同步完成后直接覆盖原文件 1:回调通知, 即同步后通过广播信号告知文件已同步配置文件同步完成后的处理方式0CSR软件

FileSync 类 - 可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SyncFileListString[]""String数组-需要同步的文件列表配置需要同步的文件路径["/config/system.json"]CSR软件
SyncModeU800-2-文件同步的模式 0:实时同步 1:周期性同步 2:实时同步且周期性同步配置文件同步触发方式0CSR软件
SyncIntervalU855-60-同步间隔,仅周期性同步时使用,单位:秒,取值范围:5~60配置周期性同步间隔30CSR软件
ForceSyncBooleanfalsetrue/false-文件同步的模式,false:非强制同步,true:强制同步配置是否启用强制同步falseCSR软件

📂 同步模式说明

模式描述
0实时同步文件变化立即同步
1周期性同步按SyncInterval间隔同步
2实时同步且周期性同步文件变化立即同步,并按SyncInterval周期做兜底同步

📂 摘要比对与安全接收

  1. 发送端先生成文件摘要,内容包括类型、大小、修改时间、权限、属主和CRC16。
  2. 接收端先比较摘要;仅在文件不存在、大小或时间变化、类型变化、强制更新或CRC变化时返回NeedSync
  3. 文件内容传输后会再次校验CRC16;目录和软链接也纳入摘要比较范围。
  4. 普通文件大小上限为50MB,超限文件不同步。
  5. 自动覆盖模式先写入临时文件并恢复元数据,校验通过后替换或复制到正式文件;原路径不存在或文件类型变化时使用原子替换;软链接先创建临时链接再替换。
  6. 回调通知模式将文件写入/dev/shm/bmc_datasync/<Identifier>临时目录,并广播信号通知业务组件处理;临时文件10分钟未更新会被清理。

📂 同步类型说明

类型描述
0自动覆盖同步完成后直接覆盖原文件
1回调通知同步后通过广播信号告知文件已同步

📂 分类标准

硬件属性

  • 定义:与硬件特性和物理参数直接相关的属性

  • 特点:无

  • 示例:无


软件属性

  • 定义:用于逻辑控制和软件管理的参数

  • 特点:由CSR配置管理,用于文件同步逻辑控制

  • 示例SyncFileListSyncModeSyncIntervalForceSyncSyncType


📝 配置示例

实时文件同步(自动覆盖)

json
{
  "FileSync": {
    "SyncFileList": ["/config/system.json", "/config/network.json"],
    "SyncMode": 0,
    "ForceSync": false,
    "SyncInterval": 5,
    "SyncType": 0
  }
}

周期性文件同步(回调通知)

json
{
  "FileSync": {
    "SyncFileList": ["/data/backup.db", "/data/config.xml"],
    "SyncMode": 1,
    "ForceSync": false,
    "SyncInterval": 30,
    "SyncType": 1
  }
}

🔧 使用指南

配置步骤

  1. 配置SyncFileList:定义需要同步的文件路径列表

  2. 配置SyncMode:选择实时、周期或实时且周期模式

  3. 配置SyncInterval:周期性同步时设置间隔(5-60秒)

  4. 配置SyncType:选择同步完成后的处理方式

注意事项

  • 实时同步 (0):文件变化立即触发同步

  • 周期性同步 (1):按固定间隔同步,节省带宽

  • 实时且周期 (2):兼顾实时性和周期性兜底,适用于inotify事件偶发丢失的场景

  • 自动覆盖 (0):直接替换目标文件,快速但可能丢失中间状态

  • 回调通知 (1):通知应用层处理,可进行额外处理逻辑

故障排查

  • 文件未同步:检查SyncFileList路径是否正确

  • 文件重复传输:确认两端文件的修改时间和CRC是否稳定,避免业务持续改写时间戳

  • 同步失败:检查目标节点可达性和SyncType配置

  • 回调未触发:确认SyncType=1,检查广播信号监听