如何将 tar/dd 屏幕输出重定向到文件?
How to redirect tar/dd screen output to file?
下面有一些示例代码,我正在使用 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 命令,但没有成功。
这是在 运行ning IBM AIX 系统上,所以我无法访问那里的许多 GNU 工具。
使用分组运算符 ({
... }
) 确保 time
本身受重定向影响,并且整个块(包括 tar
) 也包括在内:
{
time tar -cvf - /home/user1 /home/user2 \
| dd bs=128k of=/dev/rmt0
} 2>&1 | tee -a debug.log
请参阅 BashFAQ #32 了解为什么这对于 time
尤其必要。
下面有一些示例代码,我正在使用 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 命令,但没有成功。
这是在 运行ning IBM AIX 系统上,所以我无法访问那里的许多 GNU 工具。
使用分组运算符 ({
... }
) 确保 time
本身受重定向影响,并且整个块(包括 tar
) 也包括在内:
{
time tar -cvf - /home/user1 /home/user2 \
| dd bs=128k of=/dev/rmt0
} 2>&1 | tee -a debug.log
请参阅 BashFAQ #32 了解为什么这对于 time
尤其必要。