帮我写一个批量telnet的脚本并且记录telnet成功还是失败
下面是一个示例的批量telnet脚本,并记录telnet成功与否的结果:
#!/bin/bash
# 定义要批量telnet的主机列表
hosts=("host1" "host2" "host3")
# 定义telnet端口
port=23
# 定义日志文件路径
log_file="telnet_log.txt"
# 清空日志文件内容
> "$log_file"
# 循环迭代主机列表
for host in "${hosts[@]}"; do
# 尝试telnet主机
telnet_output=$(timeout 5 telnet "$host" "$port" 2>&1)
# 检查telnet输出是否包含"Connected",表示连接成功
if [[ $telnet_output == *"Connected"* ]]; then
echo "Telnet to $host succeeded"
echo "Telnet to $host succeeded" >> "$log_file"
else
echo "Telnet to $host failed"
echo "Telnet to $host failed" >> "$log_file"
fi
done
在脚本中,首先定义了要批量telnet的主机列表hosts,可以根据实际需要修改。然后定义了telnet端口port,默认为23。接下来定义了日志文件路径log_file,可以根据实际需要修改。
脚本会先清空日志文件内容,然后使用循环迭代主机列表,尝试telnet每个主机。telnet命令的输出会存储在telnet_output变量中。
接着,脚本会检查telnet输出中是否包含"Connected",来判断telnet是否成功。如果成功,会在终端和日志文件中记录telnet成功的信息;如果失败,同样会在终端和日志文件中记录telnet失败的信息。
脚本中使用了timeout 5来设置telnet的超时时间为5秒,可以根据需要进行调整。同时,脚本中使用了重定向2>&1将telnet命令的错误输出也重定向到变量中,以便检查telnet失败的原因。
在运行脚本之前,需要确保脚本文件具有执行权限,可以使用chmod +x script.sh进行设置。运行脚本后,telnet的结果会显示在终端,并记录在指定的日志文件中
原文地址: http://www.cveoy.top/t/topic/iHcg 著作权归作者所有。请勿转载和采集!