天天看點

運維面試題目

1、Linux啟動順序?如何添加開機啟動項?

開機加電---->BISO自檢---->加載第一個扇區bootloader---->加載核心Kernel---->執行/sbin/init---->runlevel

第一種: vim /etc/init.d/rc.local 檔案

例如在rc.local末尾添加

/etc/init.d/mysqld start #mysql

開機啟動`

第二種:通過chkconfig指令設定

第三種:自己寫開機啟動的shell腳本

2、Linux常用的安全政策有哪些,并描述如何實作?

禁止系統響應任何從外部/内部來的ping請求

禁止Control-Alt-Delete組合鍵重新開機系統

限制Shell記錄曆史指令大小

删除系統預設的不必要使用者群組

關閉selinux

設定tcp_wrappers防火牆

3、Linux核心參數優化?

編輯/etc/confiscatory

指令格式:

sysctl [-n] [-e] -w variable=value

sysctl [-n] [-e] -p (default /etc/sysctl.conf)

sysctl [-n] [-e] –a

proc/sys/net/core/wmem_max

最大socket寫buffer,可參考的優化值:873200

/proc/sys/net/core/rmem_max

最大socket讀buffer,可參考的優化值:873200

/proc/sys/net/ipv4/tcp_wmem

TCP寫buffer,可參考的優化值: 8192 436600 873200

/proc/sys/net/ipv4/tcp_rmem

TCP讀buffer,可參考的優化值: 32768 436600 873200

/proc/sys/net/ipv4/tcp_mem

同樣有3個值,意思是:

net.ipv4.tcp_mem[0]:低于此值,TCP沒有記憶體壓力.

net.ipv4.tcp_mem[1]:在此值下,進入記憶體壓力階段.

net.ipv4.tcp_mem[2]:高于此值,TCP拒絕配置設定socket.

上述記憶體機關是頁,而不是位元組.可參考的優化值是:786432 1048576 1572864

/proc/sys/net/core/netdev_max_backlog

進入包的最大裝置隊列.預設是300,對重負載伺服器而言,該值太低,可調整到1000

/proc/sys/net/core/somaxconn

listen()的預設參數,挂起請求的最大數量.預設是128.對繁忙的伺服器,增加該值有助于網絡性能.可調整到256.

/proc/sys/net/core/optmem_max

socket buffer的最大初始化值,預設10K

/proc/sys/net/ipv4/tcp_max_syn_backlog

進入SYN包的最大請求隊列.預設1024.對重負載伺服器,可調整到2048

/proc/sys/net/ipv4/tcp_retries2

TCP失敗重傳次數,預設值15,意味着重傳15次才徹底放棄.可減少到5,盡早釋放核心資源.

/proc/sys/net/ipv4/tcp_keepalive_time

/proc/sys/net/ipv4/tcp_keepalive_intvl

/proc/sys/net/ipv4/tcp_keepalive_probes

這3個參數與TCP KeepAlive有關.預設值是:

tcp_keepalive_time = 7200 seconds (2 hours)

tcp_keepalive_probes = 9

tcp_keepalive_intvl = 75 seconds

意思是如果某個TCP連接配接在idle 2個小時後,核心才發起probe.如果probe 9次(每次75秒)不成功,核心才徹底放棄,認為該連接配接已失效.對伺服器而言,顯然上述值太大. 可調整到:

/proc/sys/net/ipv4/tcp_keepalive_time 1800

/proc/sys/net/ipv4/tcp_keepalive_intvl 30

/proc/sys/net/ipv4/tcp_keepalive_probes 3

/proc/sys/net/ipv4/ip_local_port_range

指定端口範圍的一個配置,預設是32768 61000,已夠大.

net.ipv4.tcp_syncookies = 1

表示開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防範少量SYN攻擊,預設為0,表示關閉;

net.ipv4.tcp_tw_reuse = 1

表示開啟重用。允許将TIME-WAIT sockets重新用于新的TCP連接配接,預設為0,表示關閉;

net.ipv4.tcp_tw_recycle = 1

表示開啟TCP連接配接中TIME-WAIT sockets的快速回收,預設為0,表示關閉。

net.ipv4.tcp_fin_timeout = 30

表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀态的時間。

net.ipv4.tcp_keepalive_time = 1200

表示當keepalive起用的時候,TCP發送keepalive消息的頻度。預設是2小時,改為20分鐘。

net.ipv4.ip_local_port_range = 1024 65000

表示用于向外連接配接的端口範圍。預設情況下很小:32768到61000,改為1024到65000。

net.ipv4.tcp_max_syn_backlog = 8192

表示SYN隊列的長度,預設為1024,加大隊列長度為8192,可以容納更多等待連接配接的網絡連接配接數。

net.ipv4.tcp_max_tw_buckets = 5000

表示系統同時保持TIME_WAIT套接字的最大數量,如果超過這個數字,TIME_WAIT套接字将立刻被清除并列印警告資訊。預設為 180000,改為 5000。對于Apache、Nginx等伺服器,上幾行的參數可以很好地減少TIME_WAIT套接字數量,但是對于Squid,效果卻不大。此項參數可以控制TIME_WAIT套接字的最大數量,避免Squid伺服器被大量的TIME_WAIT套接字拖死。

4、Linux如何實作線上磁盤擴容?

5、如何批量建立使用者,user01-user05,密碼為12位随機數?

6、同一個網卡綁定多個IP的方法?

7、使用Tcpdump分析通路量最高的IP?

8、Linux的資料同步方法有哪些,并描述如何實作?

9、如何産看目前系統的每個IP的連接配接數?如何産看mysql目前連接配接數?

10、統計Nginx通路最好的前5個IP的通路次數?

11、在業務中Nginx常用的配置有哪些?如何實作?

12、請說明Mysql資料備份,資料恢複方法?如何mysql啟動失敗,如何分析?

13、如何實作mysql安全管理?給user1添加隻能查詢db1.table1的查詢權限?

14、如何對tomcat進行性能優化?

15、如何進行批量部署,自動化更新?

16、使用shell寫一個定時資料備份腳本,并清除30天前的備份檔案。

17、使用shell寫一個定時檢查系統是否有可疑連接配接和程序的存在。

18、使用shell寫一個定期清理業務日志的腳本。

19、使用python把日志tomcat.log中有error的行,從其上5行開始到該error行,copy到新的檔案中。

20、伺服器出現不能通路的故障,應如何排查,說出你的思路。

繼續閱讀