htbzwd 发表于 2018-8-27 09:00:18

刘启成_shell脚本应用实战

  Shell脚本应用实战
  实验环境:
  随着业务的不断发展,某公司所使用的linux服务器也越来越多,在系统管理和维护过程中,经常需要编写一些实用的小脚本,以辅助运维工作,提高工作效率。
  拓扑:
  需求描述:
  ? 编写一个名为getarp.sh的小脚本,记录局域网中各主机的MAC地址
  1)保存到/etc/ether文件中,若此文件已存在,应先转移进行备份
  2)每行一条记录,第一列为IP地址,第二列为对应的MAC地址
  ? 编写一个名为scanhost.sh的扫描脚本,检查有哪些主机开启了匿名FTP服务,扫描对象为/etc/ether文件中的所有IP地址,扫描的端口为21
  实验步骤
  1. 编写getarp.sh脚本文件
  1)通过arping命令发送ARP请求,根据反馈结果记录MAC地址
  2)将网段地址(如192.168.4.)赋值给变量NADD,作为检测地址的前缀
  3)使用while循环语句,重复检测目标并记录MAC地址,主机地址为1-254



  2. 编写scanhost.sh脚本
  1)有很多方法可以检测一个主机是否开启FTP服务,这里采取wget下载工具访问FTP根目录的方式,若能够成功列表,则视为匿名FTP已开启,否则视为关闭
  2)通过awk命令过滤出/etc/ethers文件中的所有IP地址,赋值给变量TARGET
  3)使用for循环语句,读取TARGET变量中的IP地址,重复探测FTP的开启情况


  总结:
  1. for语句可根据已知的列表对象重复执行命令序列,更适合无规律的循环操作
  2. while语句可根据特定的条件重复执行命令序列,更适合有规律的循环操作
  3. case语句可根据变量的不同取值执行不同的命令序列,比多分支的if语句结构更加清晰
  4. linux系统中的各种系统服务器脚本都使用case分支结构,以便通过start、stop、restart等位置参数进行控制

页: [1]
查看完整版本: 刘启成_shell脚本应用实战