shell 编程必须会的30道题⽬
linux 运维⼈员必会的30道shell 编程⾯试题
⼀、序⾔
是⽼男孩出的企业⾯试题培训叫做:合格linux 运维⼈员必会的30道shell 编程⾯试题及讲解,于是乎,,我打算每个都⾃⼰写⼀遍,,PS :我是不是闲的蛋疼
⼆、开撸
企业⾯试题1:(⽣产实战案例):监控MySQL 主从同步是否异常,如果异常,则或者邮件给管理员。提⽰:如果没主从同步环境,可以⽤下⾯⽂本放到⽂件⾥读取来模拟:
阶段1:开发⼀个守护进程脚本每30秒实现检测⼀次。
阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误。
阶段3:请使⽤数组技术实现上述脚本(获取主从判断及错误号部分)
##这个还没写,,因为还要搞mysql 主从复制的环境,,写把下⾯简单的撸了先。 。
企业⾯试题2:
使⽤for 循环在/oldboy ⽬录下通过随机⼩写10个字母加固定字符串oldboy 批量创建10个html ⽂件,名称例如为:
>>##我的脚本2>>>>>>>>####[python] view plain  copy
1. [root@oldboy oldboy]# sh /server/scripts/oldboy.sh
2. [root@oldboy oldboy]# ls
3. coaolvajcq_oldboy.html  qnvuxvicni_oldboy.html  vioesjmcbu_oldboy.html
4. gmkhrancxh_oldboy.html  tmdjormaxr_oldboy.html  wzewnojiwe_oldboy.html
5. jdxexendbe_oldboy.html  ugaywanjlm_oldboy.html  xzzruhdzda_oldboy.html
6. qcawgsrtkp_oldboy.html  vfrphtqjpc_oldboy.html
企业⾯试题3:请⽤⾄少两种⽅法实现!
将以上⽂件名中的oldboy 全部改成oldgirl(⽤for 循环实现),并且html 改成⼤写。
mysql面试题sql>>##我的脚本3_1>>>>>>>>####
>>##我的脚本3_2>>>>>>>>####6. create(){  7.  8.    i=1  9.    while  (($i<11))  10.    do  11.        cd $WORK_DIR && touch `tr -dc "a-z"</dev/urandom |head -c 10`_oldboy.html  12.        i=$(($i+1))  13.    done  14. }  15.  16. check(){  17.    if  [ -d $WORK_DIR ];  18.    then  19.        create  20.    else  21.        mkdir $WORK_DIR  22.        create  23.    fi  24. }  25.  26.rgb颜表大全
check
[python] view plain  copy
1. [root@cjy linux-20]# ./
invalid sig2.sh  2.
3. [root@cjy linux-20]# ls /oldboy/
4. daijyyadst_oldboy.html  mjmcfvvjcq_oldboy.html  qmgbrihbco_oldboy.html  yrxovjbwlv_oldboy.html
5. djfhdphvqf_oldboy.html  mohijpfehs_oldboy.html  xdtspqouln_oldboy.html
6. gjczumsnfy_oldboy.html  nfwzssqtus_oldboy.html  yhqruiiota_oldboy.htm
[python] view plain  copy
1. [root@cjy linux-20]# vim 3_1.shes6还是ec6
2. #!/bin/bash
3.
4. change_name(){
5. DIR=/oldboy
6. FILE=`ls /oldboy`
7. GIRL=_oldgirl.HTML
8.
9. for  i in  $FILE  10. do  11.    c=`echo $i | cut -c 1-10`  12.    mv $DIR/$c* $DIR/$c$GIRL  13. done  14. }  15.  16.
change_name
企业⾯试题4:
批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串)。
>>##我的脚本4>>>>>>>>####
6. FILE=`ls /oldboy`
7. GIRL=_oldgirl.HTML
8.
9. for  i in  $FILE  10. do  11.    c=`echo $i | awk -F '_' '{print $1}'`  12.    mv $DIR/$c* $DIR/$c$GIRL  13. done  14. }  15.  16. change_name
[python] view plain  copy
1. [root@cjy linux-20]# ./3_1.sh
2. [root@cjy linux-20]# ls /oldboy/
3. daijyyadst_oldgirl.HTML  mjmcfvvjcq_oldgirl.HTML  qmgbrihbco_oldgirl.HTML  yrxovjbwlv_oldgirl.HTML
4. djfhdphvqf_oldgirl.HTML  mohijpfehs_oldgirl.HTML  xdtspqouln_oldgirl.HTML
5. gjczumsnfy_oldgirl.HTML  nfwzssqtus_oldgirl.HTML  yhqruiiota_oldgirl.HTML
6.
7. for i in {01..10}
8.    do
9.          RPASSWD=$(tr -dc [:alpha:] < /dev/urandom |head -c 8)
10.          useradd $USER$i
11.          echo $RPASSWD|passwd $USER$i --stdin
12.          echo $USER$i----$RPASSWD >> /
13.    done
14. }
15.
16. del_user(){
17.
18. for j in {01..10}
19.    do
20.        userdel $USER$j
21.        rm -rf /home/$USER$j
22.    done
stackoverflow被墙
23. }
24.
25. case $1 in
sqlyog链接不到服务器
26.    create)
27.        create_user
28.    ;;
29. del)
30.        del_user
31.    ;;
32.    *)
33.        echo "Usage:Please use $0 create or $0 del."
34.        echo ">>>>>>>#"
35.        echo "create: create user $USER 01-10 and give it random passwd."
36.        echo "del: delete $USER 01-10 and /home/$USER 01-10 directory. "
37.    ;;
38.    esac
企业⾯试题5:
写⼀个脚本,实现判断10.0.0.0/24⽹络⾥,当前在线⽤户的IP 有哪些(⽅法有很多)>>##我的脚本5>>>>>>>>####    1. [root@cjy linux-20]# ./4.sh  2. Usage:Please use ./4.sh create or  ./4.sh del .  3. >>>>>>>#  4. create: create user oldboy 01-10 and  give it random passwd.  5. del : delete oldboy 01-10 and  /home/oldboy 01-10 directory.  6.  7. [root@cjy linux-20]# ./4.sh create  8. 正在创建信箱⽂件: ⽂件已存在  9. 更改⽤户 oldboy01 的密码 。  10. passwd : 所有的⾝份验证令牌已经成功更新。  11. 正在创建信箱⽂件: ⽂件已存在  12. 更改⽤户 oldboy02 的密码 。  13. passwd : 所有的⾝份验证令牌已经成功更新。  14. 正在创建信箱⽂件: ⽂件已存在  15. 更改⽤户 oldboy03 的密码 。  16. passwd :
所有的⾝份验证令牌已经成功更新。  17. 正在创建信箱⽂件: ⽂件已存在  18. 更改⽤户 oldboy04 的密码 。  19. passwd : 所有的⾝份验证令牌已经成功更新。  20. 正在创建信箱⽂件: ⽂件已存在  21. 更改⽤户 oldboy05 的密码 。  22. passwd : 所有的⾝份验证令牌已经成功更新。  23. 正在创建信箱⽂件: ⽂件已存在  24. 更改⽤户 oldboy06 的密码 。  25. passwd : 所有的⾝份验证令牌已经成功更新。  26. 正在创建信箱⽂件: ⽂件已存在  27. 更改⽤户 oldboy07 的密码 。  28. passwd : 所有的⾝份验证令牌已经成功更新。  29. 正在创建信箱⽂件: ⽂件已存在  30. 更改⽤户 oldboy08 的密码 。  31. passwd : 所有的⾝份验证令牌已经成功更新。  32. 正在创建信箱⽂件: ⽂件已存在  33. 更改⽤户 oldboy09 的密码 。  34. passwd : 所有的⾝份验证令牌已经成功更新。  35. 正在创建信箱⽂件: ⽂件已存在  36. 更改⽤户 oldboy10 的密码 。  37. passwd : 所有的⾝份验证令牌已经成功更新。  38.  39. [root@cjy linux-20]# vim /etc/passwd  40. oldboy01:x:503:503::/home/oldboy01:/bin/bash  41. oldboy02:x:504:504::/home/oldboy02:/bin/bash  42. oldboy03:x:505:505::/home/oldboy03:/bin/bash  43. oldboy04:x:506:506::/home/oldboy04:/bin/bash  44. oldboy05:x:507:507::/home/oldboy05:/bin/bash  45. oldboy06:x:508:508::/home/oldboy06:/bin/bash  46. oldboy07:x:509:509::/home/oldboy07:/bin/bash  47. oldboy08:x:510:510::/home/oldboy08:/bin/bash  48. oldboy09:x:511:511::/home/oldboy09:/bin/bash  49. oldboy10:x:512:512::/home/oldboy10:/bin/bash  50.  51. [root@cjy linux-20]# ./4.sh del    #删除⽤户

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论