GNU/Linux >> Linux の 問題 >  >> Linux

Linux:一方向でファイルを継続的に同期する

inotifywait も使用できます inotify-tools パッケージから。

inotifywait -r -m -e close_write --format '%w%f' /tmp | while read MODFILE
do
    echo need to rsync $MODFILE ...
done

Lsyncd はこれに適したソリューションです。

<ブロック引用>

Lsyncd は、ローカル ディレクトリ ツリーのイベント モニター インターフェイス (inotify または fsevents) を監視します。数秒間イベントを集約して結合し、1 つ (または複数) のプロセスを生成して変更を同期します。デフォルトでは、これは rsync です。したがって、Lsyncd は軽量のライブ ミラー ソリューションであり、インストールが比較的簡単で、新しいファイル システムやブロック デバイスを必要とせず、ローカル ファイルシステムのパフォーマンスを妨げません。

要するに、他の回答で示唆されているように、同じ種類のツール (inotify と rsync) を使用してジョブを実行しますが、シェル スクリプトに慣れていない人にとっては簡単にセットアップできます。


私のコードはリモートボックスで実行する必要があり、ローカルマシンでコードを書くので、これがたくさん必要です。ローカル フォルダーを継続的に監視し、それらをリモートまたはローカル フォルダーに同期するために使用できる便利なツールを見つけました:https://github.com/axkibe/lsyncd

ssh 経由でローカル ディレクトリをリモート マシンと継続的に同期する簡単なコマンドは次のとおりです。

lsyncd -log all -nodaemon -rsyncssh <local_path> <user>@<ip> <remote_path>

他の rsync コマンドと同様に、コマンドを実行する前にフォルダー パスを正しく指定し、確認してください。正しい宛先ディレクトリを指定できなかったため、リモート マシンの 1 つを殺してしまいそうになりました。リモート パスを見逃さないようにしてください。また、自分が何をしているのかわからない限り、「/」を使用しないでください。


Linux
  1. Linux で SCP コマンドを使用してファイルを安全に転送する方法

  2. Windows PC からリモート Linux サーバーに rsync を使用する方法は?

  3. Linuxでファイルを再帰的にカウントする高速な方法

  1. Linuxでファイルとディレクトリを隠す簡単な方法

  2. Linuxでローカルディレクトリとリモートディレクトリを同期する方法

  3. SCP Linuxコマンド–リモートからローカルへのSSHファイル転送方法

  1. Linuxでファイルを見つける方法

  2. SCP と Rsync を使用して Linux でファイルを転送する方法

  3. ローカル エディターを使用したリモート編集 (Linux)