情報をファイルにrsync


0

rsyncを使用して、あるサーバーから別のサーバーにデータをバックアップします。これはうまく機能します。

rsync -aktvu -e 'ssh -p 22' --modify-window=1 --progress $SOURCE $USER@$SERVER:$DESTINATION

出力には、コピーされた内容が表示されます。

building file list ...
11 files to consider
./
server/

server/myfile.txt
        3152 100%    0.00kB/s    0:00:00 (xfer#1, to-check=8/11)
server/test/
server/test/logfile01
        8266 100%    7.88MB/s    0:00:00 (xfer#2, to-check=6/11)
server/test/logfile07
       41004 100%   39.10MB/s    0:00:00 (xfer#3, to-check=5/11)
server/test/logfile08
         318 100%  310.55kB/s    0:00:00 (xfer#4, to-check=4/11)
server/test/logfile09
        8262 100%    7.88MB/s    0:00:00 (xfer#5, to-check=3/11)
server/test/logfile30
       40325 100%   12.82MB/s    0:00:00 (xfer#6, to-check=2/11)
server/test/logfile31
         792 100%  193.36kB/s    0:00:00 (xfer#7, to-check=1/11)
server/test/logfile32
        3152 100%  769.53kB/s    0:00:00 (xfer#8, to-check=0/11)

sent 105902 bytes  received 214 bytes  14148.80 bytes/sec
total size is 105271  speedup is 0.99

この出力を取得し、参照用にファイルに保存したいと思います。だから私はこれを試しました

test_output=$(rsync -aktvu -e 'ssh -p 22' --modify-window=1 --progress $SOURCE $USER@$SERVER:$DESTINATION)

getscript() {
   pgrep -lf ".[ /]$1( |\$)"
}

getscript "sync.sh" >/dev/null && echo "sync.sh" $test_output >> outputfile.txt;

うまく機能しますが、出力はすべて1行になります。上記のようにうまくインデントされていません。うまくインデントされるように出力するにはどうすればよいですか?

tks


1
あなたのgetscript機能の理由は何ですか?
クサラナナンダ

回答:


2

man rsync 出力をログファイルに記録するオプションが表示されます:

--log-file=FILE このオプションは rsync 、ファイルに何をしているかを記録します。これは、デーモンが行うロギングと似ていますが、非デーモン転送のクライアント側またはサーバー側、あるいはその両方に要求できます。クライアントオプションとして指定されている場合、転送ログはのデフォルト形式で有効になります"%i %n%L"--log-file-formatこれをオーバーライドする場合は、オプションを参照してください。


回答ありがとうございます。だから私のコードはrsync -aktvu --log-file = / scripts / web / output / outfile-sync.log -e 'ssh -p 22' --modify-window = 1 --progress $ SOURCE $ USER @ $ SERVER :$ DESTINATIONですが、--log-file = FILEを含めるとエラーが発生します。rsync:--log-file = / scripts / web / output / outfile-sync.log:不明なオプションrsyncエラー:main.c(1243)での構文または使用エラー(コード1)[client = 2.6.8]マニュアルページですが、このオプション--log-fileは含まれていません。rsyncバージョン3.0.9を使用しています。私のrysncにはこのオプションがないと思います。回避策はありますか??
トラン

うーん。のバージョン2.6.8を使用しているようですrsync。これは非常に古いため、すべてのベットがオフになっています。2006年11月更新されたため、最初に修正することをお勧めします。時代遅れのコードを実行しているシステムのセキュリティの問題はほとんど考えられません。うん!
ロアイマ

rsyncを更新し、manページで--log-file = FILEを確認できるようになりました。tks-
トラン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.