bash每天自动输入文件+ ping测试

时间:2018-04-02 14:36:40

标签: bash

我正在每天运行100个IP的ping测试,每天输入文件IP将更新,因为它的动态。我将输入(100个IP列表)指定为第一个参数。因为下面的脚本将每10分钟运行一次

注意: - 我每天都在使用不同的IP,因此需要每天早上12点更改输入文件

在4月1日上午12点运行脚本作为背景

sh ping.sh IPlist_apr1.txt & 
第二天

我的辅助脚本(将创建更新的IP)将选择此文件格式为“IPlist_apr2.txt”的其他IP集合 在第三天 - IPlist_apr3.txt ...它将每天在CWD上记录$ 1.log。

同样这个过程继续,我实际上看起来我的ping脚本应该作为第一个参数逐日处理列表。

我的实际脚本的片段。

t=10m                         
ip=$1                     #### specify the file having IP's
while sleep $t
do
    if ping -c1 $ip >/dev/null 2>&1; then
        echo "`date +%H:%M`: $ip is up";
    else
        echo "`date +%H:%M`: $ip is down"; 
    fi >>$1.log;
done

1 个答案:

答案 0 :(得分:0)

您需要

命名的文件中读取 IP地址。

  while IFS= read -r ipaddr; do
    if ping -c1 "$ipaddr"; then
      status=up
    else
      status=down
    fi
    printf '%s: %s is %s\n' "$(date +%H:%M)" "$ipaddr" "$status"
  done < "$1"

请注意,这会运行一批ping,然后退出。呼叫者应负责睡10分钟并为输入指定正确的文件名。