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行にあります。上記のようにうまくインデントされません。インデントがよくなるようにどのように出力できますか?
笑
答え1
man rsync
出力をログファイルに書き込むオプションが表示されます。
--log-file=FILE
このオプションはrsync
そのアクションをファイルに書き込みます。これは、デーモンが実行するロギングに似ていますが、デーモンではない人が送信するクライアントおよび/またはサーバー側の要求に対するものです。クライアントオプションとして指定されている場合、このオプションをオーバーライドするには、"%i %n%L"
この--log-file-format
オプションを参照してください。