如何将tar / dd屏幕输出重定向到文件?

时间:2019-02-20 18:12:33

标签: bash shell ksh tar aix

下面有一些示例代码,其中我使用tar / dd将文件备份到磁带...

time tar -cvf - \
/home/user1 \
/home/user2 | dd bs=128k of=/dev/rmt0 2>&1 | tee -a debug.log
mail -s "testing" admin@domain.com < debug.log

问题是当我运行此程序时,以下内容会显示在屏幕上...

a /home/user1/fileA 10 blocks.
a /home/user2/fileB 1 blocks.
0+1 records in.
0+1 records out.

real    0m2.253s
user    0m0.003s
sys     0m0.002s

但是只有以下内容被重定向到日志文件...

cat debug.log
0+1 records in.
0+1 records out.

是否可以将所有输出重定向到日志?

我尝试在tar / dd管道之间添加tee命令,但这没用。

这是在运行IBM AIX的系统上,因此我无法访问其中的许多GNU工具。

1 个答案:

答案 0 :(得分:6)

使用分组运算符({ ... })确保time本身可以进行重定向,并确保块的整体(包括{{1 }})也包括在内:

tar

请参阅BashFAQ #32,了解为何特别需要{ time tar -cvf - /home/user1 /home/user2 \ | dd bs=128k of=/dev/rmt0 } 2>&1 | tee -a debug.log 这么做的背景。