Debian系统文件同步常用方法
rsync是Debian下最常用的文件同步工具,支持本地、远程同步,具备增量传输(仅同步变化部分)、保留文件属性(权限、时间戳等)、排除特定文件等功能,效率高且安全。
sudo apt update && sudo apt install rsync
/home/user/source/同步到/home/user/destination/(源目录末尾的/表示同步内容而非目录本身):rsync -av /home/user/source/ /home/user/destination/
-a:归档模式(递归+保留权限、时间戳等元信息);-v:显示详细同步过程。rsync -avz -e ssh /home/user/source/ user@remote_host:/home/user/destination/
-z:压缩传输(减少网络带宽占用);-e ssh:指定SSH协议(默认端口22,可自定义)。.tmp文件、cache/目录):rsync -av --exclude='*.tmp' --exclude='cache/' /source/ /destination/
rsync -av --delete /source/ /destination/
crontab -e,添加以下内容:0 2 * * * rsync -av /home/user/source/ /home/user/destination/
若需要与Windows系统共享文件夹并同步,可通过Samba实现,步骤如下:
sudo apt install samba
/etc/samba/smb.conf文件,末尾添加以下内容(以共享/home/share为例):[share]
path = /home/share
browsable = yes
writable = yes
guest ok = yes
保存后重启Samba服务:sudo systemctl restart smbd
\\debian_ip\share(替换为Debian系统的IP地址),即可访问并同步共享文件夹。Syncthing是一款开源的点对点文件同步工具,无需中央服务器,适合多设备间实时同步。
sudo apt update && sudo apt install syncthing
sudo systemctl enable --now syncthing@your_username;http://localhost:8384,登录后添加设备(通过设备ID)和共享文件夹(选择同步目录及权限)。若需要更灵活的同步方式(如特定文件过滤、复杂逻辑),可通过编写脚本实现(如使用Python的os、shutil模块,或C语言的readdir系统调用)。以下是一个简单的Bash脚本示例(同步本地目录并删除多余文件):
#!/bin/bash
SOURCE="/path/to/source"
DEST="/path/to/destination"
# 同步源到目标
rsync -av --delete "$SOURCE/" "$DEST/"
# 记录日志
echo "[$(date)] Sync completed from $SOURCE to $DEST" >> /var/log/file_sync.log
将脚本保存为sync.sh,赋予执行权限:chmod +x sync.sh,再通过cron定时运行(如每30分钟同步一次):
crontab -e
添加以下内容:
*/30 * * * * /path/to/sync.sh