您的位置:首页 > 博客中心 > 网络系统 >

那些年我们一起做过的shell面试题(一)

时间:2022-04-03 11:09

企业真实shell面试题,一起来挑战把!

声明:如有雷同,纯属抄袭

 

1、开发一个守护进程脚本,每30秒执行一次,检查mysql主从同步

 

[root@xiaoya scripts]# cat check_mysql_slave_status.sh
#!/bin/bash
# date 2016-1-5
# author tom
# mail
# function check_mysql_slave_status
# version 4.1.2

####do it behind start mysql####
#grep "slave-skip-errors = " /data/3307/my.cnf |awk -F "[ ]" ‘{print $3}‘|sed -i "s#.*#1158\,1159\,1007\,1008\,1062#g"
####define $IP $DATE####
IP=$(ifconfig eth0|awk ‘{if(NR==2)print $0}‘|awk -F "[ :]+" ‘{print $4}‘)
DATE=$(date "+%F %H:%M:%S")
####check mysql_slave_status####
mysql_slave_status=$(mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave status\G"|sed -n ‘12,13p‘|awk -F ":" ‘{print $2}‘|uniq -c)
if [ "$mysql_slave_status" == "      2  Yes" ]
then
  echo "mysql slave is runing ok"
else
  echo "#####################$DATE $IP##########################" >>~/oldboy.txt
  echo "warn:mysql slave is not runing " >>~/oldboy.txt && mail -s "check_mysql_slave_status" <~/oldboy.txt
fi

[root@xiaoya scripts]# cat do.sh
#!/bin/bash
# date 2016-1-5
# author tom
# mail
# function do check_mysql_slave_status
# version 4.1.2

while true
do
/bin/sh /server/scripts/check_mysql_slave_status.sh
sleep 30

done

 

2、用for循环随机生成10个字母加固定字段的10个html文件

 

[root@xiaoya scripts]# cat touch_html.sh
#!/bin/bash
# date 2016-1-5
# author tom
# mail
# function touch html
# version 4.1.2

A=$(head -c 500 /dev/urandom |tr -dc a-z|head -c 10)
B=_oldboy.html
cd ~/oldboy
for i in {1..10}
do
A=$(head -c 500 /dev/urandom |tr -dc a-z|head -c 10)
touch $A$B-$i
mv $A$B-$i $A$B
done

 

 3、将以上文件中的oldboy全部替换为oldgirl,并将html换成HTML(用for循环)

法1):

[root@xiaoya scripts]# cat change_touch_html.sh
#!/bin/bash
# date 2016-1-5
# author tom
# mail
# function change touch html
# version 4.1.2

for n in `ls ~/oldboy`
do
echo $n |sed "s#oldboy#oldgirl#g"|sed "s#html#HTML#g"
done

 

 

补充:

查看定时任务的执行情况[root@xiaoya scripts]# tail -f /var/log/cron

本文出自 “” 博客,请务必保留此出处

本类排行

今日推荐

热门手游