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

1 bash shell aix ksh tar

我在下面有一些示例代码,我使用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
Run Code Online (Sandbox Code Playgroud)

问题是当我运行这个时,以下内容被打印到屏幕上...

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
Run Code Online (Sandbox Code Playgroud)

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

cat debug.log
0+1 records in.
0+1 records out.
Run Code Online (Sandbox Code Playgroud)

有没有办法将所有输出重定向到日志?

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

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

Cha*_*ffy 5

使用分组运算符({... })来确保time自身受重定向的影响,并且tar还覆盖了整个块(包括):

{
  time tar -cvf - /home/user1 /home/user2 \
    | dd bs=128k of=/dev/rmt0
} 2>&1 | tee -a debug.log
Run Code Online (Sandbox Code Playgroud)

有关为何需要特别需要的背景,请参阅BashFAQ#32time.