linux - 使用 % 或 UP/DOWN 在 linux 脚本中显示事件的 ip 地址

标签 linux bash shell ubuntu

我有一个 IP 地址:192.168.0.205 我可以在脚本中 ping 它:

for i in 192.168.0.205 ....
do
  ping -c 1 $i
done

但现在我希望脚本显示: 192.168.0.205 向上或向下

是否还有一种方法可以显示百分比,例如:75% UP?

最佳答案

你可能想要的是:

x=0;
a=1
b=5
for((i=$a;i<=$b;i++))
do
    y=`ping -n 1 192.168.1.$i | grep unreachable | wc -l`
    x=$(($x + $y))
done;
echo "$x $b $a" | awk '{printf "%.2f %% DOWN\n",($1/($2-$3+1))*100}';

x:包含DOWN IP的个数

a: 第一个IP地址的最后一个八位位组

b: 最后一个IP地址的最后一个八位位组

y:如果 IP 为 UP 则为 0,否则为 1

希望对您有所帮助!

PS:将 -n 更改为 -c 或在您的 shell 中起作用的任何选项!

关于linux - 使用 % 或 UP/DOWN 在 linux 脚本中显示事件的 ip 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30558405/

相关文章:

linux - Linux 上用户或进程之间的目录重新映射?

linux - apt-get dist-upgrade,不覆盖我自己编译的vim

regex - 需要 RegExp 帮助 Linux Bash grep 命令过滤掉包含方括号的行

ios - 通过脚本增加xcode项目用户定义的变量

bash - CentOS 7 -eq : unary operator expected

python - 如何每天运行一次shell脚本?

c - Eclipse -lcurl 找不到

java - C、java中如何产生cpu缓存效果?

bash - 如何为终端制作动画 bash shell 提示符?

linux - 如何区分 $1 作为 shell 变量和 $1 作为 awk 变量?