我使用 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;
它工作得很好,但输出全部在一行上。它不像上面那样很好地缩进。我怎样才能输出它以便它能很好地缩进?
tks
答案1
man rsync
将显示将输出记录到日志文件的选项:
--log-file=FILE
此选项会将rsync
其所做的操作记录到文件中。这类似于守护程序所做的日志记录,但可以为非守护程序传输的客户端和/或服务器端请求。如果指定为客户端选项,则将以默认格式"%i %n%L"
.--log-file-format
如果您想覆盖此选项,请参阅该选项。