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小时内删除。
Mysql面试笔试题
下一篇 »
推荐文章
热门文章
-
m函数数字提取
2025-01-07 -
jest断言方法大全
2025-01-07 -
中兴ZXSEC US 管理员手册
2025-01-07 -
keras系列(一):参数设置
2025-01-07 -
Qt从QString中提取出数字
2025-01-07 -
element input 金额千分位格式化
2025-01-07 -
freemaker 参数解析正则
2025-01-07 -
C#正则验证数字
2025-01-07 -
form表单验证正则
2025-01-07 -
scanf正则表达式用法
2025-01-07 -
grafana value的正则表达式
2025-01-07 -
Android平台浮点数运算应用
2025-01-07 -
js-(JS正则表达式验证数字)
2025-01-07 -
判断Python输入是否是整数,字符,或浮点数
2025-01-07 -
c语言 sscanf 正则规则
2025-01-07 -
从文本中提取数值技巧
2025-01-07 -
js将整数转换成两位浮点数的方法
2025-01-07 -
vue正则限制浮点数
2025-01-07 -
8到20的结尾的正则
2025-01-07 -
shell 正则表达式 最后一行
2025-01-07
最新文章
-
应用程序的安全检测方法、装置、电子设备和存储介质
2025-01-07 -
VBA之正则表达式(1)--基础篇
2025-01-07 -
代码编辑的辅助方法、装置及电子设备
2025-01-07 -
SHELL查字符串中包含字符的命令
2025-01-07 -
String方法中replace和replaceAll的区别详解(源码分析)
2025-01-07 -
双字节符号正则
2025-01-07
发表评论