设为首页 加入收藏

TOP

企业Shell面试题及企业运维实战案例(三)(二)
2019-09-03 02:40:12 】 浏览:461
Tags:企业 Shell 试题 实战 案例
sql -u$Myuser -p$Mypass
" Mydump="mysqldump -u$Myuser -p$Mypass -x -B -F -R" Dblist=`$Mycmd -e "show databases;"|sed '1,2d'|egrep -v "_schema|mysql"` for database in $Dblist do $Mydump $database|gzip >/tmp/${database}_$(date +%F).sql.gz &>/dev/null done

7、企业Shell面试题7:脚本实现MySQL数据库分库分表备份

#!/bin/sh
Myuser=root
Mypass=123456
Mycmd="mysql -u$Myuser -p$Mypass"
Mydump="mysqldump -u$Myuser -p$Mypass -x -F -R"
Dblist=`$Mycmd -e "show databases;"|sed '1,2d'|egrep -v "_schema|mysql"`
for database in $Dblist
do
  Tablist=`$Mycmd -e "show tables from $database;"|sed 1d`
  for table in $Tablist
  do
  mkdir -p /tmp/${database}
  $Mydump $database $table|gzip >/tmp/${database}/${table}_$(date +%F).sql.gz
  done
done

8、企业Shell面试题8:筛选符合长度的单词案例

利用bash for循环打印下面这句话中字母数不大于6的单词(某企业面试真题)。

  I am oldboy teacher welcome to oldboy training class

解答:

方法一:
#!/bin/sh for word in I am oldboy teacher welcome to oldboy training class do if [ ${#word} -le 6 ] then echo $word fi done
方法二:数组
#!/bin/sh
word=(I am oldboy teacher welcome to oldboy training class)
for((i=0;i<${#word[*]};i++))
do 
  if [ `echo ${word[i]}|wc -L` -le 6 ]
    then
      echo ${word[i]}
  fi
done
方法三:awk
echo "I am oldboy teacher welcome to oldboy training class"|awk '{for(i=1;i<=NF;i++)if(length($i)<=6)print $i}'

9、企业Shell面试题9:MySQL主从复制异常监控案例

10、企业Shell面试题10:比较整数大小经典案例

       综合实战案例:开发shell脚本分别实现以脚本传参以及read读入的方式比较2个整数大小。用条件表达式(禁止if)进行判断并以屏幕输出的方式提醒用户比较结果。注意:一共是开发2个脚本。当用脚本传参以及read读入的方式需要对变量是否为数字、并且传参个数不对给予提示

解答:

传参的方法:
#!/bin/sh
num1=$1
num2=$2
[ $# -ne 2 ] && echo "请输入两个数字:" && exit 1
expr 1 + $num1 &>/dev/null
[ $? -eq 2 ] && echo "输入的第一个数字不是整数" && exit 2

expr 1 + $num2 &>/dev/null
[ $? -eq 2 ] && echo "输入的第二个数字不是整数" && exit 2

[ $num1 -lt $num2 ] && echo "$num1<$num2" && exit 0
[ $num1 -eq $num2 ] && echo "$num1=$num2" && exit 0
echo "$num1>$num2"
read读入方法:
#!/bin/sh
read -p "请输入第一个数字:" num1
read -p "请输入第二个数字:" num2
expr 1 + $num1 &>/dev/null
[ $? -eq 2 ] && echo "输入的第一个数字不是整数" && exit 2

expr 1 + $num2 &>/dev/null
[ $? -eq 2 ] && echo "输入的第二个数字不是整数" && exit 2

[ $num1 -lt $num2 ] && echo "$num1<$num2" && exit 0
[ $num1 -eq $num2 ] && echo "$num1=$num2" && exit 0
echo "$num1>$num2"

11、企业Shell面试题11:菜单自动化软件部署经典案例

综合实例:打印选择菜单,按照选择一键安装不同的Web服务。
示例菜单:
[root@oldboy scripts]# shmenu.sh
    1.[install lamp]
    2.[install lnmp]
    3.[exit]
    pls input the num you want:
要求:
1、当用户输入1时,输出“startinstalling lamp.提示”然后执行/server/scripts/lamp.sh,脚本内容输出"lampis installed"后退出脚本,工作中就是正式lamp一键安装脚本;
2、当用户输入2时,输出“startinstalling lnmp.提示” 然后执行/server/scripts/lnmp.sh输出"lnmpis installed"后退出脚本,工作中就是正式lnmp一键安装脚本;
3、当输入3时,退出当前菜单及脚本;
4、当输入任何其它字符,给出提示“Input error”后退出脚本;
5、要对执行的脚本进行相关的条件判断,例如:脚本文件是否存在,是否可执行等判断,尽量用上前面讲解的知识点。

解答:

#!/bin/sh
. /etc/init.d/fu
首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Installation failed: Timeout wa.. 下一篇Activity生命周期方法调用finish..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目