歡迎光臨
每天分享高質量文章

網傳運維面試題,你答對了多少?

最近網上流傳了一份沒有答案的Linux運維面試題。51CTO博主豪鷲趁工作之餘,利用自己三年的運維經驗交出了一份答卷。歡迎大家一起來點評~
 

 上海實戰面試經歷
—-Linux 系統/運維面試總結


上海某網路公司面試題:

1、LINUX系統軟體安裝和解除安裝的常見方法
A.rpm包解除安裝:rpm -e XXX.rpm   (如果想忽略依賴,可加上–nodeps)
B.yum remove xxx.rpm  這種方法非常不建議使用,解除安裝過程會將待解除安裝的軟體包所依賴的軟體包一併解除安裝掉,很容易造成系統缺少某些包而崩潰等問題
C.原始碼包解除安裝:cd命令進入編譯後的軟體目錄,即安裝時的目錄,執行make uninstall命令即可;或者直接刪除安裝目錄

 

2、Windows和LINUX常用的遠端連線工具有那些
命令遠端連線工具:Xshell、SecureCRT、Putty、SSH Secure Shell Client等
圖形遠端連線工具:xmanager(需安裝配置服務並開啟177埠)、VNC-Viewer(linux需安裝vncserver)、windows自帶的遠端桌面(linux需安裝xrdp和vnc)

 

3、如何修改LINUX的IP地址、閘道器和主機名
A、修改IP地址、閘道器:編輯/etc/sysconfig/network-scripts/ifcfg-eth0,修改裡面IPADDR和GATEWAY內容,沒有這兩行,則新增即可,新增時確保BOOTPROTO=static,靜態地址,如IPADDR=192.168.1.100   GATEWAY=192.168.1.1
B、修改主機名稱:編輯/etc/sysconfig/network,修改裡面的HOSTNAME內容,如設定主機名稱為mysql,則:HOSTNAME=mysql即可;

 

4、編寫指令碼實現以下功能
每天早上5點開始做備份
   要備份的是/var/mylog裡所有檔案和目錄可以壓縮排行備份
   備份可以儲存到別一臺器上192、168、1、2 FTP帳號 aaa 密碼 bbb
   要示每天的備份檔案要帶有當天的日期標記
[root@haojiu ~]#cat /root/mylogbak.sh
#!/bin/bash
#scripts for dirbakup and upload to ftp server.
#author by haojiu 
#create by 
bakdir=mylog
date=`date +%F`

cd /var
tar zcf ${bakdir}_${date}.tar.gz ${bakdir}

sleep 1

ftp -n <
open 192.168.142.129    #遠端ftp伺服器IP
user aaa bbb
put mylog_*.tar.gz
bye
EOF  
rm -rf  mylog_*.tar.gz     #這步之前可以做一個判斷,判斷檔案上傳成功再執行rm,留給各位發揮吧。

新增crontab:
crontab -l
00 05 * * * /bin/bash /root/mylogbak.sh     #每天早上5點開始執行備份指令碼

 

5、IPTABLES相關的命令
(豪鷲不熟悉iptables,這裡請網友補充,具體問題還要具體分析)

 

6、mysql相關的題
新安裝MYSQL後怎樣提升MYSQL的安全級別

A.修改mysql預設埠
 B.linux下可以透過iptables來限制訪問mysql埠的IP地址
 C.對所有使用者設定較複雜密碼並嚴格指定對應賬號的訪問IP(可在mysql庫中user表中指定使用者的訪問可訪問IP地址)
 D.root特權賬號的處理(建議給root賬號設定強密碼,並指定只允許本地登入)
 E.開啟二進位制查詢日誌和慢查詢日誌
 F.mysql安裝目錄及資料儲存目錄許可權控制:給mysql安裝目錄讀取許可權,給mysql日誌和資料所在目錄讀取和寫入許可權
 G.刪除無用mysql賬號和刪除無用的資料庫(安裝好的mysql預設會有個test庫,可將其刪除)

 

MYSQL的主從原理,怎麼配置檔案

整體上來說,複製有3個步驟:   
      A.master將改變記錄到二進位制日誌(binary log)中(這些記錄叫做二進位制日誌事件,binary log events);
      B.slave將master的binary log events複製到它的中繼日誌(relay log);
      C.slave重做中繼日誌中的事件,將改變反映它自己的資料。

 

Mysql複製的基本原理過程如下:

