Ubuntu 文件同步的实用方案
一、常用方案速览
二、方案一 rsync 定时或手动增量同步
sudo apt-get install rsyncrsync -a --delete /src/ /dst/rsync -avz -e ssh --delete /src/ user@host:/dst/crontab -e*/30 * * * * /usr/bin/rsync -a --delete /src/ user@host:/dst/ >> /var/log/rsync.log 2>&1三、方案二 rsync + inotify 近实时同步
sudo apt-get install rsync inotify-toolschmod +x sync.shnohup ./sync.sh >> /var/log/sync.log 2>&1 &#!/usr/bin/env bash
SOURCE_DIR="/src"
DEST_DIR="user@host:/dst"
inotifywait -m -e modify,create,delete,move --format '%w%f' "$SOURCE_DIR" | while IFS= read -r file; do
echo "$(date '+%F %T') change detected: $file"
rsync -avz -e ssh --delete "$SOURCE_DIR/" "$DEST_DIR/"
done
四、方案三 Syncthing 去中心化持续同步
sudo apt install syncthingsystemd 或 Docker 部署,便于开机自启与后台运行五、方案四 双向同步与网络共享
sudo apt-get install unison~/.unison/default.prf 指定两个目录与同步策略unison /path1 /path2sudo apt install nfs-kernel-server,编辑 /etc/exports 导出目录;客户端 sudo mount server:/share /mntsudo apt install samba,编辑 /etc/samba/smb.conf 配置共享;客户端可挂载或图形文件管理器访问