【实战编程题】

企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员。提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:
阶段1:开发一个守护进程脚本每30秒实现检测一次。
阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误。
阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分)

企业面试题2:
使用for循环在/oldboy目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件,名称例如为:

[root@oldboy oldboy]# sh /server/scripts/oldboy.sh
[root@oldboy oldboy]# ls
coaolvajcq_oldboy.html qnvuxvicni_oldboy.html vioesjmcbu_oldboy.html
gmkhrancxh_oldboy.html tmdjormaxr_oldboy.html wzewnojiwe_oldboy.html
jdxexendbe_oldboy.html ugaywanjlm_oldboy.html xzzruhdzda_oldboy.html
qcawgsrtkp_oldboy.html vfrphtqjpc_oldboy.html
#!/bin/bash
path=/oldboy
for i in {1..10}
do
	[ -d $path ] || mkdir $path
	name=$(pwgen -A0 10 1)
	touch $path/${name}_oldboy.html
done

企业面试题3:请用至少两种方法实现!
将以上文件名中的oldboy全部改成oldgirl(用for循环实现),并且html改成大写。

#!/bin/bash
path=/oldboy
for i in `ls $path `
do
	mv $path/$i $path/${i/oldboy.html/oldgirl.HTML}
done

企业面试题4:
批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串)。

#!/bin/bash
name=oldboy
for i in {01..10}
do
	if [ id $name$i ] &>/dev/null
	then
		echo "$name$i已存在!"
	else
		useradd $name$i
		random=$(pwgen -A0 8 1)
		echo $random | passwd --stdin $name$i &>/dev/null
	fi
done

企业面试题5:
写一个脚本,实现判断10.0.0.0/24网络里,当前在线用户的IP有哪些(方法有很多)

#!/bin/bash
ip=10.0.0.
for i in {1..255}
do
	ping -c 2 $ip$i &>/dev/null
	if [ $? -eq 0 ]
	then
		echo "$ip$i is up"
	else
		echo "$ip$i is down"
	fi
done 

企业实战题6:请用至少两种方法实现!
写一个脚本解决DOS攻击生产案例
提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔3分钟。防火墙命令为:iptables -A INPUT -s 10.0.1.10 -j DROP。

1.vim dos.sh
#!/bin/bash
awk '{IP[$1]++} END{for (i in IP) {print IP[$i],$i} }' access.log  >> /tmp/ip.txt
while read $number $ip
do
	if [ $number -ge 100 ] 
	then
		iptables -A INPUT -s $ip -j DROP
	fi
	echo "from $ip rejected..."
done < /tmp/ip.txt
2.chmod +x dos.sh
3.crontab -e
*/3 * * * * /bin/sh dos.sh

企业实战题7:
开发mysql多实例启动脚本:
已知mysql多实例启动命令为:mysqld_safe –defaults-file=/data/3306/my.cnf &
停止命令为:mysqladmin -u root -poldboy123 -S /data/3306/mysql.sock shutdown
请完成mysql多实例启动启动脚本的编写
要求:用函数,case语句、if语句等实现。

企业实战题8:如何实现对MySQL数据库进行分库备份,请用脚本实现

#!/bin/bash
database=mysql -uroot -p密码 -e "show databases;" | grep -v "Database"
for i in $database
do
	path=/bak
	[ -d $path ] || mkdir $path
	mysqldump -uroot -p密码 -B $i > $path/$i.sql
done 

企业实战题9:如何实现对MySQL数据库进行分库加分表备份,请用脚本实现
企业面试题10:请用至少两种方法实现!
bash for循环打印下面这句话中字母数不大于6的单词(昆仑万维面试题)。
I am oldboy teacher welcome to oldboy training class.

#!/bin/bash
string="I am oldboy teacher welcome to oldboy training class"
for i in $string
do
	if [ ${#i} -lt 6 ]
	then
		echo $i
	fi
done

企业面试题11:开发shell脚本分别实现以脚本传参以及read读入的方式比较2个整数大小。以屏幕输出的方式提醒用户比较结果。注意:一共是开发2个脚本。当用脚本传参以及read读入的方式需要对变量是否为数字、并且传参个数做判断。
#以下不正确

v=`echo $1 | sed 's/[0-9]//g'`
vv=`echo $2 | sed 's/[0-9]//g'`
echo $v
echo $vv
if [ -n $v ]
then
	echo "please input a number"
elif [ -n $vv ]
then	
	echo "please input a number"
else
	if [ $1 -eq $2 ]
	then
		echo "$1 等于 $2"
	elif [ $1 -gt $2 ]
	then
		echo "$1 大于 $2"
	else
		echo "$1 小于 $2"
	fi
fi

企业面试题12:

打印选择菜单,一键安装Web服务:

[root@oldboyscripts]# sh menu.sh
1.[install lamp]
2.[install lnmp]
3.[exit]

pls input the num you want:

要求:

1、当用户输入1时,输出“startinstalling lamp.”然后执行/server/scripts/lamp.sh,脚本内容输出”lamp is installed”后退出脚本;
2、当用户输入2时,输出“startinstalling lnmp.” 然后执行/server/scripts/lnmp.sh输出”lnmp is installed”后退出脚本;
3、当输入3时,退出当前菜单及脚本;
4、当输入任何其它字符,给出提示“Input error”后退出脚本。
5、要对执行的脚本进行相关条件判断,例如:脚本是否存在,是否可执行等。

企业面试题13:

1、监控web服务是否正常,不低于3种监控策略。
2、监控db服务是否正常,不低于3种监控策略。
要求间隔1分钟,持续监控。

企业面试题14:监控memcache服务是否正常,模拟用户(web客户端)检测。

使用nc命令加上set/get来模拟检测,以及监控响应时间及命中率。

企业面试题15:面试及实战考试题:监控web站点目录(/var/html/www)下所有文件是否被恶意篡改(文件内容被改了),如果有就打印改动的文件名(发邮件),定时任务每3分钟执行一次(10分钟时间完成)。
企业面试题16:

写一个网络服务独立进程模式下rsync的系统启动脚本

例如:/etc/init.d/rsyncd {start|stop|restart} 。
要求:
1.要使用系统函数库技巧。
2.要用函数,不能一坨SHI的方式。
3.可被chkconfig管理。
企业面试题17:

抓阄题目:运维派提供外出企业项目实践机会(第6次)来了(本月中旬),但是,名额有限,队员限3人(班长带队)。

因此需要挑选学生,因此需要一个抓阄的程序:

要求:

1、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。
2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出继续等待别的学生输入。

企业面试题18:
已知下面的字符串是通过RANDOM随机数变量md5sum|cut -c 1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字?

21029299
00205d1c
a3da1677
1f6d12dd
890684b

企业面试题19:批量检查多个网站地址是否正常

要求:shell数组方法实现,检测策略尽量模拟用户访问思路

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑着蜗牛追汤圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值