shell脚本练习题

这里主要收集一些shell脚本练习题,用于加强shell编程能力。

Q1

分析图片服务日志,把日志(每个图片访问次数*图片大小的总和)排行,也就是计算每个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
本题需要输出三个指标: 【被访问次数】 【访问次数*单个被访问文件大小】 【文件名(带URL)】
查看答案

Q2

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

Q3

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

Q4

teamlist.txt的内容为:

  1. Name,Team,First Test, Second Test, Third Test
  2. Tom,Red,5,17,22
  3. Joe,Green,3,14,22
  4. Maria,Blue,6,18,21
  5. Fred,Blue,2,15,23
  6. Carlos,Red,-1,15,24
  7. Phuong,Green,7,19,21
  8. Enrique,Green,3,16,20
  9. Nancy,Red,9,12,24

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

  1. Name       Average
  2. ----       -------
  3. Tom          14.67
  4. Joe          13.00
  5. Maria        15.00
  6. Fred         13.33
  7. Carlos       19.50
  8. Phuong       15.67
  9. Enrique      13.00
  10. Nancy        15.00
  11. ------------------
  12. Average for Test 1 : 5
  13. Average for Test 2 : 15.75
  14. Average for Test 3 : 22.125
  15. -------------------
  16. Average for Red Team: 16
  17. Average for Blue Team: 14.1667
  18. Average for Green Team: 13.8889

查看答案

Q5

传入至少三个数字参数到脚本file,并计算出最大,最小,平均值。需要判断传入的数字是否足够,否则输出警告信息。平均值保留两位小数。
如执行./file 3 4 6 5,输出结果如下:
max number is:6
min number is:3
average is:4.50
查看答案

Q6

有一列数字如下:
第1次:1
第2次:2
第3次:3
第4次:5
第5次:8
第6次:13
第7次:21
第8次:34
第9次:55
第10次:89
第11次:144
写出100次的数是什么。
查看答案

Q7

文件内容如下:
123abc456
456def123
567abc789
789def567
要求输出:
456ABC123
123DEF456
789ABC567
567DEF789
查看答案

标签:Shell 发布于:2019-11-23 06:54:37