-
ping 命令加时间戳
对网络通路进行监测可使用ping命令,当需要24小时甚至更长时间的持续测试时,记录每一次ping包状态的时间信息就非常有必要,可在网络出现问题时,根据日志来定位问题发生时段。分别验证了windows/linux平台下的操作,涉及字符拼接、powershell 日期函数等技巧。
Linux下给ping命令加时间戳
#!/bin/bash
ethname=eno1
check_dn() {
while true
do
dn="127.0.0.1"
for IP in $dn; do
#注意包含ip地址一行的前缀子串匹配
#ipaddr=`ifconfig $ethname | awk '/inet addr/ {print $2}' | cut -f2 -d ":"`
ipaddr=`ifconfig $ethname | awk '/inet / {print $2}' | cut -f2 -d ":"`
if ping -c 1 $IP >/dev/null; then
echo "$(date +"%Y-%m-%d %H:%M:%S"):"" $ipaddr --> $IP Ping success."
continue
fi
echo "$(date +"%Y-%m-%d %H:%M:%S"):"" $ipaddr --> $IP Ping failure!"
ifconfig $ethname
done
sleep 1
done
}
#check_dn
check_dn | while read pong; do echo "$pong"; done | tee -a ping-$(date +"%Y-%m-%d-%H:%M: %S").log
windows下ping命令加时间戳
windows下使用get-date获取时间 并进行格式化,对ping结果加时间戳信息,并且对输出的文件名加时间信息,可用以下命令。以下使用了windows下字符拼接方法,并使用tostring生成 一个当前日期和日间 的文件名。
#以下命令仅支持powershell 运行
ping 127.0.0.1 | Foreach{"{0}-{1}" -f (get-date),$_} > ( 'ping_' + (Get-Date -format "yyyy-MM-dd-HH-MM-ss").ToString() + '.log' )
The End.