第八 面试题实战 一
@(shell脚本)[学习]
[toc]
前言
本章内容来自《跟老男孩学Linux运维:Shell编程实战》第19章内容。
可以说本篇内容相当于整本书的一个总结实战
面试题1:批量生成随机字符文件名
使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy。例如:txynzwofgg_oldboy.html
分析
随机生成小写字母,可以使用openssl
函数生成
面试题2:批量改名
将19.1.1所得文件中的oldboy改成oldgirl并且将扩展名html全部大写
问题分析
可以使用sed加也可以使用for循环。
也可以使用专门的改名命令,rename
面试题3:批量创建特殊要求用户
批量创建10个系统账号oldboy01-oldboy10并设置密码(密码为随机数,要求是字符和数字的混合)
问题分析
主要使用useradd
命令和passwd --stdin
命令一个创建用户,一个传入密码,随机密码可以用openssl来创建
面试题4:扫描网络内存活主机
判断某个网段内当前在线的ip有哪些?
问题分析
有个实用的命令nmap
一般预装,没有的话yum install nmap -y
没有yum的话,nmap官网。
面试题5:解决DDOS攻击
问题分析
根据Web日志或网络连接数,监控当某个ip并发连接数或短时内PV达到100时,即调用防火墙命令封掉对应IP。防火墙命令:iptables -I INPUT -s IP -j DROP
面试题6:MySQL数据库分库备份
问题分析
使用for循环
面试题7:MYSQL分库分表备份
问题分析
和上面一样,只是多一个循环嵌套
面试题8:利用bash for循环打印下面字母数不大于6的单词
问题分析
可以使用${\#char}
命令来获取单词长度
面试题9:MySQL主从复制异常监控
问题分析
开发一个守护进程脚本,每30s监控一次MySQL主从复制异常
面试题10:比较整数大小
问题分析
先判断是否传参,再判断参数个数,再判断参数类型,最后比较
面试题11:菜单自动化软件部署
问题分析
同上