对本实训室的所有IP段的主机进行扫描,主要内容是: (1)、统计活的(在线)主机和不在线的主机,并给出IP地址和主机名称信息; (2)对活的主机,查看主机开启了哪些端口(服务)? 请你编写shell脚本实现自动运维
时间: 2024-11-04 18:13:53 浏览: 24
为了实现这个自动化运维任务,你可以创建一个简单的Shell脚本来完成这两个目标。这里是一个基本的示例,使用`nmap`工具来扫描网络并收集所需的信息:
```bash
#!/bin/bash
# 定义源IP范围,假设是192.168.0.0/24
IP_RANGE="192.168.0.1-254"
# 扫描所有IP,获取在线主机列表和状态
ONLINE_HOSTS=$(echo "$IP_RANGE" | nmap -sn --reason --open)
# 提取IP地址和主机名称信息
ONLINE_INFO=$(echo "$ONLINE_HOSTS" | grep "Nmap scan report for" | awk '{print $1, $5}')
echo "Online hosts:"
echo "$ONLINE_INFO"
# 对于每个在线主机,进一步检查开放的服务
for IP in $(echo "$ONLINE_INFO" | cut -d ' ' -f1); do
SERVICES=$(nmap -p- "$IP" | grep "open" | awk '{print $1}')
echo "Services on IP $IP:"
echo "$SERVICES"
done
# 结果保存到文件(如果需要)
echo "$ONLINE_INFO" > online_hosts.txt
for IP in $(echo "$ONLINE_INFO" | cut -d ' ' -f1); do
echo "$SERVICES" >> ports_services_$IP.txt
done
阅读全文