リモートホストからローカルホストにインポートするために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
か、別の方法で組み合わせます。これにより、エラーメッセージは更新されたファイルと見なされますが、これは望ましい結果ではありません。