Linux运维面试中常被问到的两个shell脚本
脚本一:
在公司里有一个网段是 192.168.3.0的网段,现在想判断一下哪些主机在线,哪些主机不在线。
shell脚本解决方案:
方法一:
思路
首先要循环目标主机的IP地址,IP地址分为两部分:
str=192.168.3.
num=1-255的自然数,所以num需要先遍历,然后与str拼接
IP=${str}${num}
#!/bin/bash
#定义变量str
str="192.168.31."
# for循环遍历num
#num是1-255的自然数,可以使用{1..255}
for num in {1..255}
doip=${str}${num}if ping -c1 -w1 ${ip} &>/dev/null;then#如果可以ping通则提示 ip在线echo "$ip is online."else# 如果ping不通,提示主机不在线echo "$ip is offline"fi
done
ping命令后面有两个参数,一个是 -c,一个是-w
-c count 指定要被发送(或接收)的回送信号请求的数目,由 Count 变量指出
-w timeout 这个选项仅和 -c 选项一起才能起作用。它使 ping 命令以最长的超时时间去等待应答(发送最后一个信息包后)
方法二:
思路
前面的和方法一一样,到了ping命令之后,要判断是否在线的时候,除了方法一,还可以判断 echo $?
如果 $?结果为0 ,则表示能ping通,也就是ip在线,否则为不在线。
#!/bin/bash
str="192.168.1."
for num in {1..255}
doip=${str}${num}ping -c1 -w1 ${ip} &>/dev/null#在这里定义NUM为$? ,如果执行成功则$?=0,如果ping不通则不为零NUM=$? if [ $NUM -eq 0 ];thenecho "$ip is online."elseecho "$ip is offline"fi
done
方法三
思路
表示1-255的方式,出了{1.。255} 之外,还可以用seq 1 254
[root@laoxin-06 ~]# cat ping.sh
#!/bin/bash
str="192.168.31."# seq 1 254
for num in `seq 1 254`
doip=${str}${num}ping -c1 -w1 ${ip} &>/dev/null NUM=$?if [ $NUM -eq 0 ];thenecho "$ip is online" elseecho "$ip is offline"fidone
脚本二:
我们去面试经常被问到磁盘使用率,我们可以写一个脚本来判断磁盘的使用率
#!/bin/bash
# 截取IP
## 截取IP有多种方法
IP=`ifconfig eth0 |awk -F " " 'NR==2{print $2}'`
# 定义使用率,并转换为数字
SPACE=`df -Ph |awk '{print int($5)}'` for i in $SPACE
do
#如果遍历的数值大于90,我们就认为磁盘使用率超过了90%,然后告警
if [ $i -ge 90 ]
thenecho "$IP的磁盘使用率已经超过了90%,请及时处理"fi
done
当然IP的截取方法有很多种,这里用了相对比较简单的一种
总结
shell脚本其实没有那么难,日常学习中,多多练习就好了。
Linux运维面试中常被问到的两个shell脚本相关推荐
- Python培训常识:Python面试中常被问到的几种设计模式要知道
学习Python技术大家都是为了日后能够找到适合自己的工作岗位,那么除了要学习好Python技术外,对于面试环节的问题也要有所了解,本期小编为大家介绍的Python培训教程就算关于Python面试中常 ...
- 面试中常被问到(11)虚函数/纯虚函数
虚函数 如何定义一个虚函数?在基类成员函数前加入virtual关键字,但并不代表此函数不被实现,只是说明允许基类指针调用派生类重写的此函数 一个类只要声明有虚函数或者从基类继承了虚函数,在编译过程中就 ...
- 直击面试现场——Linux运维面试——犀利24问
系统管理员这个职业它需要一个了解系统工作原理的人,这样的人才才能保证数据的安全和服务器的平稳运行. 但是,小伙伴们可能会问:「难道系统管理员就只能做这些吗?」答案是否定的! 让我先给大家介绍一下典型的 ...
- 网易月薪25K的Linux运维面试真题曝光
首先我们来看下网易Linux运维工程师招聘岗位要求: [岗位定义]高级系统工程师(应用运维) [岗位薪资]15K-25K [职位描述] 1. 负责公司运维体系的建设,组织在线移动APP和业务系统以及自 ...
- Linux 运维工作中的经典应用ansible(批量管理)Docker容器技术(环境的快速搭建)...
一 Ansible自动化运维工具 Python 在运维工作中的经典应用ansible(批量管理操作)1.安装ansible(需要bese epel 2种源) wget -O /etc/yum.repo ...
- e - 数据结构实验之查找五:平方之哈希表_面试中常被问到的Hash表,你了解吗
#新人扶持计划# Hash表在面试中经常被问到,今天我们来了解下. Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组.链表以及二叉排序树等相比较有很明显的区别,它能够 ...
- 最详细LInux运维面试题目
不 管 你 才 踏 出 社 会 ,还 是 已 久 经 沙 场 , 请 相 信 ,这 个 世 界 上 ,岁 月 对 每 个 人 都 是 公 平 的 , 1 天 都 是 24 个 小 时 ,一 分 钟 都 ...
- Linux运维面试精选题库(一)
运维精选面试题 1.什么是数据库 DB.DataBase 数据库: 依照某种数据模型进行组织并存放到存储器的数据集合 DBMS.DataBase Management System – 数据库管理系统 ...
- 【面试真经】Linux运维面试之内核优化
前言 最近学员去公司面试,很多公司会问到关于内核优化的问题,其实面试官也没有优化过,但就是想问问,仅此而已. 作为一个运维对Linux内核参数进行调整,很多人觉得很高大上,可能是很高深的技术. 可以这 ...
最新文章
- 【异常】org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions:
- docker mysql 容器无故停止的原因
- Android nDrawer
- 一个rshinyapp的学习视频就是2个小时,看来李刚民老师说的是对的,最重要的是快速学习一个语言并且实践的能力
- WebSocket In ASP.NET Core(二)
- Wisconsin Squares [USACO]
- SpringMVC 配置文件实现(Tomcat)
- Response.Redirect 产生的“正在中止线程”错误
- 草丛三剑客之逆向生成
- MySQL的使用笔记
- python 速成学堂_Python 与数据科学入门
- 拓端tecdat|R语言基于协方差的结构方程拟合的卡方检验
- 在vs中用正则表达式查找字符并替换
- 算法设计与分析——概述
- 人体全身骨骼神经分布图,人体骨骼神经系统图片
- 基于PHP+MySQL的个人网页设计与实现
- 提取swf素材_网页游戏素材提取工具及提取教程
- 隐马尔可夫之前向算法
- 计算机图文混合排版教学设计,Word图文混排教学设计
- 【大学生软件测试基础】三角形构成问题 - 决策表