Shell脚本case分支语句、扒匿名登录FTP的max地址

1、语句结构

 case  变量值  in
模式一) 命令序列1
;;
模式二)命令序列2
;;

......
*)
esac

2、case语句应用示例 

        (1) 检查用户输入的字符类型
提示用户从键盘输入一个字符,通过case语句判断该字符是否为字母、数字或者其他控制字符

vim a.sh

#!/bin/bash
read -p "请输入一个字符,并按Enter键确认:" KEY
case "$KEY" in
[a-z] |  [A-Z])                            (匹配任意字母)
        echo  "您输入的是字母."
        ;;
[0-9])                                    (匹配任意数字)
        echo "您输入的是数字."
        ;;
*)                                        (默认模式,匹配任意字符)

        echo "您输入的是空格、功能键或其他控制字符."
esac


chmod +x a.sh
./a.sh

        (2) 编写系统脚本服务
通过位置变量$1指定的start, stop, restart, status控制参数,分别用来启动、停止、重启sleep进程

vim fuwu.sh

#!/bin/bash
case "$1" in
start)
echo -n "正在启动sleep服务..."
        if sleep 9000  &
then
        echo "OK"
fi
;;

stop)
echo  -n "正在停止sleep服务..."
pkill "sleep" &> /dev/null
echo "OK"
;;
status)
if pgrep "sleep" &> /dev/null
then
        echo "sleep服务已启动."
else
        echo "sleep服务已停止."
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "用法:$0 {start|stop|status|restart}"
esac


chmod +x fuwu.sh
./fuwu.sh start
./fuwu.sh stop
./fuwu.sh status
./fuwu.sh restart

         (3)通过arping命令发送ARP请求,根据反馈结果记录MAC地址。(需要一个vsftp服务器)

将网段地址(如192.168.1.)赋值给变量NADD,作为检测地址的前缀。
使用while循环语句,重复检测目标并记录MAC地址,主机地址从1-254。
 

vim getarp.sh

#!/bin/bash
# 1. 定义网段地址、MAC列表文件
NADD="192.168.1."
FILE="/etc/ethers"
# 2. 发送ARP请求,并记录反馈结果
[ -f $FILE ] && /bin/cp -f $FILE $FILE.old      		(备份原有文件)
HADD=1                                          		(定义起始扫描地址)
while [ $HADD -lt 30 ]
do
    ping -c 2  -i 0.2 -W  3   ${NADD}${HADD} &> /dev/null
    if [ $? -eq 0 ] 
then
       arp -n | grep ${NADD}${HADD} | awk '{print $1,$3}' >> $FILE
    fi
    let HADD++
done


chmod +x getarp.sh
./getarp.sh  
cat /etc/ethers


        (4) 检测一个主机是否开启匿名FTP服务

wget下载工具访问FTP根目录的方式,若能够成功列表,则视为匿名FTP已开启,否则视为关闭
 

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

chmod +x scanhost.sh
./scanhost.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值