(1)Slave上面的IO執行緒連線上Master,並請求從指定日誌檔案的指定位置(或者從最開始的日誌)之後的日誌內容;
(2)Master接收到來自Slave的IO執行緒的請求後,透過負責複製的IO執行緒根據請求資訊讀取指定日誌指定位置之後的日誌資訊,傳回給Slave端的IO執行緒。傳回信息中除了日誌所包含的資訊之外,還包括本次傳回的資訊在Master端binary log檔案的名稱以及在Binary log中的位置;
(3)Slave的IO執行緒收到資訊後,將接收到的日誌內容依次寫入到Slave端的RelayLog檔案(mysql-relay-lin.xxxxx)的最末端,並將讀取到的Master端的bin-log的檔案名和位置記錄到master-info檔案中,以便在下一次讀取的時候能夠清楚的告訴master“我需要從某個bin-log的哪個位置開始往後的日誌內容,請發給我”
(4)Slave的SQL執行緒檢測到Relay Log中新增加了內容後,會馬上解析該Log檔案中的內容成為在Master端真實執行時候的那些可執行的查詢或操作陳述句,併在自身執行那些查詢或操作陳述句,這樣,實際上就是在master端和Slave端執行了同樣的查詢或操作陳述句,所以兩端的資料是完全一樣的。

補充:mysql主從複製的優點
<1> 如果主伺服器出現問題, 可以快速切換到從伺服器提供的服務;
<2> 可以在從伺服器上執行查詢操作, 降低主伺服器的訪問壓力;
<3> 可以在從伺服器上執行備份, 以避免備份期間影響主伺服器的服務。

 

為MYSQL新增一個使用者

  mysql> grant select,insert,update,delete on book.* to test2@localhost identified by ‘abc’;    #增加test2使用者,密碼為abc。並只能在localhost這臺主機上登入,並且只能訪問book這個庫中的表,具有查詢,插入,更新,刪除許可權;
  語法:mysql> GRANT ON . TO ‘使用者’@’主機名’ identified by ‘密碼’;

 

7、WINDOWNS相關的問題
你是否對WINDOWNS系統打過補丁,如果有100臺你會怎麼做

(題主是一個不專業的MCSE,記得在win2003中,有釋出指派這個概念的,請各位網友補充)在域環境中,應該是將一臺伺服器作為域控補丁的update伺服器,利用“釋出與指派”的功能,將補丁批次更新到內網其他伺服器;

 

WINDOWNS下怎麼為MYSQL做定時完全備份

批處理+計劃任務+ftp上傳至遠端伺服器

 

 在沒有硬體防火牆的情況下,怎樣提高WINDOS系統安全

用ISA防火牆?

 


 

同學面試大智慧試題

1、顯示/test目錄下的所有目錄
答:豪鷲這裡提供4種方法:
ls -d */
find . -type d -maxdepth 1  (如果不加-maxdepth 引數,將會列出無窮多的子目錄。)
ls -F | grep ‘/$’
ls -l | grep ‘^d’|awk ‘{print $9}’

 

