CSR配置字典之FileSync类
更新时间: 2026/09/03
在AtomGit上查看源码📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | FileSync类配置字典 |
| 版本 | v1.1 |
| 创建日期 | 2025-05-13 |
| 最后更新 | 2026/09/03 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2026/05/16 | 修订 | 与model.json同步更新,新增分类标准和同步模式/类型说明 | FileSync类所有CSR属性 | bmc_datasync组件组 |
| v1.1 | 2026/09/03 | 修订 | 补充混合同步模式和摘要比对/安全接收说明 | FileSync类所有CSR属性 | bmc_datasync组件组 |
🎯 类概览
FileSync 类
| 属性 | 值 |
|---|---|
| 类名称 | FileSync |
| 功能描述 | 文件同步配置类,用于配置需要同步的文件列表、同步模式、强制同步和接收处理方式 |
| 所属SIG组 | hardware |
| 所属组件 | bmc_datasync |
| 责任人 | 基础服务组 |
| 最后更新 | 2026/09/03 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
FileSync 类 - 必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
SyncType | U8 | 1 | 0-1 | - | 文件同步的类型, 0:自动覆盖,即同步完成后直接覆盖原文件 1:回调通知, 即同步后通过广播信号告知文件已同步 | 配置文件同步完成后的处理方式 | 0 | CSR | 软件 |
FileSync 类 - 可选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
SyncFileList | String[] | "" | String数组 | - | 需要同步的文件列表 | 配置需要同步的文件路径 | ["/config/system.json"] | CSR | 软件 |
SyncMode | U8 | 0 | 0-2 | - | 文件同步的模式 0:实时同步 1:周期性同步 2:实时同步且周期性同步 | 配置文件同步触发方式 | 0 | CSR | 软件 |
SyncInterval | U8 | 5 | 5-60 | - | 同步间隔,仅周期性同步时使用,单位:秒,取值范围:5~60 | 配置周期性同步间隔 | 30 | CSR | 软件 |
ForceSync | Boolean | false | true/false | - | 文件同步的模式,false:非强制同步,true:强制同步 | 配置是否启用强制同步 | false | CSR | 软件 |
📂 同步模式说明
| 值 | 模式 | 描述 |
|---|---|---|
| 0 | 实时同步 | 文件变化立即同步 |
| 1 | 周期性同步 | 按SyncInterval间隔同步 |
| 2 | 实时同步且周期性同步 | 文件变化立即同步,并按SyncInterval周期做兜底同步 |
📂 摘要比对与安全接收
- 发送端先生成文件摘要,内容包括类型、大小、修改时间、权限、属主和CRC16。
- 接收端先比较摘要;仅在文件不存在、大小或时间变化、类型变化、强制更新或CRC变化时返回
NeedSync。 - 文件内容传输后会再次校验CRC16;目录和软链接也纳入摘要比较范围。
- 普通文件大小上限为50MB,超限文件不同步。
- 自动覆盖模式先写入临时文件并恢复元数据,校验通过后替换或复制到正式文件;原路径不存在或文件类型变化时使用原子替换;软链接先创建临时链接再替换。
- 回调通知模式将文件写入
/dev/shm/bmc_datasync/<Identifier>临时目录,并广播信号通知业务组件处理;临时文件10分钟未更新会被清理。
📂 同步类型说明
| 值 | 类型 | 描述 |
|---|---|---|
| 0 | 自动覆盖 | 同步完成后直接覆盖原文件 |
| 1 | 回调通知 | 同步后通过广播信号告知文件已同步 |
📂 分类标准
硬件属性
定义:与硬件特性和物理参数直接相关的属性
特点:无
示例:无
软件属性
定义:用于逻辑控制和软件管理的参数
特点:由CSR配置管理,用于文件同步逻辑控制
示例:
SyncFileList、SyncMode、SyncInterval、ForceSync、SyncType
📝 配置示例
实时文件同步(自动覆盖)
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
}
}🔧 使用指南
配置步骤
配置SyncFileList:定义需要同步的文件路径列表
配置SyncMode:选择实时、周期或实时且周期模式
配置SyncInterval:周期性同步时设置间隔(5-60秒)
配置SyncType:选择同步完成后的处理方式
注意事项
实时同步 (0):文件变化立即触发同步
周期性同步 (1):按固定间隔同步,节省带宽
实时且周期 (2):兼顾实时性和周期性兜底,适用于inotify事件偶发丢失的场景
自动覆盖 (0):直接替换目标文件,快速但可能丢失中间状态
回调通知 (1):通知应用层处理,可进行额外处理逻辑
故障排查
文件未同步:检查SyncFileList路径是否正确
文件重复传输:确认两端文件的修改时间和CRC是否稳定,避免业务持续改写时间戳
同步失败:检查目标节点可达性和SyncType配置
回调未触发:确认SyncType=1,检查广播信号监听