银河麒麟系统文件夹自动同步设置方法详解
时间:2026-07-11 07:26
银河麒麟系统文件夹自动同步有三种方案:Syncthing实现多设备双向同步;rsync结合inotify提供单向实时推送;ARM架构下可通过KMRE兼容百度网盘APP同步。三种方法均需配置并注意防火墙或SSH免密设置。
第一种:Syncthing——全平台双向同步的利器
这套方案非常适合你手中同时拥有多台麒麟设备,或需要混合Windows/Linux机器协同工作的情况。它无需搭建中心服务器,所有同步逻辑均由本地的Syncthing进程自主协调,配置完成后基本无需人工干预。
具体操作步骤如下:
1. 打开终端,更新软件源并安装Syncthing:
```bash
sudo apt update && sudo apt install syncthing
```
2. 为当前用户启用并启动用户级服务:
```bash
sudo systemctl enable syncthing@$(whoami).service && sudo systemctl start syncthing@$(whoami).service
```
3. 验证服务是否正常运行:
```bash
systemctl --user status syncthing
```
若显示 `Active: active (running)` 则表示成功。随后打开浏览器,访问 `https://127.0.0.1:8384`,即可进入Web管理界面。
4. 在Web界面中,点击“操作→添加本地文件夹”,选择需要同步的目录(例如 `/home/kylin/Documents/sync`),为其设置唯一的文件夹ID(建议使用纯英文加数字,避免空格和中文)。勾选“共享此文件夹”,然后添加目标设备的ID(在另一台设备的Syncthing界面中点击“操作→显示ID”即可获取)。
5. 在目标设备上执行相同操作:点击“添加设备”,填入本机的设备ID和地址(例如 `192.168.1.25:22000`)。保存后两台设备会自动交换密钥,并启动首次全量同步。
**关键提醒:两台设备的防火墙必须开放TCP 22000端口和UDP 21027端口,否则设备之间无法建立连接。**
第二种:rsync + inotify——轻量级单向实时推送方案
如果你只需要单向同步——例如将本地文件夹内容实时推送到NAS或其他麒麟主机上,那么rsync配合inotify的组合比Syncthing更节省资源,且对带宽更友好,因为它仅上传真正变化的部分。
以下提供两种实现方式,选择自己习惯的即可。
**方法一:直接使用inotifywait监听 + rsync脚本**
1. 安装所需工具:
```bash
sudo apt install inotify-tools rsync
```
2. 创建同步脚本,例如 `/home/kylin/bin/auto_sync.sh`,内容如下(请根据实际环境修改源和目标路径):
```bash
#!/bin/bash
SYNC_SRC="/home/kylin/Documents/project"
SYNC_DST="user@192.168.1.100:/srv/samba/backup"
inotifywait -m -e modify,create,delete,move $SYNC_SRC | while read path action file; do
rsync -a vz --delete "$SYNC_SRC/" "$SYNC_DST"
done
```
3. 赋予脚本执行权限:
```bash
chmod +x /home/kylin/bin/auto_sync.sh
```
4. 如需开机自启,可将以下命令添加到 `~/.bashrc` 末尾:
```bash
@reboot /home/kylin/bin/auto_sync.sh &
```
**方法二:通过systemd服务托管,更规范**
1. 创建服务文件 `~/.config/systemd/user/inotify-rsync.service`,内容如下:
```ini
[Unit]
Description=Inotify + Rsync Auto Sync
After=network.target
[Service]
Type=simple
ExecStart=/home/kylin/bin/auto_sync.sh
Restart=always
RestartSec=10
User=kylin
[Install]
WantedBy=default.target
```
2. 重新加载服务配置并启动:
```bash
systemctl --user daemon-reload && systemctl --user enable inotify-rsync.service && systemctl --user start inotify-rsync.service
```
**特别提醒:rsync目标地址中的`user`,必须在远程主机上预先配置好SSH免密登录,否则每次同步都会因密码输入而中断,无法实现自动化。**
第三种:利用KMRE安卓兼容层,通过百度网盘实现同步
此方案有严格的适用条件:仅适用于飞腾、鲲鹏等ARM64架构的银河麒麟系统。核心思路是借助系统自带的安卓兼容环境KMRE,直接运行百度网盘移动版APP,利用其内置的同步引擎实现本地文件夹与云端账号的双向自动同步。
具体操作流程如下:
1. 确认KMRE环境已就绪,执行命令检查路径是否可写:
```bash
ls -ld /var/lib/kmre/data/kmre-1000-long/0-麒麟文件
```
2. 下载百度网盘Android APK(版本建议不低于v12.0),双击安装。
3. 启动APP,登录你的百度账号,在“设置→自动同步”中开启“Wi-Fi下自动上传”,并指定一个同步文件夹路径(例如 `/var/lib/kmre/data/kmre-1000-long/0-麒麟文件/baidu_sync`)。
4. 回到主界面,点击“我的→同步空间”,长按刚才设置的本地文件夹,选择“开启同步”。当图标变成蓝色云朵形状时,表示实时监听已激活。
5. 最后一步,将你需要同步的原始文件夹(例如 `/home/kylin/Pictures`)创建软链接,指向KMRE的映射路径:
```bash
ln -sf /home/kylin/Pictures /var/lib/kmre/data/kmre-1000-long/0-麒麟文件/baidu_sync/pics
```
这样一来,你在 `Pictures` 文件夹中的任何变化,都会通过百度网盘这个“中转站”自动同步到云端。

三种方案各有适用场景:Syncthing通用性最强,适合多设备双向同步;rsync+inotify最轻量,适合单向实时推送;百度网盘方案则胜在操作简便,但仅支持ARM架构。根据你的实际需求选择一种,基本可以做到“一次配置,长期免维护”。