远程批量抓取Ubuntu PC信息的脚本

简介:

远程批量抓取Ubuntu PC信息的脚本(多个脚本分工完成)

 

有多个知识点:

a、  带密码ssh登录并批量执行

b、  nc命令检查端口是否开放

c、  grep –w (对词精确匹配)

d、  grep –A (显示匹配行之后行的内容)

 

 

1、  从所有PC网段里筛选出有开放22端口的ip

 

 

root@archivebak:~# cat/usr/local/bin/pingubt.sh

#!/bin/bash

rm -rf /log/ip_ubt.txt

rm -rf /log/ssh_22_0_ok.txt

rm -rf /log/ssh_22_0.txt

touch /log/ssh_22_0_ok.txt

touch /log/ssh_22_0.txt

rm -rf /log/ssh_22_1_ok.txt

rm -rf /log/ssh_22_1.txt

touch /log/ssh_22_1_ok.txt

touch /log/ssh_22_1.txt

rm -rf /log/ssh_22_29_ok.txt

rm -rf /log/ssh_22_29.txt

touch /log/ssh_22_29_ok.txt

touch /log/ssh_22_29.txt

 

 

Net1="10 11 12 13 "

 

Net2="10 11 12 13 "

 

Net3="10 11 12 13"

 

for Net in $Net1

do

for inum in `seq 1 253`

do

 

IPP="10.0.$Net.$inum 22"

IP="10.0.$Net.$inum"

/bin/nc -v -w 5 -z $IPP > /dev/null2>&1

if [ $? -eq 0 ];then

echo $IPP:ok >> /log/ssh_22_0_ok.txt

echo $IP >> /log/ssh_22_0.txt

fi

 

done

done

 

 

 

for Net in $Net2

do

for inum in `seq 1 253`

do

 

IPP="10.1.$Net.$inum 22"

IP="10.1.$Net.$inum"

/bin/nc -v -w 5 -z $IPP > /dev/null2>&1

if [ $? -eq 0 ];then

echo $IPP:ok >> /log/ssh_22_1_ok.txt

echo $IP >> /log/ssh_22_1.txt

fi

 

done

done

 

 

for Net in $Net3

do

for inum in `seq 1 253`

do

 

IPP="10.29.$Net.$inum 22"

IP="10.29.$Net.$inum"

/bin/nc -v -w 5 -z $IPP > /dev/null2>&1

if [ $? -eq 0 ];then

echo $IPP:ok >> /log/ssh_22_29_ok.txt

echo $IP >> /log/ssh_22_29.txt

fi

 

done

done

 

 

 

 

 

2、远程带密码ssh登录脚本(expect脚本)

 

root@archivebak:~/pcu# cat/usr/local/bin/ssh_PC.exp

#!/usr/bin/expexct -f

set ip [lindex $argv 0]

set timeout 5

spawn ssh ming\\zhi.yang@$ip

expect {

"*(yes/no)*" { send "yes\r"; exp_continue}

"Password:" { send "****\r" }

}

expect "$*"

send "ifconfig | grep addr:10 | cut -b16-32\r"

send "hostname\r"

send "who | grep ming | head -n1\r"

send "cat /etc/issue\r"

send "exit\r"

expect eof

root@archivebak:~/pcu#

 

 

