【发布时间】:2021-12-05 21:14:02
【问题描述】:
我正在编写一个 bash 脚本,该脚本会遍历 hosts.list 中定义的多个主机,并在它们在线时返回。 我想做同样的事情,但使用 ssh。如果连接和登录成功,如何从 ssh 返回一个值,如布尔值。
#!/bin/bash
File="hosts.list"
Hosts=$(cat $File)
declare -i deadhosts
$deadhosts = 0
declare -i counter
$counter = 0
for Host in $Hosts
do
if ! ping -c 1 -s 1 -W 1 "$Host" 1>/dev/null 2>&1; then
deadhosts=$((deadhosts+1))
else
echo $Host
fi
counter=$((counter+1))
done
echo "Mission success"
echo "Scanned Hosts: $counter Dead Hosts: $deadhosts"
【问题讨论】:
-
$deadhosts = 0$counter = 0将导致=: command not found。这不是在 bash 中分配变量的方式。 -
stackoverflow.com/questions/1405324/… 回答你的问题了吗?
-
您是否考虑过使用
nmap之类的工具来代替自己编写脚本?