首页 > 代码库 > shell编程企业实战(试题)

shell编程企业实战(试题)

 

1. 写一个脚本,实现批量添加20个用户,用户名为user1-20,密码为user后面跟5个随机字符

2. Shell实用案例:批量生成随机字符文件

3.请用至少两种方法实现! 将以上文件名中的oldboy全部改成oldgirl(用for循环实现),并且html改成大写。 

  1. [root@db02 ~]# ll /oldboy/
  2. total 0
  3. -rw-r--r-- 1 root root 0 Jul 20 20:45 aebccciiaj_oldboy.HTML
  4. -rw-r--r-- 1 root root 0 Jul 20 20:45 afffebcchb_oldboy.HTML
  5. -rw-r--r-- 1 root root 0 Jul 20 20:45 dbccddabbj_oldboy.HTML
  6. -rw-r--r-- 1 root root 0 Jul 20 20:45 ehbdaedach_oldboy.HTML
  7. -rw-r--r-- 1 root root 0 Jul 20 20:45 fbaacihehi_oldboy.HTML
  8. -rw-r--r-- 1 root root 0 Jul 20 20:45 fffabecgbc_oldboy.HTML
  9. -rw-r--r-- 1 root root 0 Jul 20 20:45 ffghcffegb_oldboy.HTML
  10. -rw-r--r-- 1 root root 0 Jul 20 20:45 hffbhfgdff_oldboy.HTML
  11. -rw-r--r-- 1 root root 0 Jul 20 20:45 jadafhbaaf_oldboy.HTML
  12. -rw-r--r-- 1 root root 0 Jul 20 20:45 jgfebjbebd_oldboy.HTML

 

4.写一个脚本,实现判断10.0.0.0/24网络里,当前在线用户的IP有哪些

5.解决DOS攻击生产案例

6.请用至少两种方法实现!写一个脚本解决DOS攻击生产案例。提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100

,即调用防火墙命令封掉对应的IP,监控频率每隔3分钟。防火墙命令为:iptables -A INPUT -s 10.0.1.10 -j DROP。

7. shell创建清理日志脚本apache日志为例

8.监控CPU和内存的使用情况

9.Shell编程脚本:打印九九乘法表

10.利用bash for循环打印下面这句话中字母数不大于6的单词。

I am oldboy teacher welcome to oldboy trainingclass

 

11. 如何实现对MySQL数据库进行分库加分表备份,请用脚本实现。

12. Shell之mysql自动备份脚本

13. Shell脚本:磁盘监控

14. 监控MySQL主从同步是否异常并报警企业案例模拟

监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员。提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:
阶段1:开发一个守护进程脚本每30秒实现检测一次。
阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误。
阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分)

15.

打印菜单(堡垒机)
[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、要对执行的脚本进行相关条件判断,例如:脚本是否存在,是否可执行等。

 

16.批量检查多个网站地址是否正常

17.已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字?

18.根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100即调用防火墙命令封掉对应的IP,监控频率每隔3分钟

防火墙命令为:iptables -A INPUT -s 10.0.1.10 -j DROP

19.文件内容如下:

123abc456
456def123
567abc789
789def567
要求输出:
456ABC123
123DEF456
789ABC567
567DEF789

20.有一列数字如下:

第1次:1
第2次:2
第3次:3
第4次:5
第5次:8
第6次:13
第7次:21
第8次:34
第9次:55
第10次:89
第11次:144
写出100次的数是什么。

21.传入至少三个数字参数到脚本file,并计算出最大,最小,平均值。需要判断传入的数字是否足够,否则输出警告信息。平均值保留两位小数。

如执行./file 3 4 6 5,输出结果如下:
max number is:6
min number is:3
average is:4.50

22.编写一个awk脚本用来计算每个人的平均成绩,每次测试的平均成绩和每组队的平均成绩。如果某次成绩为负数,则表示此人错过了测试,那计算平均成绩时排除此人再计算。输出的结果如下表,在名字的列表中,名字是10个宽度且左对齐(提示printf中使用%-10s格式),而平均值是7个字符宽度,右边两个右对齐的小数。

23.分析网站日志,找出在一分钟内打开网页超过60次的ip(排除图片,js和css等静态元素),并用iptables禁止其访问。加入crontab使脚本每分钟执行一次。

24.计算出1+2+3+..+100的结果。可以使用多种方法解答。

25.分析图片服务日志,把日志(每个图片访问次数*图片大小的总和)排行,也就是计算每个url的总访问大小

说明:本题生产环境应用:这个功能可以用于IDC网站流量带宽很高,然后通过分析服务器日志哪些元素占用流量过大,
进而进行优化或裁剪该图片,压缩js等措施。
测试数据
59.33.26.105 – - [08/Dec/2010:15:43:56 +0800] “GET /static/images/photos/2.jpg HTTP/1.1″ 200 11299

26.打印1-100奇数?打印1-100偶数?打印1-100的和?打印1-100的奇数和?打印1-100的偶数和?打印1-100的质数?

27.编写脚本实现以下功能;

每天早上5点开始做备份
要备份的是/var/mylog里所有文件和目录可以压缩进行备份
备份可以保存到别一台器上192、168、1、2 FTP帐号 aaa 密码 bbb
要示每天的备份文件要带有当天的日期标记

28.创建一个函数,能接受两个参数:

1)第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存的位置;
2)如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则,函数返回一个51的错误值给调用脚本;
3)如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功与否;如果成功,则返回0给调用脚本,否则,返回52给调用脚本;

29.写一个脚本,判断一个指定的脚本是否是语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出其它任何键可以通过vim打开这个指定的脚本

30.已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字?

31.批量检查多个网站地址是否正常

32.【LVS备节点】模拟keepalved vrrp功能,监听节点,如果主节点不可访问则备节点启动并配置LVS实现接管主节点的资源提供服务(提醒:注意ARP缓存)

32.开发shell脚本分别实现以脚本传参以及read读入的方式比较2个整数大小。以屏幕输出的方式提醒用户比较结果。注意:一共是开发2个脚本。当用脚本传参以及read读入的方式需要对变量是否为数字、并且传参个数做判断。

33.监控memcache服务是否正常,模拟用户(web客户端)检测。 使用nc命令加上set/get来模拟检测,以及监控响应时间及命中率。

34.监控web站点目录(/var/html/www)下所有文件是否被恶意篡改(文件内容被改了),如果有就打印改动的文件名(发邮件),定时任务每3分钟执行一次(10分钟时间完成)。

35.写网络服务独立进程模式下rsync的系统启动脚本 

36.学生实践抓阄题目: 
  好消息,老男孩培训学生外出企业项目实践机会(第6次)来了(本月中旬),但是,名额有限,队员限3人(班长带队)。 
因此需要挑选学生,因此需要一个抓阄的程序: 
要求: 
  1、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。 
  2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出继续等待别的学生输入。

37.手工开发ipvsadm管理lvs的脚本ip_vs

38.模拟keepalived健康检查功能管理LVS节点, 

当节点挂掉(检测2次,间隔2秒)从服务器池中剔除,好了(检测2次,间隔2秒)加进来 
提示:利用ipvsadm命令实现添加和减少LVS节点。

39.用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

40.模拟keepalved vrrp功能,监听节点,如果主节点不可访问则备节点启动并配置LVS实现接管主节点的资源提供服务(提醒:注意ARP缓存)

 答案 下篇

shell编程企业实战(试题)