
以下からファイルを移動したいと思います。サーバー1到着サーバー2。
プロデューサーサーバー1引き続きファイルを生成し、消費者はサーバー2引き続き作業する予定です。
次のシェルスクリプトを使用してファイルをコピーできます。
rsync path/*.txt server2:/path
ターゲット上のファイルの拡張子(サーバー2)が処理されると.txtから.doneに変更されるため、コマンドを再実行するとファイルがコピー先にコピー(および処理)されます。
そのため、元のファイルを削除(または名前変更または移動)して、再送信されないようにしたいと思います。
rsync
--remove-source-filesオプションがないバージョン2.6.3を使用しています。
私はシェルスクリプトが初めてなので、例を挙げてください。
答え1
rsync
--remove-source-files
オプションの使用
~からman rsync
--remove-source-files
This tells rsync to remove from the sending side the files
(meaning non-directories) that are a part of the transfer and
have been successfully duplicated on the receiving side.
オプションを使用すると、いつでも変更せずにテスト実行を実行できます。出力が好きな場合は、オプションなしで--dry-run
最終コマンドを実行してください。--dry-run
たとえば、次のようにrsync --remove-source-files -options /path/to/src/ computerB:/path/to/dest
なります。これ続行する前に質問してください。
答え2
-pageによると、次のものが利用可能でなけれman
ばなりません。--remove-source-files
rsync
--ソースファイルの削除
これは送信の一部であり、受信側から正常にコピーされたファイル(つまりディレクトリではなく)を送信側から削除するようにrsyncに指示します。