2、將檔案/etc/a 下中除了 b檔案外的所有檔案壓縮打包放到/home/a下,名字為a.gz
tar –exclude /etc/a/b -zPcvf /home/a/a.gz /etc/a       (不加P選項會提示:『tar: Removing leading `/’ from member names』)

驗證:
[root@haojiu a]# tar tPvf /home/a/a.gz         (忽略掉b檔案)
drwxr-xr-x root/root         0 2015-08-21 10:15 /etc/a/
-rw-r–r– root/root         0 2015-08-21 10:15 /etc/a/d
-rw-r–r– root/root         0 2015-08-21 10:15 /etc/a/f
-rw-r–r– root/root         0 2015-08-21 10:15 /etc/a/c
-rw-r–r– root/root         0 2015-08-21 10:15 /etc/a/e

 

3、給一個指令碼賦予執行許可權的命令及選項
chmod +x a.sh

 

4、umask 022代表什麼意思
新建檔案夾或檔案的許可權是由所謂基本碼減去稱之為umask的遮蔽位得到的。
按照規定:檔案夾的基本碼是rwxrwxrwx(777),檔案的基本碼是rw-rw-rw-(666)
因此新建檔案夾是777-022=755(rwxr-xr-x),新建檔案是666-022=644(rw-r–r–)。
綜上,umask 022表示預設建立新檔案許可權為755 也就是 rxwr-xr-x(所有者全部許可權,屬組讀寫,其它人讀寫) 

 

5、如何檢視某行程所開啟的所有檔案
取出該行程的行程號,然後用lsof -p pid檢視開啟的所有檔案。(這裡以crond行程為例)

[root@haojiu a]# ps -ef |grep crond|grep -v grep |awk ‘{print $2}’   #取出行程號
2550
[root@zintao01 a]# lsof -p 2550                                 #檢視該行程開啟的所有檔案
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME
crond   2550 root  cwd    DIR                8,2     4096       2 /
crond   2550 root  rtd    DIR                8,2     4096       2 /
crond   2550 root  txt    REG                8,2    64096  820728 /usr/sbin/crond
crond   2550 root  mem    REG                8,2    65928  524319 /lib64/libnss_files-2.12.so
crond   2550 root  mem    REG                8,2 99158576  788202 /usr/lib/locale/locale-archive
crond   2550 root  mem    REG                8,2   472064  554920 /lib64/libfreebl3.so
crond   2550 root  mem    REG                8,2    43392  554921 /lib64/libcrypt-2.12.so
crond   2550 root  mem    REG                8,2  1926800  554903 /lib64/libc-2.12.so
crond   2550 root  mem    REG                8,2   115536  554937 /lib64/libaudit.so.1.0.0
crond   2550 root  mem    REG                8,2    22536  554909 /lib64/libdl-2.12.so
crond   2550 root  mem    REG                8,2    58480  554938 /lib64/libpam.so.0.82.2
crond   2550 root  mem    REG                8,2   124624  554913 /lib64/libselinux.so.1
crond   2550 root  mem    REG                8,2   156928  554899 /lib64/ld-2.12.so
crond   2550 root    0u   CHR                1,3      0t0    4160 /dev/null
crond   2550 root    1u   CHR                1,3      0t0    4160 /dev/null
crond   2550 root    2u   CHR                1,3      0t0    4160 /dev/null
crond   2550 root    3u   REG                8,2        5 1084973 /var/run/crond.pid
crond   2550 root    4u  unix 0xffff88003b3949c0      0t0   13870 socket
crond   2550 root    5r   DIR               0,10        0       1 inotify

 

6、獲取eth0網絡卡上80埠的資料包資訊
[root@haojiu ~]# tcpdump -i eth0 port 80

 

7、刪除 /a/b下的所有檔案及目錄
[root@haojiu ~]# rm -rf /a/b/*

 

8、常用的網路管理工具(5種以上)
Windows下有:ipcofnig(/all,/renew,/release),ping,tracert,nslookup,telnet……
    Linux下有:ifconfig,ping,traceroute,dig,nslookup,telnet……

 

9、ftp、https、smtp、pops、ssh的埠號
豪鷲沒做過,這裡提供網上的做法: 在我的電腦上單擊滑鼠右鍵,選擇屬性,點選“高階”標簽,點選【啟動和故障恢復】下的“設定”按鈕,點選“編輯”按鈕,將Boot.ini檔案的最後一行後面新增一個開關 “/PAE”(不帶引號),儲存後重新啟動機器即可。

 

10、如何在windows server 2003/2008上開啟支援記憶體3-4G
豪鷲沒做過,這裡提供網上的做法: 在我的電腦上單擊滑鼠右鍵,選擇屬性,點選“高階”標簽,點選【啟動和故障恢復】下的“設定”按鈕,點選“編輯”按鈕,將Boot.ini檔案的最後一行後面新增一個開關 “/PAE”(不帶引號),儲存後重新啟動機器即可。

 

11、請用iptables控制來自192.168.1.2主機的80埠請求
iptables -A INPUT -p tcp -s 192.168.1.2 –dport 80 -j ACCEPT   (允許來自192.168.1.2這臺主機訪問80埠)

 

12、請用shell指令碼建立一個組class、一組使用者,使用者名稱為stdX X從01-30,並歸屬class組
指令碼如下
[root@zintao01 ~]# cat adduser.sh 
#!/bin/bash
#script for adduser.
#create by haojiu
#2015-x-x


groupadd class
user=std
for i in {01..30}
do
useradd -G class ${user}$i
done

 

13、在mysql客戶端查詢工具中,如何獲取當前的所有連線行程資訊
mysql> show full processlist;

 

14、如何刪除已滿的資料庫日誌資訊
在my.cnf中的[mysqld]段下麵加入:expire-logs-days=7(設定自動清除7天錢的logs),重啟mysql;
或者登入進mysql,執行:purge binary logs to ‘mysql-bin.000003’;          #刪除bin-log(刪除mysql-bin.000003之前的而沒有包含mysql-bin.000003)
如果是mysql主從環境的,刪除日誌,陳述句格式如下:  
PURGE {MASTER | BINARY} LOGS TO ‘log_name’
PURGE {MASTER | BINARY} LOGS BEFORE ‘date’

 

《Linux雲端計算及運維架構師高薪實戰班》2018年11月26日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~

    *宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。

    – END –



    贊(0)

    分享創造快樂