淘米和上海埃富夢科技,筆試題
後續將整理出豪鷲親身經歷面試過的公司運維技術面的題目(非筆試題目,技術面運維經理的提問),並也附上答案。
敬請期待。。。。。
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