私は(現在)3つのモバイルUSB大容量記憶装置(フラッシュドライブ、携帯電話、eリーダー)を持っています。私のすべての文書(履歴書、パスポート、研究論文、ソースコードなど)の最新バージョンを常に持っていると思います。
私のファイルは頻繁に変更されるため、毎日手動でコピーすることは不可能です。理想的には、フラッシュドライブ(たとえば)を接続し、コンピュータが自動的にそれを認識、マウント、同期、および削除するようにしたいと思います。
次の機能は「素晴らしいでしょう」:
- GUI
- 同期が開始/停止されたときにXorg / KDE / Gnomeを介して通知されます。
- そして、双方向同期も可能です。しかし、これは優先順位ではありません。
これに関連するいくつかの質問を見つけました。
- Macからフラッシュドライブにファイルを自動的に同期しますか?
- USBデバイスプラグインでカスタムスクリプトを実行するには?
- USBデバイスが接続されたら、どのように通知を受けますか?
- USBデバイスが接続されているときにシェルスクリプトを実行する方法
しかし、それらのどれも私の質問に完全に答えることはできませんでした。十分な時間があれば、udev
自分自身を使って何かを組み立てることができると思いました。rsync
しかし、私は車輪を再発明したくありません。そして今は無駄にする必要がない時間だ。理想的には、既存のソリューションを使用したいが見つかりません。
それでは、このようなものを設定する最速の方法は何ですか?
答え1
udev / rsyncパスを使用できますが、いくつかのスクリプトが必要です。確認するイノティファイツールそれにもかかわらず、これはファイルシステムの変更に関する通知をアプリケーションに送信するのに役立ちます。
私はローカルファイルシステムを同期するための3つのGUI(クイックセットアップ)ツールを知っています。
調和成熟し、よく文書化されています。モニタリング方法は少し古いですが、inotifyで自動化できます(まだいくつかのスクリプトが必要です)。
ディレクトリ同期プロフリーソフトウェアのように聞こえませんが、そうです。
無料ファイル同期最近発売されましたが有望に見えます。ディレクトリ比較をバッチとして保存し、外部ドライブのマウントなどのイベント同期をトリガーするオプションがあります。
答え2
@dartonwの良い答えに加えて、simlpe双方向同期にbashスクリプトを使用したい場合は、次のようにすることもできます。同期この方法
#!/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