運維屌絲回答網傳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

相關文章
相關標籤/搜索