下面是我将 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