You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需rsync实现两台Debian 9机器的目录增量同步方案咨询

刚好处理过类似的场景,结合你的需求(两台Debian 9机器、只能用SFTP/Samba/WebDAV的哑存储盒、增量同步),给你整理了几个落地性强的方案,都是不需要在存储盒上装任何软件的:

方案一:基于SFTP的增量同步

Debian 9自带的rsync就能配合SFTP完成增量同步,不需要存储盒端有rsync服务——毕竟它是哑设备。核心思路是:机器A把本地目录增量同步到存储盒的SFTP目录,机器B再从存储盒的SFTP目录增量拉取到本地,双向保持一致。

机器A→存储盒的同步步骤

  1. 确认rsync已安装(Debian 9默认自带,没装的话执行:sudo apt install rsync)
  2. 执行增量同步命令:
rsync -avz --delete --progress --rsh="sftp -oPort=22" /path/to/your/local/dir/ sftp-user@storage-box-ip:/remote/sftp/target/dir/

参数解释:

  • -a:归档模式,保留文件权限、时间戳、软链接等所有属性
  • -v:显示详细同步日志,方便排查问题
  • -z:传输时压缩数据,节省带宽
  • --delete:删除存储盒上本地已不存在的文件(可选,根据你是否需要双向严格一致来决定)
  • --rsh="sftp -oPort=22":指定用SFTP作为传输通道,替换rsync默认的SSH;如果存储盒SFTP端口不是22,修改Port值即可

机器B→存储盒的拉取同步步骤

同样用rsync反向拉取:

rsync -avz --delete --progress --rsh="sftp -oPort=22" sftp-user@storage-box-ip:/remote/sftp/target/dir/ /path/to/your/local/dir/
方案二:基于Samba的增量同步

如果存储盒支持Samba,把共享目录挂载到两台Debian机器上,再用rsync同步本地挂载目录,这种方式最直观,效率也高。

挂载Samba共享到机器A

  1. 安装挂载工具:sudo apt install cifs-utils
  2. 创建挂载点:sudo mkdir /mnt/storage-samba
  3. 临时挂载共享目录(替换成你的Samba用户名、密码、存储盒IP和共享名):
sudo mount -t cifs //storage-box-ip/your-share-name /mnt/storage-samba -o username=samba-user,password=samba-pass,vers=3.0
  1. (可选)设置开机自动挂载:编辑/etc/fstab,添加一行:
//storage-box-ip/your-share-name /mnt/storage-samba cifs username=samba-user,password=samba-pass,vers=3.0 0 0

增量同步操作

挂载完成后,机器A同步到存储盒:

rsync -avz --delete --progress /path/to/your/local/dir/ /mnt/storage-samba/

机器B同样挂载Samba共享后,拉取同步:

rsync -avz --delete --progress /mnt/storage-samba/ /path/to/your/local/dir/
方案三:基于WebDAV的增量同步

WebDAV协议推荐用rclone工具,它对WebDAV的支持非常友好,而且原生支持增量同步,Debian 9上安装和配置都很简单。

在两台机器上安装rclone

可以用官方脚本安装最新版:

curl https://rclone.org/install.sh | sudo bash

或者用Debian源安装(版本可能稍旧,但足够满足需求):

sudo apt install rclone

配置rclone连接WebDAV存储盒

在机器A上执行rclone config,按提示完成配置:

  1. 输入n创建新的远程配置
  2. 给远程起个容易识别的名字,比如webdav-storage
  3. 选择存储类型为WebDAV(对应编号,比如选项7)
  4. 输入存储盒的WebDAV地址(比如https://your-storage-box-url/webdav)
  5. 输入WebDAV的用户名和密码
  6. 确认配置无误后保存退出

增量同步命令

机器A同步到存储盒:

rclone sync -P /path/to/your/local/dir/ webdav-storage:/remote-webdav-dir/

参数-P会显示实时同步进度,sync命令会让目标目录和源目录完全一致,只同步变化的文件和目录。

机器B同样配置好rclone后,拉取同步:

rclone sync -P webdav-storage:/remote-webdav-dir/ /path/to/your/local/dir/
额外实用建议
  • 定时自动同步:如果需要定期同步,可以用cron任务。比如在机器A上执行crontab -e,添加一行每天凌晨2点同步的任务:
0 2 * * * rsync -avz --delete --rsh="sftp -oPort=22" /path/to/your/local/dir/ sftp-user@storage-box-ip:/remote/sftp/target/dir/ >> /var/log/sync-a.log 2>&1

机器B同理添加对应的拉取任务,日志文件方便后续排查问题。

  • 大文件优化:rsync和rclone都支持只同步文件的变化部分,不需要重新传输整个大文件,非常适合大文件较多的场景。
  • 安全加固:确保SFTP用默认的加密传输,WebDAV用HTTPS协议,Samba可以配置SMB加密,避免数据传输过程中被窃取。

内容的提问来源于stack exchange,提问作者Kadabash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:36:20