运维脚本

Updated on with 0 views and 0 comments

运维脚本

批量测试密码

脚本1

#!/bin/bash
# 1、需要在同级目录准备测试文件,例:./test.txt;字段 ip port user pass;
# 2、需要提前安装sshpass,(yum install sshpass 或 apt install sshpass)。

host_file="./test.txt"

if [ ! -f "${host_file}" ];then
    echo "错误:${host_file} 文件不存在!"
    exit 1
fi

echo "==================== SSH批量连通测试开始 ===================="

while read -r ip port user pass <&3; do
    # 跳过注释、空行
    if [[ -z "${ip}" || "${ip}" =~ ^# ]];then
        continue
    fi

    echo "正在检测:${user}@${ip}:${port}"
    sshpass -p "${pass}" ssh \
        -o StrictHostKeyChecking=no \
        -o ConnectTimeout=5 \
        -p "${port}" \
        "${user}@${ip}" "exit 0" >/dev/null 2>&1

    if [ $? -eq 0 ];then
        echo "✅ ${ip} 登录成功"
    else
        echo "❌ ${ip} 登录失败(密码/端口/网络异常)"
    fi
    echo "-------------------------------------------------------------"
done 3< "${host_file}"


echo "==================== 全部主机测试完成 ===================="

脚本2

#!/bin/bash
# 1、需要在同级目录准备测试文件,例:./test.txt;字段 ip port user pass;
# 2、需要提前安装sshpass,(yum install sshpass 或 apt install sshpass)。

host_file="./test.txt"
[ ! -f "$host_file" ] && echo "文件不存在" && exit 1

echo "==== SSH批量测试 ===="
while IFS= read -r line <&3; do
    # 跳过注释空行
    [[ -z "$line" || "$line" =~ ^# ]] && continue
    # 拆分变量
    ip=$(echo $line | awk '{print $1}')
    port=$(echo $line | awk '{print $2}')
    user=$(echo $line | awk '{print $3}')
    pass=$(echo $line | awk '{print $4}')

    echo "检测 $user@$ip:$port"
    sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 -p "$port" "$user@$ip" exit >/dev/null 2>&1
    [ $? -eq 0 ] && echo "✅成功" || echo "❌失败"
    echo "-------------------------"
done 3< "$host_file"
echo "全部检测完毕"

批量测试ip 端口

#!/bin/bash
# 1、需要提前安装nc(yum -y install nc)
# 2、在这里填写需要检测的IP和端口,格式:IP 端口
host_list=(
"192.168.1.30 22"
"192.168.1.31 22"
"192.168.1.32 22"
"192.168.1.33 22"
)

echo "==================== 批量端口连通检测 ===================="
for line in "${host_list[@]}"; do
    ip=$(echo $line | awk '{print $1}')
    port=$(echo $line | awk '{print $2}')
    echo "检测 $ip:$port"

    timeout 3 nc -z "$ip" "$port" >/dev/null 2>&1
    if [ $? -eq 0 ];then
        echo "✅ $ip:$port 端口开放"
    else
        echo "❌ $ip:$port 端口不通"
    fi
    echo "---------------------------------------------------------"
done
echo "==================== 检测完成 ===================="

标题:运维脚本
作者:zhongts
地址:http://212.64.20.79:8080/articles/2026/07/02/1782999805079.html