2017最新企业Shell面试题及企业运维实战共30道案例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017最新企业Shell面试题及企业运维实战共30道案例相关的知识,希望对你有一定的参考价值。

1、企业Shell面试题1:批量生成随机字符文件名案例

使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下:

[[email protected] C19]# ls /oldboy
apquvdpqbk_oldboy.html  mpyogpsmwj_oldboy.html  txynzwofgg_oldboy.html
bmqiwhfpgv_oldboy.html  mtrzobsprf_oldboy.html  vjxmlflawa_oldboy.html
jhjdcjnjxc_oldboy.html  qeztkkmewn_oldboy.html
jpvirsnjld_oldboy.html  ruscyxwxai_oldboy.html

解答:

#!/bin/sh
[ ! -d /oldboy ] && mkdir /oldboy -p
for i in {01..10}
do
  pass=`uuidgen|cut -c 1-10`
  touch /oldboy/${pass}_oldboy.html
done

2、企业Shell面试题2:批量改名特殊案例

将以上面试题中结果文件名中的oldboy字符串全部改成oldgirl(最好用for循环实现),并且将扩展名html全部改成大写

解答:

方法一:
#!/bin/sh for i in `ls /oldboy/*.html` do mv $i `echo $i|sed ‘s#oldboy.html#oldgirl.HTML#g‘` done
方法二:
rename oldboy.html oldgirl.HTML *.html
方法三:
#!/bin/sh
cd /oldboy &&for i in `ls`
do
  str=`echo $i|cut -c -10`
  mv ${str}_oldboy.html ${str}_oldgril.HTML
done

3、企业Shell面试题3:批量创建特殊要求用户案例

批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机数,要求字符和数字等混合)

解答:

#!/bin/bash
for n in {01..10}
do
  pass=`uuidgen|cut -c 1-10`
  id oldboy$n &>/dev/null
  if [ $? -ne 0 ];then
    useradd oldboy$n
    echo $pass|passwd --stdin oldboy$n &>/dev/null
    echo -e "user: oldboy$n pass: $pass" >>/tmp/user.log
  else
        echo "oldboy$n 已存在"
  fi
done

4、企业Shell面试题4:扫描网络内存活主机案例

写一个Shell脚本,判断10.0.0.0/24网络里,当前在线的IP有哪些?

解答:

#!/bin/sh
. /etc/init.d/functions
for ip in {1..254}
do
  ping -c2 -W1 10.0.0.$ip &>/dev/null
  if [ $? -eq 0 ]
    then
    action "10.0.0.$ip" /bin/true
  fi
done

5、企业Shell面试题5:解决DOS攻击生产案例

    写一个Shell脚本解决DOS攻击生产案例。请根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100(读者根据实际情况设定),即调用防火墙命令封掉对应的IP。防火墙命令为:iptables-I INPUT -s IP地址 -j DROP

解答:

 



以上是关于2017最新企业Shell面试题及企业运维实战共30道案例的主要内容,如果未能解决你的问题,请参考以下文章

合格linux运维人员必会的30道shell编程面试题及讲解-08

合格linux运维人员必会的30道shell编程面试题及讲解-09

2017年最新企业面试题之shell

2017年最新企业面试题之shell

2017年最新企业面试题之shell

2017年最新企业面试题之shell