您的位置:首页 > 运维架构 > Linux

运维屌丝回答网传Linux运维面试题(四)

2015-08-26 17:46 756 查看
淘米和上海埃富梦科技,笔试题

后续将整理出豪鹫亲身经历面试过的公司运维技术面的题目(非笔试题目,技术面运维经理的提问),并也附上答案。
敬请期待。。。。。

1、如何检测某个端口所占用的进程
答:如检测3306端口所占用的进程:使用命令:

[root@haojiu ~]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 2452 mysql 10u IPv4 13315 0t0 TCP *:mysql (LISTEN)

2、对于linux主机的cpu负载使用,什么情况下user的比例升高,什么情况下system的比例升高,请联系实际举例。
答:后续补充。。。

3、在不umount的情况下,如何重新设置mount的参数。
答:这个问题豪鹫也没测试过,但网上有网友提供的做法,请各位务必在实验环境中测试通过之后才能在生产环境上使用;
命令用法:[root@haojiu ~]# mount -o remount,otheroptions /mountpoint

4、不小心在系统下执行了chmod -x /bin/chmod 怎么办?
答:豪鹫在自己的虚拟机中做了一下这个命令的操作,做之前先备份一下原来的chmod命令,如下:(附chmod 默认的权限为:644)

[root@haojiu ~]# cp /bin/chmod /bin/chmod.bak -rp
[root@haojiu ~]# chmod -x /bin/chmod
[root@haojiu ~]# chmod +x vmstat.sh
-bash: /bin/chmod: Permission denied //执行了该命令之后,再也没权限赋权给其他文件了

如果不幸执行了以上命令,有很多方法恢复,请各位自行摸索,豪鹫提供以下几种处理办法,都是我测试通过的:

A.从其他操作系统版本一致的主机scp一个chmod命令过来即可;
B.执行命令:[root@haojiu ~]# /lib64/ld-linux-x86-64.so.2 /bin/chmod +x /bin/chmod
C.使用python命令:[root@haojiu ~]# python -c '__import__("os").chmod("/bin/chmod", 0755)'

5、linux文件的权限位x对目录和文件有何不同?
答:相对于普通用户而言,x位对于目录来说,表示用户对这个目录有浏览权限,即可以ls列出目录下的东西。x位对于文件来说,表示用户对这个文件有执行的权限。

6、找出/taomee目录下的所有常规文件并设置权限755
答:豪鹫提供两种方法:
[root@haojiu ~]# find taomee/ -type f |xargs chmod 755
[root@haojiu ~]# cd taomee;for i in `ls -l | grep '^-'|awk '{print $9}'` ;do chmod 755 $i ;done;

7、如何查找某一文件被哪个进程打开?
答:比如查看/usr/bin/mysqld_safe这个文件是被哪个进程打开的,可以使用命令:

[root@haojiu ~]# lsof /usr/bin/mysqld_safe
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld_sa 2339 root 255r REG 8,2 18204 807630 /usr/bin/mysqld_safe

8、新增一块存储设备,lvm操作的命令如何写
答:LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。
对新增存储设备的lvm操作步骤如下:
1、 创建分区
2、 创建物理卷
3、 创建卷组
4、 激活卷组
5、 添加新的物理卷到卷组中
6、 创建逻辑卷
7、调整逻辑卷的大小
8、挂载使用

