ping 加上时间信息

1、命令行打印并加上时间信息

[root@test ~]# ping www.baidu.com | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime())}'  
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.    2020-05-11 15:07:12
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=55 time=1.18 ms    2020-05-11 15:07:12
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=55 time=1.32 ms    2020-05-11 15:07:13
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=3 ttl=55 time=1.55 ms    2020-05-11 15:07:14
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=4 ttl=55 time=1.25 ms    2020-05-11 15:07:15
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=5 ttl=55 time=1.25 ms    2020-05-11 15:07:16
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=6 ttl=55 time=1.18 ms    2020-05-11 15:07:17

2、将这些信息打印到一个文件中

[root@test ~]# nohup ping www.baidu.com | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()); fflush()}' >> outIP.info &  
[1] 16368
上面命令表示后台执行命令,但退出终端后会停止运行,如想保持长期执行命令需要加上参数nohup
注意:使用  fflush() ,不然文件不会有信息,因为awk也是有缓存的。
[root@test ~]# jobs  #查看后台运行的任务
[1]+  Running                 ping www.baidu.com | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()); fflush()}' >> outIP.info &
[root@test ~]# fg 1  #把任务放在前台运行
ping www.baidu.com | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()); fflush()}' >> outIP.info

3、另外提供下利用ping命令检测网络中主机是否在线;

#!/bin/bash
i=10
  for j in {10..254};do
     if ping -c 1 -w 1 192.168.$i.$j &> /dev/null;then
        echo -e "\033[32m192.168.$i.$j\033[0m is up"    #此处字体以绿色显示;
     else
        echo -e "\033[31m192.168.$i.$j\033[0m is down"  #此处字体以红色显示;
     fi
  done
posted @ 2020-05-11 15:21  区域管理员  阅读(1728)  评论(0编辑  收藏  举报