银河麒麟v10本身无文件同步频率配置项,需通过上层工具实现:cron适用于定时批量同步(如每30分钟),systemd timer支持秒级精确触发(如每15秒),inotifywait+rsync实现事件驱动实时同步,还可调优内核脏页参数以改善数据落盘及时性。

银河麒麟V10系统本身不提供“文件同步频率”这一独立配置项,因为文件同步不是内核原生服务,而是由上层工具(如rsync、inotify+rsync、systemd timer或cron)驱动的行为;修改频率实际是调整这些工具的触发周期,而非修改系统级参数。
用 cron 设置 rsync 同步间隔
这是最常用、最可控的方式,适用于服务器与客户端间定时批量同步场景。
第一步:确认 rsync 已安装且可执行:sudo dnf install -y rsync
第二步:编写同步脚本,例如 /usr/local/bin/sync-to-server.sh:
#!/bin/bash
rsync -avz --delete /home/user/data/ user@192.168.10.100:/data/backup/
第三步:赋予执行权限:sudo chmod +x /usr/local/bin/sync-to-server.sh
第四步:编辑当前用户 crontab:crontab -e
第五步:添加一行,实现每30分钟同步一次:【*/30 * * * * /usr/local/bin/sync-to-server.sh >/dev/null 2>&1】
注意:星号之间不能有空格,路径必须写绝对路径,重定向 >/dev/null 2>&1 可避免邮件堆积。
用 systemd timer 实现秒级精确同步
当需要比 cron 更高精度(如每15秒、每47秒)或需与系统服务生命周期绑定时,systemd timer 是更优选择。
方法一:创建同步脚本 /usr/local/bin/force-rsync-sync.sh
#!/bin/bash
rsync -a --delete /opt/app/logs/ /backup/logs/
sudo chmod +x /usr/local/bin/force-rsync-sync.sh
方法二:创建 timer 单元文件 /etc/systemd/system/rsync-15s.timer
[Unit]
Description=Run rsync every 15 seconds
[Timer]
OnBootSec=30s
OnUnitActiveSec=15s
AccuracySec=1s
[Install]
WantedBy=timers.target
方法三:创建对应 service 文件 /etc/systemd/system/rsync-15s.service
[Unit]
Description=Sync logs via rsync
[Service]
Type=oneshot
ExecStart=/usr/local/bin/force-rsync-sync.sh
RemainAfterExit=yes
方法四:启用并启动 timer:sudo systemctl daemon-reload && sudo systemctl enable --now rsync-15s.timer
这一步执行后,timer 立即生效,无需重启系统。
用 inotifywait + rsync 实现事件驱动式同步
适合对实时性要求高、但又不想轮询浪费资源的场景,比如开发目录、日志目录或配置热更新目录。
先安装 inotify-tools:sudo dnf install -y inotify-tools
编写监听脚本 /usr/local/bin/inotify-rsync.sh:
#!/bin/bash
inotifywait -m -e modify,create,delete,move --format '%w%f' /var/www/html/ | while read file; do
rsync -a --delete /var/www/html/ user@192.168.10.101:/var/www/mirror/
done
赋予执行权限:sudo chmod +x /usr/local/bin/inotify-rsync.sh
设置开机自启:sudo systemctl enable --now inotify-rsync.service(需配套编写 service 文件)
【注意:inotifywait 不会自动去重,高频连续修改可能触发多次 rsync,建议在脚本中加入 sleep 0.5 或使用 --exclude 参数过滤临时文件】
调整内核脏页刷盘节奏以影响底层同步感知
虽然不直接控制 rsync 频率,但会影响文件写入磁盘的时机,间接改变 sync() 或 rsync 调用时的数据可见性。
临时调小脏页过期时间,让修改更快落盘:sudo sysctl vm.dirty_expire_centisecs=1000
临时收紧后台回写阈值:sudo sysctl vm.dirty_background_ratio=5
永久生效需写入 /etc/sysctl.conf,并运行 sudo sysctl -p
该设置对 USB 设备、NFS 挂载点或低配终端尤其有效,避免 rsync 同步到“尚未真正写入”的数据。











