无法将 ping 输出到文本文件

无法将 ping 输出到文本文件

下面是我将 ping 结果存储在文本文件中的脚本,但存储在输出文件中的结果不完整,缺少显示 ping 统计信息的最后一条语句。有人能帮忙吗?

脚本:

#!/bin/bash
cp /dev/null /etc/scripts/ping-results.txt
fping -c5 -t50 192.168.10.1 >>/etc/scripts/ping-results.txt
#fping -c10 -t50 202.141.253.139 | perl -nle 'print scalar(localtime), " ", $_' >>/etc/scripts/ping-results.txt

脚本运行时输出:

root@noc-tst:/etc/scripts# ./ping-test.sh

192.168.176.54 : xmt/rcv/%loss = 5/5/0%, min/avg/max = 19.2/19.5/20.4

Output File (ping-results.txt):-
Tue Aug  6 00:12:10 2013 192.168.176.54 : [0], 84 bytes, 19.2 ms (19.2 avg, 0% loss)
Tue Aug  6 00:12:11 2013 192.168.176.54 : [1], 84 bytes, 19.3 ms (19.2 avg, 0% loss)
Tue Aug  6 00:12:13 2013 192.168.176.54 : [2], 84 bytes, 19.5 ms (19.3 avg, 0% loss)
Tue Aug  6 00:12:14 2013 192.168.176.54 : [3], 84 bytes, 19.3 ms (19.3 avg, 0% loss)
Tue Aug  6 00:12:15 2013 192.168.176.54 : [4], 84 bytes, 19.5 ms (19.4 avg, 0% loss)

答案1

统计信息写入 stderr,您也需要使用以下命令将其重定向2>&1

fping -c5 -t50 192.168.10.1 >>/etc/scripts/ping-results.txt 2>&1

为什么首先将 /dev/null 复制到文件,然后使用附加重定向>>?只需使用>,它将覆盖该文件(如果该文件先前存在):

fping -c5 -t50 192.168.10.1 >/etc/scripts/ping-results.txt 2>&1

相关内容