美團Linux運維工程師面試真題

一、LINUX系統軟件安裝和卸載的常見方法html

答: node

A.rpm包卸載:rpm -e XXX.rpm   (若是想忽略依賴,可加上–nodeps)mysql

B.yum remove xxx.rpm  這種方法很是不建議使用,卸載過程會將待卸載的軟件包所依賴的軟件包一併卸載掉,很容易形成系統缺乏某些包而崩潰等問題linux

C.源碼包卸載:cd命令進入編譯後的軟件目錄,即安裝時的目錄,執行make uninstall命令便可;或者直接刪除安裝目錄sql

 

二、Windows和LINUX經常使用的遠程鏈接工具備那些shell

答: 數據庫

命令遠程鏈接工具:Xshell、SecureCRT、Putty、SSH Secure Shell Client等windows

圖形遠程鏈接工具:xmanager(需安裝配置服務並打開177端口)、VNC-Viewer(linux需安裝vncserver)、windows自帶的遠程桌面(linux需安裝xrdp和vnc)安全

 

三、如何修改LINUX的IP地址、網關和主機名bash

答:

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便可;

 

四、編寫腳本實現如下功能;

天天早上5點開始作備份

要備份的是/var/mylog裏全部文件和目錄能夠壓縮進行備份

備份能夠保存到別一臺器上19二、16八、一、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 <<- EOF

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點開始執行備份腳本

 

五、IPTABLES相關的命令

(這裏請網友補充,具體問題還要具體分析)

 

六、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 「密碼」;

 

七、WINDOWNS相關的問題

你是否對WINDOWNS系統打過補丁,若是有100臺你會怎麼作

 答: (題主是一個不專業的MCSE,記得在win2003中,有發佈指派這個概念的,請各位網友補充)在域環境中,應該是將一臺服務器做爲域控補丁的update服務器,利用「發佈與指派」的功能,將補丁批量更新到內網其餘服務器;

WINDOWNS下怎麼爲MYSQL作定時徹底備份

答: 批處理+計劃任務+ftp上傳至遠程服務器

在沒有硬件防火牆的狀況下,怎樣提升WINDOS系統安全

答: 用ISA防火牆?

 

八、顯示/test目錄下的全部目錄

答:豪鷲這裏提供4種方法:

ls -d */

find . -type d -maxdepth 1  (若是不加-maxdepth 參數,將會列出無窮多的子目錄。)

ls -F | grep ‘/$’

ls -l | grep ‘^d’|awk ‘{print $9}’

 

九、將文件/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

 

十、給一個腳本賦予執行權限的命令及選項

答:

 chmod +x a.sh

 

十一、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(全部者所有權限,屬組讀寫,其它人讀寫)

 

十二、如何查看某進程所打開的全部文件

答:取出該進程的進程號,而後用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

 

1三、獲取eth0網卡上80端口的數據包信息

答:

[root@haojiu ~]# tcpdump -i eth0 port 80

 

1四、刪除 /a/b下的全部文件及目錄

答:

 [root@haojiu ~]# rm -rf /a/b/*

 

1五、經常使用的網絡管理工具(5種以上)

答: Windows下有:ipcofnig(/all,/renew,/release),ping,tracert,nslookup……

Linux下有:ifconfig,ping,tracerroute,dig,nslookup……

 

1六、ftp、https、smtp、pops、ssh的端口號

答: ftp(20和21)、https(443)、smtp(25)、pops(110)、ssh(22)

 

1七、如何在windows server 2003/2008上開啓支持內存3-4G

答: 這裏提供網上的作法: 在個人電腦上單擊鼠標右鍵,選擇屬性,點擊「高級」標籤,點擊【啓動和故障恢復】下的「設置」按鈕,點擊「編輯」按鈕,將Boot.ini文件的最後一行後面添加一個開關 「/PAE」(不帶引號),保存後從新啓動機器便可。

 

1八、請用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端口)

 

1九、請用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

 

20、在mysql客戶端查詢工具中,如何獲取當前的全部鏈接進程信息

答:

mysql> show full processlist;

 

2一、如何刪除已滿的數據庫日誌信息

答: 在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’

 

轉載連接:http://www.yunweipai.com/archives/25375.html

相關文章
相關標籤/搜索