linux运维人员必会的30道shell编程面试题
一、序言
前几天一个做开发的朋友发给我一个链接,http://oldboy.blog.51cto.com/2561410/1632876?from=singlemessage&isappinstalled=0
是老男孩出的企业面试题培训叫做:合格linux运维人员必会的30道shell编程面试题及讲解,于是乎,,我打算每个都自己写一遍,,
PS:我是不是闲的蛋疼!!!
二、开撸
企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员。提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:
阶段1:开发一个守护进程脚本每30秒实现检测一次。
阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误。
阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分)
##这个还没写,,因为还要搞mysql主从复制的环境,,写把下面简单的撸了先。。
企业面试题2:
使用for循环在/oldboy目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件,名称例如为:
############我的脚本2############################################
企业面试题3:请用至少两种方法实现!
将以上文件名中的oldboy全部改成oldgirl(用for循环实现),并且html改成大写。
############我的脚本3_1############################################
############我的脚本3_2############################################
企业面试题4:
批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串)。
############我的脚本4############################################
企业面试题5:
写一个脚本,实现判断10.0.0.0/24网络里,当前在线用户的IP有哪些(方法有很多)
############我的脚本5############################################
企业实战题6:请用至少两种方法实现!
写一个脚本解决DOS攻击生产案例
提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔3分钟。防火墙命令为:iptables -I INPUT -s 10.0.1.10 -j DROP。
企业实战题7:
开发mysql多实例启动脚本:
已知mysql多实例启动命令为:mysqld_safe--defaults-file=/data/3306/my.cnf &
停止命令为:mysqladmin -u root -poldboy123 -S /data/3306/mysql.sockshutdown
请完成mysql多实例启动启动脚本的编写
要求:用函数,case语句、if语句等实现。
企业实战题8:如何实现对MySQL数据库进行分库备份,请用脚本实现
企业实战题9:如何实现对MySQL数据库进行分库加分表备份,请用脚本实现
企业面试题10:请用至少两种方法实现!
bash for循环打印下面这句话中字母数不大于6的单词(昆仑万维面试题)。
I am oldboy teacher welcome to oldboy training class.
企业面试题11:开发shell脚本分别实现以脚本传参以及read读入的方式比较2个整数大小。以屏幕输出的方式提醒用户比较结果。注意:一共是开发2个脚本。当用脚本传参以及read读入的方式需要对变量是否为数字、并且传参个数做判断。
企业面试题12:打印选择菜单,一键安装Web服务:
[root@oldboyscripts]# sh menu.sh
1.[install lamp]
2.[install lnmp]
3.[exit]
pls input the num you want:
要求:
1、当用户输入1时,输出“startinstalling lamp.”然后执行/server/scripts/lamp.sh,脚本内容输出"lampis installed"后退出脚本;
2、当用户输入2时,输出“startinstalling lnmp.”然后执行/server/scripts/lnmp.sh输出"lnmpis installed"后退出脚本;
3、当输入3时,退出当前菜单及脚本;
4、当输入任何其它字符,给出提示“Input error”后退出脚本。
5、要对执行的脚本进行相关条件判断,例如:脚本是否存在,是否可执行等。
企业面试题13:
1、监控web服务是否正常,不低于3种监控策略。
2、监控db服务是否正常,不低于3种监控策略。
要求间隔1分钟,持续监控。
企业面试题14:监控memcache服务是否正常,模拟用户(web客户端)检测。
使用nc命令加上set/get来模拟检测,以及监控响应时间及命中率。
企业面试题15:面试及实战考试题:监控web站点目录(/var/html/www)下所有文件是否被恶意篡改(文件内容被改了),如果有就打印改动的文件名(发邮件),定时任务每3分钟执行一次(10分钟时间完成)。
企业面试题16:企业案例:写网络服务独立进程模式下rsync的系统启动脚本
例如:/etc/init.d/rsyncd{start|stop|restart} 。
要求:
1.要使用系统函数库技巧。
2.要用函数,不能一坨SHI的方式。
3.可被chkconfig管理。
企业面试题17:老男孩教育天津项目学生实践抓阄题目:
好消息,老男孩培训学生外出企业项目实践机会(第6次)来了(本月中旬),但是,名额有限,队员限3人(班长带队)。
因此需要挑选学生,因此需要一个抓阄的程序:
要求:
1、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。
2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出继续等待别的学生输入。
企业面试题18:老男孩linux企业面试题:
已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字?
21029299
00205d1c
a3da1677
1f6d12dd
890684b
企业面试题19:批量检查多个网站地址是否正常
要求:shell数组方法实现,检测策略尽量模拟用户访问思路
http://www.etiantian.org
http://www.taobao.com
http://oldboy.blog.51cto.com
http://10.0.0.7
企业面试题20(中企动力)::用shell处理以下内容
1、按单词出现频率降序排序!
2、按字母出现频率降序排序!
the squid project provides a number of resources toassist users design,implement and support squid installations. Please browsethe documentation and support sections for more infomation
企业面试题21:输出正方形、等腰三角形、直角梯形,见如下内容
http://oldboy.blog.51cto.com/2561410/1718607
企业面试题22:开发通过web界面展示监控Nginx代理节点状态,效果图如下。
lvs+keepalived集群部分Shell企业案例:
企业面试题23、【LVS主节点】手工开发ipvsadm管理lvs的脚本ip_vs
实现:/etc/init.d/lvs {start|stop|restart}
企业面试题24、【LVS主节点】模拟keepalived健康检查功能管理LVS节点,
当节点挂掉(检测2次,间隔2秒)从服务器池中剔除,好了(检测2次,间隔2秒)加进来
提示:利用ipvsadm命令实现添加和减少LVS节点。
企业面试题25、【LVS客户端节点】开发LVS客户端设置VIP以及抑制ARP的管理脚本
实现:/etc/init.d/lvsclient {start|stop|restart}
企业面试题26、【LVS备节点】模拟keepalved vrrp功能,监听主节点,如果主节点不可访问则备节点启动并配置LVS实现接管主节点的资源提供服务(提醒:注意ARP缓存)
企业面试题27、请用shell或Python编写一个正方形(oldboy_square.sh),接收用户输入的数字。
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [root@oldboy ~] # sh oldboy_square1.sh Please Enter a number:5 ++++++++++ ++++++++++ ++++++++++ ++++++++++ ++++++++++ [root@oldboy ~] # sh oldboy_square2.sh Please Enter a number:9 ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ ■■■■■■■■■ |
企业面试题28、请用shell或Python编写一个等腰三角形(oldboy2_triangle.sh),接收用户输入的数字。
例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [root@oldboy ~] # sh oldboy2_triangle.sh Please Enter a number:5 * *** ***** ******* ********* [root@oldboy ~] # sh oldboy2_triangle.sh Please Enter a number:8 * *** ***** ******* ********* *********** ************* *************** |
企业面试题29、请用shell或Python编写一个画直角梯形程序(oldboy4.sh),接收用户输入的参数n,m
例如:
1 2 3 4 | [root@oldboy ~] # sh oldboy4.sh 4 6 **** ***** ****** |
27,28,29三道题参考http://oldboy.blog.51cto.com/2561410/1718607
企业面试题30:写一套简单的企业代码上线发布系统案例,利用SVN对代码及配置文件进行管理,在办公室服务器上从svn取出指定版本的代码和配置,发布到IDC机房分发机服务器上,在分发服务器或者负载均衡器上或者应用服务器本地实现代码平滑发布、上线、回滚脚本(具体设计请参考课堂讲解的企业代码发布方案)。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
centos下查看程序日志的一些总结
在开发中,我们经常在代码中添加日志,主要作用是程序在服务器上跑出bug时方便进行问题排查,因为在服务器上不可能像在本地运行程序那样debug,所以日志对于我们非常重要,几乎就是解决问题唯一能依赖的东东。 在查看服务器日志时,经常使用以下几条命令: tail -300f xxx.log | grep "userId" tail -300f xxx.log | grep "userId" -B 20 -C 20 tail -300f xxx.log | grep "userId" | grep "hello" cat xxx.log | grep "userId" tail是查看文件尾部的内容,由于程序中添加日志是添加在文件尾部的,因此文件尾部的内容一直是最新的 。这个命令适用于动态查看日志内容。 grep 是用来过滤内容的,按行过滤,只要一行日志中的内容包含 “userId” 字符串 ,那么就会打印出来。 | 是linux的管道,用来重定向输出到下一个命令的输入。 grep的 -B 和 -C 参数 意思为找到含有xx字符串的行,然后打印出此行以及此行向前20行和向后20行。 -...
- 下一篇
慕尼黑从Linux切换到 Windows 10 将花费5000万欧元
德国慕尼黑市透露,从 Linux 切换到 Windows 10 将需要花费 5000 万欧元。慕尼黑市计划花 8900 万欧元翻修 IT 基础设施,其中 4930 万欧元用于 Windows 10 客户端系统,310 万欧元用于测试和培训。 慕尼黑市曾因为从 Windows 切换到 Linux 而闻名。市议会称,相比使用基于 Linux 的系统,切换到 Windows 将能让源兼容应用和硬件驱动变得更容易,也能节省必须并存 Windows 和 Linux 的费用。在切换到 Linux 后,议会仍然有五分之一的 PC 运行 Windows,原因是部分应用程序只能运行在 Windows 上。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7设置SWAP分区,小内存服务器的救世主
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装