?实验案例:Shell 脚本应用实战
随着业务的不断发展.某公司所使用的Lirux服务器也越来越多。在系统管理和维护过程中.经常需要编写些实用的小脚本,以辅助运维工作,提高工作效率。
1,编写一个名为getarp . sh的小脚本,记录局域网中各主机的MAC地址。保存到/etc/ether 文件中,若此文件已存在,应先转移进行备份。每行一条记录,第1列为P地址.第⒉列为对应的MAC地址。,
2,编写一个名为scarhost ,sh 的扫描脚本,检查有哪些主机开启了匿名FTP服务,扫描对象为
/etc/ether 文件中的所有P地址,扫描的端口为21.
? ? ? ??编写getarp , sh 脚本文件.
? ? ? ? 编写scanhost , sh 脚本。
[root@Linux01 aaa]# vim getarp.sh
#!/bin/bash
#定义网段地址,MAC列表文件
NADD="192.168.186."
FILE="/etc/ethers"
#发送ARP请求,并记录反馈结果
#备份原有文件
[ -f $FILE ] && /bin/cp -f $FILE $FILE.old
#定义起始扫描地址
HADD=1
while [ $HADD -lt 128 ]
do
arping -I ens33 -c 2 ${NADD}${HADD} &> /dev/null
if [ $? -eq 0 ] ; then
arp -n | grep ${NADD}${HADD} | awk '{print $1,$3}' >> $FILE
fi
let HADD++
done
?执行
[root@Linux01 aaa]# chmod +x getarp.sh //给他一个执行权限
[root@Linux01 aaa]# ./getarp.sh //执行
执行结果
编写一个名为scarhost ,sh 的扫描脚本,检查有哪些主机开启了匿名FTP服务,扫描对象为
/etc/ether 文件中的所有P地址,扫描的端口为21.
[root@Linux01 aaa]# vim scanhost.sh
#!/bin/bash
TARGET=$(awk '{print $1}' /etc/ethers)
echo "以下主机以开放匿名FTP服务"
for IP in $TARGET
do
wget ftp://$IP/ &> /dev/null
if [ $? -eq 0 ] ; then
echo $IP
#删除测试生产的临时文件
rm -rf index.html
fi
done
执行权限
[root@Linux01 aaa]# chmod +x scanhost.sh //给他一个执行权限
[root@Linux01 aaa]# ./scanhost.sh //执行
?
执行结果