3、通过for循环对开放22端口的ip进行批量登录(执行时须将输出进行保存, sh host.sh&>> /log/pcu/users_0.txt

 

root@archivebak:~/pcu# cat hosts.sh

#!/bin/bash

 

for IP in `cat /log/ssh_22_0.txt`

do

/usr/bin/expect /usr/local/bin/ssh_PC.exp$IP

done

 

root@archivebak:~/pcu#

 

 

 

 

4、统计ssh登录成功ip的脚本

 

root@archivebak:~/pcu# cat ssh_22_0_no.sh

#!/bin/bash

 

rm -rf /log/pcu/ubt_ip_0.txt

rm -rf /log/pcu/ubt_ip_0_no.txt

touch /log/pcu/ubt_ip_0.txt

touch /log/pcu/ubt_ip_0_no.txt

 

 

for IP in `cat /log/ssh_22_0.txt`

do

 

Co=`cat /log/users_0_bak.txt | grep -w $IP| tail -n 1 | awk -F[:" "]+ '{print $3}'`

 

if [ $Co = $IP ];then

 

echo $IP >> /log/pcu/ubt_ip_0.txt

 

else

 

echo $IP >> /log/pcu/ubt_ip_0_no.txt

 

fi

done

 

root@archivebak:~/pcu#

 

 

5、从成功登录输出里抓取需要的主机信息的脚本

 

root@archivebak:~/pcu# cat hosts2_0.sh

#!/bin/bash

 

#cat /log/users.txt | grep  addr:10. |grep -v ifconfig

 

/bin/rm -rf /log/pcu/ubt_0_lo.txt

/bin/touch /log/pcu/ubt_0_lo.txt

 

 

for IP in `cat /log/pcu/ubt_ip_0_lo.txt`

do

Host=`cat /log/pcu/users_0_lo.txt | grep -w$IP -A 4 | grep sh0 | grep -v who | grep -v hostname | grep -v ifconfig | grep-v login | cut -b 1-20`

Hostt=`cat /log/pcu/users_0_lo.txt | grep-w $IP -A 4 | grep ubtpc | grep -v who | grep -v hostname | grep -v ifconfig |grep -v login | cut -b 1-20`

 

 

 

User=`cat /log/pcu/users_0_lo.txt | grep -w$IP -A 4 | grep '201' | awk -F[:" "]+ '{print $1}'`

 

Ub=`cat /log/pcu/users_0_lo.txt | grep -w$IP -A 4 | grep Welcome | head -n 1 | awk -F[:" "]+ '{print $4}'`

 

echo "$IP,$Host,$Hostt,Ubuntu$Ub,$User" >> /log/pcu/ubt_0_lo.txt

done

root@archivebak:~/pcu#

本文转自linux博客51CTO博客,原文链接http://blog.51cto.com/yangzhiming/1902770如需转载请自行联系原作者


yangzhimingg

相关文章
|
6月前
|
Ubuntu Shell
百度搜索:蓝易云【Ubuntu系统如何设置开机自启动shell脚本?】
现在,你的Shell脚本将会在Ubuntu系统开机时自动执行。请确保脚本中的逻辑是正确的,以免对系统造成不必要的影响。
72 0
|
分布式计算 Ubuntu Hadoop
【Linux】在ubuntu18.04系统中配置网络信息(超有用,完美解决,只看这一篇就行了)
【Linux】在ubuntu18.04系统中配置网络信息(超有用,完美解决,只看这一篇就行了)
813 0
|
9天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
23 2
|
2月前
|
监控 Ubuntu API
Python脚本监控Ubuntu系统进程内存的实现方式
通过这种方法,我们可以很容易地监控Ubuntu系统中进程的内存使用情况,对于性能分析和资源管理具有很大的帮助。这只是 `psutil`库功能的冰山一角,`psutil`还能够提供更多关于系统和进程的详细信息,强烈推荐进一步探索这个强大的库。
42 1
|
5月前
|
Ubuntu Java Linux
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
123 2
|
5月前
|
Ubuntu 应用服务中间件 Linux
Linux Centos7 ubuntu 安装nginx,脚本一键安装nginx
Linux Centos7 ubuntu 安装nginx,脚本一键安装nginx
131 2
|
5月前
|
Ubuntu 关系型数据库 MySQL
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
77 0
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
|
6月前
|
Ubuntu Unix Linux
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
|
Ubuntu Unix Linux
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
351 0
|
Ubuntu
通过脚本关闭Ubuntu某一进程
通过脚本关闭Ubuntu某一进程
170 0
通过脚本关闭Ubuntu某一进程