9、给主机host:172.16.0.2增加gateway10.0.0.1
答:
即时生效,但也只是临时生效:[root@haojiu ~]# route add default gw 10.0.0.1
永久生效,修改配置文件的gateway:[root@haojiu ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
开机生效:[root@haojiu ~]# echo "route add default gw 10.0.0.1" >> /etc/rc.local

10、socket和tcp访问mysql的区别?
答:TCP/IP 访问mysql:这种方式会在TCP/IP连接上建立一个基于网络的连接请求,一般是client连接跑在Server上的MySQL实例,2台机器通过一个TCP/IP 网络连接。(一般是mysql客户端跟服务端不在同一机器上)
socket访问mysql:UNIX域套接字并不是网络协议,所以只能在MySQL客户端和数据库实例在同一台服务器上使用,用户可以在配置文件中指定套接字文件。

二、shell
1、使用awk打印出 welcome to taomee
答:假设welcome to taomee是test.txt中的内容,那么可以执行以下命令:
[root@haojiu ~]# awk '{print $0}' test.txt

2、如何将一个文件中的taomee、******、peoplenet中的*内容进行替换成network(*的内容不同)
答:假设taomee、******、peoplenet这行内容存在于test.txt文件中,则可以执行以下命令:
[root@haojiu ~]# sed -i 's/\*\*\*\*\*\*/network/g' test.txt
(其他方法请网友提供~.~)

3、找出access.log中访问top 10的ip地址

答:豪鹫提供几种方法:
[root@haojiu ~]# awk '{print $1}' nginx.log |sort |uniq -c|sort -nr|head
[root@haojiu ~]# cat nginx.log |cut -d ' ' -f 1 |sort |uniq -c | sort -nr | awk '{print $0 }' | head
[root@haojiu ~]# awk '{print $1}' nginx.log| sort | uniq -c | sort -n -k 1 -r | head
方法还有很多,请网友补充~.~

4、打印1-100奇数?打印1-100偶数?打印1-100的和?打印1-100的奇数和?打印1-100的偶数和?打印1-100的质数?

[root@haojiu ~]# cat jishu.sh
#!/bin/bash
#script using for print 奇数 .
#author by haojiu
#date 2015-x-x

for((i=1;i<=100;i+=2))
do
echo $i
done

----------------------------------------------
[root@haojiu ~]# cat jishu.sh
#!/bin/bash
#script using for print 偶数 .
#author by haojiu
#date 2015-x-x

for((i=2;i<=100;i+=2))
do
echo $i
done

----------------------------------------------
[root@haojiu ~]# cat jishu.sh
#!/bin/bash
#script using for print 总和 .
#author by haojiu
#date 2015-x-x

sum=0
for i in {1..100}
do
let "sum+=i"
done
echo "$sum"

----------------------------------------------
[root@haojiu ~]# cat jishu.sh
#!/bin/bash
#script using for print 奇数和 .
#author by haojiu
#date 2015-x-x

sum=0
for((i=1;i<=100;i+=2))
do
let "sum+=i"
done
echo "sum=$sum"

----------------------------------------------
[root@haojiu ~]# cat jishu.sh
#!/bin/bash
#script using for print 偶数和 .
#author by haojiu
#date 2015-x-x

sum=0
for((i=2;i<=100;i+=2))
do
let "sum+=i"
done
echo "sum=$sum"
----------------------------------------------
[root@haojiu ~]# cat jishu.sh
#!/bin/bash
#script using for print 质数 .
#author by Internet
#date 2015-x-x

for i in `seq 2 100`
do
factor $i | awk -F'[: ]' 'NF==3{print $1}'
done

----------------------------------------------

5、删除一个文件中行号为奇数的行
答:sed 'N;{P;d}' filename #这个是网友给出的,我也不太明白什么意思,请高手在评论区代为解释。。

6、替换某一个文件的字符串
答:豪鹫提供两种方法,sed和vim,例如将文件中所有的jjj替换成hhh

[root@haojiu ~]# sed -i "s/jjj/hhh/g" test.txt
[root@haojiu ~]# vim test.txt
:%s/jjj/hhh/g

7、exec和souce区别
答:所谓 source 就是让 script 在当前 shell 内执行、而不是产生一个 sub-shell 来执行。
exec 也是让 script 在同一个行程上执行,但是原有行程则被结束了。
他们的最大区别就是在于:原有行程会否终止。

8、显示24小时前的内容,
答:后续补充。。。

9、linux的优化
答:后续补充。。。

10、iptables表和链
答:请网友补充~_~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 运维 面试题