ローカルファイルが更新されたことを報告するには、rsyncをインポートします。

ローカルファイルが更新されたことを報告するには、rsyncをインポートします。

リモートホストからローカルホストにインポートするためにrsyncを実行しています。

rsync -a --update user@remotehost:/files/ ~/files/

Javaでコマンドを実行し、終了コードを使用してコマンドが成功したことを確認します。

ローカルファイルが変更された場合は、コマンドレポートを再受信できますか?終了コードで報告するのが理想的です。

ベストアンサー1

rsync終了コードではこれは不明です。終了コードには、事前定義された意味が文書化されています。

私の考えでは、Javaでこれを行う最善の方法は、更新され--info=NAMEたディレクトリとファイル名のみを参照するオプションを追加することです。

rsync -a --info=NAME --update user@remotehost/files/ ~/files/

これにより、更新されたファイルとディレクトリの名前が1行に1つずつ標準出力(fd = 0)に印刷されます。

次に出力を収集し、rsync文字列の改行数を計算します。

出力を収集する良い方法はこの答えで見つけることができると思いますjavaが、まだ試していません。https://stackoverflow.com/a/9048519/5484716

するいいえ標準出力と標準エラーストリームを使用するredirectErrorStreamか、別の方法で組み合わせます。これにより、エラーメッセージは更新されたファイルと見なされますが、これは望ましい結果ではありません。

おすすめ記事