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

 

淘米和上海埃富梦科技,笔试题python


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

敬请期待。。。。。linux


一、如何检测某个端口所占用的进程nginx

答:如检测3306端口所占用的进程:使用命令:面试


[root@haojiu ~]# lsof -i:3306sql

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEshell

mysqld  2452 mysql   10u  IPv4  13315      0t0  TCP *:mysql (LISTEN)数据库



二、对于linux主机的cpu负载使用,什么状况下user的比例升高,什么状况下system的比例升高,请联系实际举例。vim

答:后续补充。。。bash



三、在不umount的状况下,如何从新设置mount的参数。

答:这个问题豪鹫也没测试过,但网上有网友提供的作法,请各位务必在实验环境中测试经过以后才能在生产环境上使用;

命令用法:[root@haojiu ~]# mount -o remount,otheroptions /mountpoint



四、不当心在系统下执行了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)'



五、linux文件的权限位x对目录和文件有何不一样?

答:相对于普通用户而言,x位对于目录来讲,表示用户对这个目录有浏览权限,便可以ls列出目录下的东西。x位对于文件来讲,表示用户对这个文件有执行的权限。





六、找出/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;




七、如何查找某一文件被哪一个进程打开?

答:好比查看/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



八、新增一块存储设备,lvm操做的命令如何写

答:LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上创建文件系统。

对新增存储设备的lvm操做步骤以下:

一、 建立分区

二、 建立物理卷

三、 建立卷组

四、 激活卷组

五、 添加新的物理卷到卷组中

六、 建立逻辑卷

七、调整逻辑卷的大小

八、挂载使用



九、给主机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




十、socket和tcp访问mysql的区别?

答:TCP/IP 访问mysql:这种方式会在TCP/IP链接上创建一个基于网络的链接请求,通常是client链接跑在Server上的MySQL实例,2台机器经过一个TCP/IP 网络链接。(通常是mysql客户端跟服务端不在同一机器上)

socket访问mysql:UNIX域套接字并非网络协议,因此只能在MySQL客户端和数据库实例在同一台服务器上使用,用户能够在配置文件中指定套接字文件。




2、shell

一、使用awk打印出 welcome to taomee

答:假设welcome to taomee是test.txt中的内容,那么能够执行如下命令:

[root@haojiu ~]# awk '{print $0}' test.txt 




二、如何将一个文件中的taomee、******、peoplenet中的*内容进行替换成network(*的内容不一样)

答:假设taomee、******、peoplenet这行内容存在于test.txt文件中,则能够执行如下命令:

[root@haojiu ~]# sed -i 's/\*\*\*\*\*\*/network/g' test.txt

(其余方法请网友提供~.~)



三、找出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

方法还有不少,请网友补充~.~




四、打印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


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



五、删除一个文件中行号为奇数的行

答:sed  'N;{P;d}' filename   #这个是网友给出的,我也不太明白什么意思,请高手在评论区代为解释。。



六、替换某一个文件的字符串

答:豪鹫提供两种方法,sed和vim,例如将文件中全部的jjj替换成hhh


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

[root@haojiu ~]# vim test.txt

:%s/jjj/hhh/g




七、exec和souce区别

答:所谓 source 就是让 script 在当前 shell 内执行、而不是产生一个 sub-shell 来执行。

 exec 也是让 script 在同一个行程上执行,可是原有行程则被结束了。

他们的最大区别就是在于:原有行程会否终止。


八、显示24小时前的内容,

答:后续补充。。。


九、linux的优化

答:后续补充。。。


十、iptables表和链

答:请网友补充~_~

 

文章原始出处:http://2358205.blog.51cto.com/2348205/1688557

相关文章
相关标签/搜索