運維屌絲回答網傳Linux運維面試題(四)

 

淘米和上海埃富夢科技,筆試題


後續將整理出豪鷲親身經歷面試過的公司運維技術面的題目(非筆試題目,技術面運維經理的提問),並也附上答案。

敬請期待。。。。。


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表和鏈

答:請網友補充~_~

 

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章