设为首页 收藏本站
查看: 1112|回复: 0

Linux Shell脚本测试案例(三)

[复制链接]

尚未签到

发表于 2018-8-25 06:10:56 | 显示全部楼层 |阅读模式
  脚本1:编写一个名为getarp.sh的脚本,记录局域网中各个主机的MAC地址。保存到/etc/ether文件中,若此文件已存在,应先进行备份。第行一条记录,第1列为IP地址,第2列为对应的MAC地址。
  分析:
  假定要扫描的网段是192.168.4.0,将192.168.4.赋值给变量NADD,作为检测地址的前缀
  使用”arping  -c 2 -w 1 被检测主机的IP”命令发送ARP请求,记录MAC地址
DSC0000.jpg

  用while循环语句检测目标主并记录MAC地址,这里检测的主机地址为2~3
  1、用vi创建一个名为getarp.sh脚本,内容如下:
  #!/bin/bash
  NADD="192.168.4."
  FILE="/etc/ethers"
  [-f $FILE ] && /bin/cp -f $FILE $FILE.old
  HADD=1
  while[ $HADD -lt 4 ]
  do
  arping -c 2 -w 1 ${NADD}${HADD} &>/dev/null
  if [ $? -eq 0 ] ; then
  arp -n | grep ${NADD}${HADD} | awk '{print$1,$3}' >> $FILE
  fi
  let HADD++
  done
  2、给脚本getarp.sh增加x权限
  3、执行脚本,查看检测到的MAC信息
  
  脚本2:编写一个脚本scanhost.sh,检查有哪些主机开启了匿名FPT服务,扫描对象为/etc/ethers文件中的所有IP地址,扫描的端口号为21
  环境描述:假定192.168.4.2主机为匿名访问的FTP。 192.168.4.3非匿名访部的FTP。
  创建扫描文件/etc/ethers,内容如下:
DSC0001.jpg

  这里采用wget下载工具:wget ftp://IP/
  1、用vi创建一个名为scanhost.sh脚本,内容如下:
  #!/bin/bash
  TARGET=$(awk'{print $1}' /etc/ethers)
  echo"follow is anonymous FTP server:"
  forIP in $TARGET
  do
  wget –T 3  -t 3 ftp://$IP/ &> /dev/null
  if [ $? -eq 0 ] ; then
  echo $IP
  fi
  done
  参数提示:-T 连接超时时间;-t 连接重试次数
  2、给脚本getarp.sh增加x权限
  3、执行脚本,查看扫描到的信息
  脚本3:计算/etc/目录中所有*.conf配置文件所占用的总空间大小
  用vi创建一个名为confsize.sh脚本,内容如下:
  #!/bin/bash
  sizenums=$(ls-l $(find /etc/ -type f -a -name *.conf) | awk '{print $5}')
  total=0
  fori in $sizenums
  do
  total=$(expr $total + $i)
  done

  echo"total>  脚本4:编写一个脚本chkfileown.sh,对于使用bash作为登录shell的系统中,检查他们在/opt目录中的文件数量并列出具体的数值及对应的用户账户
  1、用vi创建一个名为chkfileown.sh脚本,内容如下:
  #!/bin/bash
  DIR="/opt/"
  validusers=$(grep"bash$" /etc/passwd | awk -F: '{print $1}')
  forusername in $validusers
  do
  num=$(find $DIR -user $username | wc -l)
  echo "$username have $num files."
  done
  2、给脚本getarp.sh增加x权限
  3、执行脚本,查看执行后的信息(注:/opt目录下若没有任何文件,可事先创建一些测试文件)
  脚本5:编写脚本用于批量添加用户,要求如下:
  要求提供交互功能,当管理员执行该脚本时,可以根据提示指定需添加的用户数量(少于100)、用户名前缀、并能够设置这些用户账户的失效时间,初始密码。
  用户名编号统一使用两位数,如使用”01”、”02”、”03”的形式,而不是”1”、”2”、”3”的形式。
  编写对应的批量删节除用户脚本,要能够通过命令行参数指定用户名前缀,执行脚本后删除所有使用了该前缀的用户账户,但要防止删除root用户。
  批量添加用户脚本:
  1、批量添加用户脚本myuadd.sh内容如下:
  #!/bin/bash
  read-p "input nu :" nu
  read-p "input name:" name
  read-p "input date :" date
  read-p "input password:" password
  a=1
  if[ $nu -lt 100 ]
  then
  while[ $a -le $nu ]
  do
  if [ $a -lt 10 ]
  then
  useradd -e $date"$name"0"$a"
  echo "$password" | passwd--stdin "$name"0"$a" &>/dev/null
  else
  useradd -e $date"$name""$a"
  echo "$password" | passwd--stdin "$name""$a" &>/dev/null
  fi
  a=`expr$a + 1`
  done
  fi
  2、给脚本myuadd.sh增加x权限
  3、执行脚本myuadd.sh,添加用户
  4、验证结果:查看/etc/passwd文件是否添了新用户
  批量删除用户脚本:
  1、批量删除用户脚本myudel.sh内容如下:
  #!/bin/bash
  if[ $# -le 0 ] ; then
  echo "error:the prefix of users has notbe specified."
  echo "usage:$0 nameprefix"
  exit 1
  fi
  tarjcvf /root/users.cnf.tar.gz /etc/passwd /etc/shadow /etc/group &>/dev/null
  tobedel=`grep"$1" /etc/passwd | cut -d ":" -f 1 | grep -v"root"`
  foru in $tobedel
  do
  userdel -r $u &> /dev/null
  done
  2、给脚本myudel.sh增加x权限
  3、执行脚本myudel.sh,删除用户。如myudel.shcaiwu03或myudel.sh caiwu
  4、验证结果:查看/etc/passwd文件中已删除的用户是否还存在。
  附:
  我们可以用env或export命令查看环境变量,使用set命令查看所有变量(包括环境变量和自定义变量),使用unset命令删除变量
  LINUX系统中大多数版本都有随机数生成器,就是/dev/random文件。可以通过这个随机数文件相关的系统环境变量$RANDOM来随机取得随机数。在BASH环境下,这个RANDOM变量的内容介于0——32767之间,(man bash,搜索 RANDOM 可以看到说明)所以,只要echo $RANDOM时,系统就会主动随机取出一个介于0——32767的数值。例如要想0-9之间的随机数时,可以用declare声明数值类型
DSC0002.jpg

  或
DSC0003.jpg



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-556068-1-1.html 上篇帖子: shell中检查某个命令是否存在 下篇帖子: 清除系统日志shell.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表