如何与插入的 USB 大容量存储设备自动同步?

如何与插入的 USB 大容量存储设备自动同步?

我(目前)有三个移动 USB 大容量存储设备(闪存驱动器、手机、电子阅读器)。我希望始终随身携带所有文件的最新版本(例如简历、护照、研究论文、源代码等)

我的文件经常更改,因此每天手动复制它们是不可行的。理想情况下,我想插入我的闪存驱动器(例如),让我的电脑自动识别它、安装它、同步它并卸载它。

以下功能“那就太好了”:

  • 图形用户界面
  • 同步开始/停止时通过 Xorg/KDE/Gnome 发出通知。
  • 而且,为什么不呢:双向同步。但这不是优先事项。

我发现了一些与此相关的问题:

但他们都没有完全回答我的问题。我想如果有足够的时间,我可以自己使用udev、等将一些东西组合在一起。rsync但我不想重新发明轮子。而且时间是我现在不需要浪费的。理想情况下,我想使用现有的解决方案,但我找不到。

那么,设置此类内容的最快方法是什么?

答案1

您可以使用 udev/rsync 路线,但需要编写一些脚本。查看inotify 工具无论如何,这些对于向应用程序发送文件系统更改通知非常有用。

我知道三种用于同步本地文件系统的 GUI(快速设置)工具。

  1. 齐奏是成熟且有据可查的。监控方法有点过时,但可以通过 inotify 实现自动化(仍然需要一些脚本)。

  2. 目录同步专业版听起来不像免费软件,但确实如此。

  3. 免费文件同步最近发布,但看起来很有前途。它可以选择将目录比较保存为批处理并触发事件同步,例如安装外部驱动器。

答案2

除了 @dartonw 的良好答案之外,如果您喜欢使用 bash 脚本进行 simlpe 双向同步,您还可以使用同步这边走

#!/bin/sh
exitcode=1 
#do check if usb flash is mounted
if test -e '/your_path_to_usb_mountpoint';then 
exitcode=0
#from folder to usb if the files are newers
rsync -avun --inplace  /your_folder_wich_you_want_to_syncronize/ /your_path_to_usb_mountpoint ;
#from usb to folder if the files are newers
rsync -avun --inplace /your_path_to_usb_mountpoint/ /your_folder_wich_you_want_to_syncronize/ 
fi 
#if the flash is not mounted exit with exitcode=1 
exit $exitcode

相关内容