本文共 5235 字,大约阅读时间需要 17 分钟。
案例一:输入网卡的名字,来输出网卡的IP
1.问题:
1.)参数后判断要加“” 2.)名字为空时显示ip2.分析:
3.流程图:
4.实现:
5.实现解析:
6.结果验证
案例二:自动对磁盘分区、格式化、挂载
1.问题:4.实现:
5.实现解析:
案例三:检查特定软件包是否安装
1.问题:4.实现:
5.实现解析:
案例四:提示用户输入年份后判断该年是否为闰年
1.问题:4.实现:
5.实现解析:
案例五:下载文件到指定目录
1.问题:4.实现:
5.实现解析:
1) 用户操作不当,打印“操作失败”,并退出 2) 没有目录时,提示创建目录,有目录时,打印“操作失败,已有该目录”,并退出 3) 选择创建,则进行安装。不选择创建,退出本次操作,返回51 4) 下载成功后,返回0;下载失败,返回52 6.结果验证案例六:ping通节点并显示节点名称
1.问题:4.实现:
5.实验解析
1) expec工具中规定输入的yes与password 2) 选一段IP进行循环,依次进行ping 3) ping完所有IP后显示结果 6.结果验证案例七:统计linux进程相关数量信息
1.问题: 1) 查看linux进程 2) 将正在运行、待机、停止等进程数总和列出 2.分析: 1) 将进程ID进行循环,依次查看进程状态 2) 进程状态进行叠加,显示进程总数 3.流程图:4.实现:
5.实现解析:
1) 使用for循环进程一次操作 2) 使用case进行进程状态判断 3) 打印出进程状态数对应总和 6.结果验证案例八:打印符合要求数字
4.实现:
5.实现解析:
1) 判断是否输入为数字,是就继续,不是打印提示并结束 2) 打印出第一轮数字,并询问是否继续 3) 判断两轮数字大小,大于继续,小于或等于打印提示并结束 4) 打印第一轮数字到第二轮数字中间的数 6.结果验证案例九:监控远程的一台机器的存活状态,发现宕机发一封邮件给自己
1.问题: 1) ping远程机器 2) 发送邮件给自己用户 2.分析: 1) 先进行ping通 2) 满足条件后分别返回不同操作结果 3.流程图:4.实现:
5.实现解析:
1) 先进行ping通主机操作 2) 判断上述条件是否满足 3) 满足返回节点开启 4) 不满足给自己发送邮件告知节点关闭 6.结果验证案例十:打印文件1-5行不包含字母的行,同时删除6-10行的字母
1.问题: 1) sed、grep循环使用 2) for循环与if判断 2.分析: 1) 使用循环打印 2) if判断,进行挑选 3) 打印符合条件的行数 3.流程图:4.实现:
5.实现解析:
1) 第一次使用for循环确定1-5行 2) if判断进行筛选 3) 第二次使用for循环确定6-10行 4) 直接确定打印条件 5) 第三次使用for循环确定其他行列 6) 打印出所有文本 6.结果验证案例十一:批量修改文件名
4.实现:
5.实现解析:
1) 进入目标目录 2) 找到所有文件,将所有文件名写到临时文件 3) 针对临时文件进行改名操作 4) 压缩所有目标文件名的文件 5) 同样操作针对于改名后的文件在进行改名,改为原来的文件名 6.结果验证案例十二: 统计日志当中IP访问量
问题 1) IP访问日志中IP过多,查找每个IP访问次数 分析 1) 找出IP行列,进行整合、添加 流程图实现
实现分析
1) 设置日志文件 2) 查找IP行列 3) 将IP数量进行总和 结果验证案例十三: 判断本机80端口是否开启
问题 1) 查看本机80端口是否开启 2) 开启,什么也不做,如果未开启重启服务,并发送邮件 分析 1) 查看80端口的状态 2) 如果正常,正常退出 3) 状态关闭,重启服务,发送邮件 4) 设置每分钟自动运行 流程图实现
实现分析
1) 先查看80端口的服务状态 2) 条件满足,进行判断 3) 正常则退出脚本,不正常重启服务并发送邮件给自己 结果验证案例十四: 统计linux系统所有进程占用内存大小的和
问题 1) 系统内存突然变小 2) 查看系统进程占用内存大小 分析 1) 确定进程 2) 计算进程占用内存和 流程图实现
实现分析
1) 设置和的值 2) 确定进程 3) 计算和 结果验证案例十五: 问候程序
问题 1) 让用户知晓现在时间段 分析 1) 确定时间 2) 时间进行判断从而确定时间段 流程图实现
实现分析
1) 确定时间值 2) 与每个时间段进行比较 3) 判断出结果 结果验证案例十六: 访问地址
问题 1) 访问的网址是否正常 分析 1) 网址正常,HTTP代码为200 2) 返回结果需要为200,极为正常 流程图实现
实现分析
1) 设置参数(即为网址) 2) 提取访问网址状态码 3) 进行判断 结果验证案例十七: 统计ip
问题 1) 共享文件时查看哪些ip相通 分析 1) 所有ip地址都需要ping 2) 将ping通显示 流程图实现
实现分析
1) 设置局部变量,进行循环ping操作 2) 判断是否可以ping通 3) 可以,打印可以Ping通ip。不可以,什么也不操作 结果验证案例十七: 简化菜单功能
问题 1) 提供用户选择,从而进行操作 分析 1) 提示可输入的选择 2) 提示输入 3) 进行输入参数判断 流程图实现
实现分析
1) 显示菜单 2) 输入选项 3) 进行选项判断 4) 执行操作 结果验证案例十八: 清空文件内容
问题 1) 将目录/data/log/下的文件全部清空 2) 只能清空文件内容而不能删除文件。 3) 其他时间只需要统计一下每个文件的大小,一个文件一行,输出到一个按日期和时间为名字的日志里。 4) 需要考虑/data/log/目录下的二级、三级、… 等子目录里面的文件。分析
1) 先确定时间与按日期和时间为名字的文件 2) 判断时间 3) 清空值或者是将文件内容存进Log文件 流程图实现
实现分析
1) 确定时间参数,用来进行判断 2) 满足条件,将目录下文件内容都清空 3) 不满足条件,将目录下文件大小给记录在一个日期和时间命名的文件中 结果验证案例十九: 显示目录内容
问题 1) 想查看多个目录下的子目录 分析 1) 确定参数个数 2) 进行针对于参数的操作 流程图实现
实现分析
1) 判断参数个数 2) 进行对应操作 3) 执行结果 结果验证案例二十: 给用户添加随机密码
问题 批量创建用户,密码设置较多,设置随机密码并记录 分析 1) 设定范围,批量创建用户 2) 给每个用户创建随机密码,并记录 流程图 (脚本思路清晰且易) 实现实现分析
1) 创建一个以日期为名字的日志文件 2) 批量创建用户,并设置随机密码 3) 将用户与密码对应记录在日志文件中 结果验证案例二十一: 备份数据库
问题 需要备份数据库中资料,远程发送给目标方 分析 1) 先备份数据库 2) 远程发送 3) 确定删除时间 流程图实现
实现分析
1) 确定时间,以时间为后缀,备份数据库 2) 远程发送给目的方 3) 找到超过时间的文件,并删除 结果验证案例二十二: 确定输入ip是否正确
问题 1) 不确定对方给与的ip地址是否正确 2) 循环输入,直到正确 分析 1) 对ip每段进行判断 2) 每段范围确定 流程图实现
实现分析
1) 设置函数,确定ip格式,判断输入ip是否正确 2) 提示输入,调用函数 3) 显示输出结果 结果验证案例二十三: 实现加减乘除的功能
问题 参数一个个进行运算很慢 分析 1) 判断参数类型 2) 进行运算 流程图实现
实现分析
1) 输入参数 2) 判断参数类型 3) 进行运算 4) 减法和除法需要先进行比较 5) 使用了bc运算 结果验证案例二十四: 循环输出数值
问题分析
1) 循环输出数值 流程图实现
实现分析
1) 设置死循环 2) 循环输入数值 3) 判断是否为end 4) 是,结束;不是,继续循环 结果验证案例二十五: 监控cpu、内存和硬盘利用率
问题 获取目前占用资源 分析 利用vmstat命令 显示目前时间 流程图实现
实现分析
1) 安装vmstat命令 2) 分别进行判断 3) 执行结果 结果验证案例二十六: 测试进程是否在系统目录中
问题 查看进程是否在系统目录 分析 1) Ps命令 2) 匹配所有进程ID 流程图实现
实现分析
1) 定义检查的内容 2) 将系统目录下所有文件添加至文件中 3) 查看进程ID,并添加至文件中 4) 匹配进程文件是否在系统目录 结果验证案例二十七:查看节点是否开启web服务 (80端口)
问题 1) 机器是否开启80端口 2) 端口是哪个服务所占用 分析 1) 命令netstat查看端口 2) 匹配出服务名称 流程图实现
实现分析
1) 查看80端口是否存在 2) 存在,打印结果,并匹配出服务名称 3) 不存在,打印结果 结果验证案例二十八: 查看用户信息
问题 1) 查看有关于账户的一切信息 2) 针对于某一用户 分析 1) 找到用户信息 2) 查看对应用户 流程图实现
实现分析
1) 判断是否输入 2) 判断是否用户是否存在 3) 存在,输出信息 4) 不存在,提示信息 结果验证案例二十九: 计算100以内能整除3的数的和
问题 计算既能整除3还在100内的整数和 分析 1) 循环进行 2) 除三没有余数 流程图实现
实现分析
1) 确定循环范围 2) %除留余数 3) 判断是否留有余数 结果验证案例三十: 特定用户安装服务
问题 1) 避免安装很多服务,设定只有特定用户才可以安装 分析 1) 查看ID号,与管理员比较 2) 安装服务 流程图实现
实现分析
1) 因为管理员ID为0,与0比较 2) 是,安装服务 3) 不是,打印“检查”结果 结果验证转载地址:http://arlpi.baihongyu.com/