1、解釋PV、UV、IP是什麼意思
PV(通路量)
即Page View,頁面浏覽量或點選量,使用者每次重新整理或點選一次即被計算一次
UV(獨立訪客)
即Unique Visitor,通路您網站的一台電腦用戶端為一個訪客
00:00-24:00内相同的用戶端隻被計算一次
IP(獨立IP):
即Internet Protocol,指獨立IP數.00:00-24:00内相同IP位址被計算一次
計算:
PV日通路量:
通路IP量 * 8 = PV
UV日通路量:
通路IP量 / 2 = UV
并發量:
通路IP量 / 10 = 并發量
中小企業日PV通路量一般為五萬左右
2、檢視程序打開的檔案
lsof -c 程序名
3、檢視打開檔案的程序
lsof 打開的檔案名
3.1 通過程序名找到他的程序ID
pgrep -f tomcat
3.2 檢視某個程序打開的網絡連接配接
lsof -i | grep sshd | grep -v LISTEN
3.3 檢視linux伺服器各種連接配接狀态
netstat -ant | awk '/^tcp/{++S[$NF]}END{for(a in S)print a,S[a]}'
3.4 檢視losf檢視符合條件的程序情況
lsof -i:22
4、用什麼指令檢視檔案的格式(tar、gz)
tar tvf file.tar
tar ztvf file.tar.gz
5、找出/opt目錄及其子目錄所有以*.txt結尾且大于100K的檔案,并删除
find /opt -name *.txt -size +100k -exec rm {} \;
7、如何檢視網卡速度和目前流量情況
1、當檢視網速度 ethtool eth0
2、檢視目前流量 watch ifconfig 或 iftop
8、如何測試網卡的吞吐量
1、iptraf工具提供了每個網卡吞葉量的儀表盤: iptraf -d eth0
2、watch指令 watch -n 1 "/sbin/ifconfig eth0 | grep bytes"
9、如何測試硬碟的讀寫速度
dd if=/dev/zero of=/opt/test.txt bs=1G count=1
9.1、磁盤滿了,删除檔案空間沒釋放,是什麼原因?
主要是對應程式的句柄沒釋放導緻的。可以通過lsof的指令查到對應的指令,殺掉對應的程序就能釋放了。
解決方法:
lsof -n | grep deleted
for i in `lsof -n | grep deleted | awk '{print $2}'`;do kill $i; done
10、free指令的輸出如下,請解析各個輸出項的含義
第一部分Mem行:
total 記憶體總數: 1002M
used 已經使用的記憶體數: 769M
free 空閑的記憶體數: 232M
shared 目前已經廢棄不用,總是0
buffers Buffer 緩存記憶體數: 62M
cached Page 緩存記憶體數:421M
關系:total = used + free
第二部分(-/+ buffers/cache):
(-buffers/cache) used記憶體數:286M (指的第一部分Mem行中的used – buffers – cached)
(+buffers/cache) free記憶體數: 715M (指的第一部分Mem行中的free + buffers + cached)
可見-buffers/cache反映的是被程式實實在在吃掉的記憶體,而+buffers/cache反映的是可以挪用的記憶體總數.
第三部分是指交換分區, 如Windows設定的虛拟記憶體
11、簡述TCP3次握手的過程 ?
第一次:使用者A向使用者B發送syn包請求互動
第二次:使用者B收到syn包 ,傳回ack包确認+syn包請求互動
第三次:使用者A收到ack+syn包,傳回ack包确認互動,狀态連結成功ESTABLISHED
12、如何在盡可能短的時間内在500台伺服器上執行ifconfig指令?
使用Ansible、SaltStack等自動化運維工具,或者利用shell、Python等腳本寫多線程腳本執行
13、如何恢複root密碼?
1、引導進入單使用者模式,然後重設密碼
過程:進入grub界面按上下健,光标定位到kernel,再按e,空格寫1,回車再按b啟動,進入終端 輸入passwd 修改新密碼
14、ulimit -SHn 1000000這個指令的作用是什麼?
設定打開最大檔案數為1000000
15、用一個指令實作,統計80端口的所有連結狀态并按照連結狀态由大到小排列顯示
netstat -nat | awk '/:80/{++S}{$NF}END{for(a in S)print S[a],a}' | sort
16、描述一下DDOS攻擊原理
DDOS的攻擊原理:
指非常多的機器,往被攻擊的機器發起大的流量通路,并且隻往被攻擊機器發請求,不管被攻擊機 是否會響 應,填滿被攻擊機的網絡帶寬。
17、有台16核32G的Linux伺服器,如何檢視負載?如果負載很高,如何排查原因?(寫出詳細的指令或 者步驟)
uptime或top檢視機器負載,
根據使用top檢視出的程序,看一下是什麼應用,再檢視對應的應用的日志,再看看是因為是通路量過大的問 題,還是因為應用性能的問題
18、資料庫
1、有如下資訊表,表名t_host
字段名稱 描述
id 機器ID
IP 機器IP
Cpu_num 機器CPU核數
Cpu_model CPU型号
Host_comment 機器備注資訊
寫SQL語句統計24核并且CPU型号為E5-2420的機器數量
select count(*) from t_host where Cpu_num=24 and Cpu_model='E5-2420';
2、MySQL檢視一個表的結構,使用什麼指令?
desc tablename;
3、MySQL資料庫備份有哪幾種方式,分别是什麼?
三種方式:1、完整備份
2、增量備份
3、差異備份
2、将t1表id字段倒序排序,從第二行開始取,讀三行
select * from t1 order by id desc limit 2,3;
19、Shell腳本
1、寫一個腳本,實作批量增加20個使用者,使用者名為user01-30,密碼為随機的大小寫字母加數字,密碼長度為12位
for i in `seq 1 30`
do
pwd=$(head -c 500 /dev/urandom | tr -dc a-zA-Z0-9|head -c 12)
if[$i -lt 10];then
useradd user0$i
echo "user0$i$pwd" | passwd --stdin user$i
echo user0$i user0$i$pwd >> userinfo.txt
else
useradd user$i
echo "user$i$pwd" | passwd --stdin user$i
echo user$i user0$i$pwd >> userinfo.txt
fi
done
2、編寫shell腳本,在目前目錄下生成1000個檔案,每個檔案100行,檔案名和檔案内容随意
#!/bin/bash
for i in {1..1000}
sleep 1
touch $i.txt
for b in `seq 1 100`
do
echo $b >> $i.txt
done
3、編一個腳本放在計劃任務裡每分鐘運作,當伺服器負載超過5時(低于5時,什麼也不做,腳本退出)列印 伺服器的記憶體,磁盤I/O使用情況,并列出占用CPU資源較大的1-10位
思路:
通過核心負載監控檔案去取負載資料,并隻取整數部分的資料來判斷就可以
負載的檔案路徑:/proc/loadavg
腳本路徑:/data/monitor/sys_mon.sh
日志路徑:/data/logs/monitor/sys_mon.log
腳本内容:
#!/bin/sh
echo ''
date
LOAD=`cat /proc/loadavg |awk -F'.' '{print $1}'`
if [ $LOAD -gt 5 ] || [ $LOAD -eq 5 ];then
echo "MEM USED###############################"
free -m
echo "DISK IO USED###############################"
iostat -x 1 1
echo "CPU USED ###############################"
ps -aux|sort -rn -k3 |head -10
fi
20、Python開發
1、合并2個字典
dict1=(1:[1,11,111],2:[2,22,222])
dict2=(3:[3,33,333],2:[4,44,444])
合并兩個字典得到類似
(1:[1,11,111],2:[2,22,222],3:[3,33,333],4:[4,44,444])
方法1:dictMerged1=dict(dict1.items()+dict2.items())
方法2:dictMerged2=dict(dict1**dict2)
方法2等同于:
dictMerged=dict1.copy()
dictMerged.update(dict2)
2、求2個list的差集
a_list = [1,2,3,4]
b_list = [1,4,5]
ret=[]
for i in a_list: