加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

ssh – 循环遍历服务器并运行命令

发布时间:2020-12-15 18:38:29 所属栏目:安全 来源:网络整理
导读:我在一个名为network_list.txt的文本文件中提到了一组服务器.如何运行服务器并运行命令并显示结果?我试过以下内容: filename="network_list.txt"service=httpdwhile read -r linedo name="$line" ping -c 3 $name /dev/null 21; RETVAL=$? if [ $RETVAL -n
我在一个名为network_list.txt的文本文件中提到了一组服务器.如何运行服务器并运行命令并显示结果?我试过以下内容:
filename="network_list.txt"
service=httpd
while read -r line
do
    name="$line"
    ping -c 3 $name > /dev/null 2>&1;
    RETVAL=$?
        if [ $RETVAL -ne 0 ]
        then 
           echo "$name is down"
        else 
            echo "$name is up and running"
        fi
    http_status=$(ssh $name ps -ef | grep -v grep | grep $service | wc -l)
        if [ $http_status -ne 0 ]
        then
            echo "$service is up and running in $name"
        else
            echo "$service is down in $name"
        fi
done < "$filename"

但它在第一台服务器后停止.

谢谢 :) .

您需要在循环中将SSH命令的stdin重定向到无处可防止读取所有行.这应该这样做:
http_status=$(ssh $name "ps -ef | grep -v grep | grep $service | wc -l" < /dev/null)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读