linux 服務器常用命令整理
目錄
網絡分析 - tcpdump \ telnet \ (netstat \ ss \ lsof) \ nload
網絡傳輸 - scp \ rsync \ (rz \ sz) \ nc
抓包工具 - charles
內存檢查 - free \ meminfo
系統監控 - vmstat \ iostat \ top \ ps \ sar \ dstat
系統調用追蹤 - strace \ gcore
文件相關 - find \ awk \ sed \ grep \ tail \ df \ du \ locate
開發效率 - tmux
網絡分析
tcpdump
tcp:用來過濾數據報的類型
-i eth1 : 只抓經過接口eth1的包
-t : 不顯示時間戳
-s 0 : 抓取數據包時默認抓取長度爲68字節, 加上-S 0 後可以抓到完整的數據包
-c 100 : 只抓取100個數據包
dst port !22: 不抓取目標端口是22數據包
src net 10.99.184.0/24 : 數據包的源網絡地址爲10.99.184.0/24
-A:顯示數據包內容
示例:
tcpdump -i any -v port 8888
tcpdump -i any -A port 8888
netstat
查看所有連接
netstat -autnp
查看監聽的tcp服務
netstat -altnp
看tcp端口
netstat -ltnp
ss
ss -pl
查看每個進程及其監聽的端口ss -t -a
查看所有的tcp連接ss -u -a
查看所有的udp連接
lsof
lsof -i :8888
查看端口8888進程信息lsof -p 7915
查看進程7915打開的fd信息
scp
scp -r src remote:/tmp
本地拷貝到遠端scp -r remote:/tmp/src .
遠端拷貝到本地scp -3 remote:/tmp/a.tar remote2:/tmp/
以本地爲跳板機,將remote機器上文件拷貝到remote2
rsync
rsync -av /home/mail/ 192.168.11.12:/home/mail/
rsync -av 192.168.11.11:/home/mail/ /home/mail/
nc
nc -l 8888
本地啓動8888端口nc -l 8888 > a.tgz
接收文件nc ali-.bj:8888 < a.tgz
發送文件到遠端
vmstat
vmstat 1 10
對內存監控,重點關注swpd、free、si、so。一般系統不繁忙的狀態下,swpd、so的值不會持續很高,經常爲0。如果swpd過高,那麼就是系統內存經常不夠用。對CPU監控,我們可以查看r(運行進程數)、us、sy、id(CPU空閒),如果r的數字大於系統CPU個數,則面臨CPU不夠用的危險,通過id分析,如果過小,則可以判斷是CPU不足。
iostat
iostat -x
一般情況下,%util應該越小越好,10%以下正常,30%IO比較繁忙。50%以上一般是有問題的
top
1 按CPU核數查看
P
M
c 查看完整進程命令
top -Hp pid 查看線程數
ps
ps -eo “pid,cmd,lstart” | grep pid
查看進程啓動時間ps -ef f
查看最近進程(常用)
find
find . -type f -mtime +3
修改時間大於3天的文件find . -type f -mtime +3 | xargs rm -rf
查找並刪除
du
du -sk * | sort -n | cut -f2 | xargs -d '\n' du -sh
按文件大小排序顯示du -hs
常用
awk
grep 'update_profile.*Android' access-20180131.log |awk -F 'POST' '{print $2}'|awk -F '&' '{print $26}'|awk -F ' ' '{print $1}'|awk -F '=' '{print $2}'|sort -n|uniq -c|sort -nr|head -100
-F ' '以空格分割
ab
ab -c 200 -n 1000 -T 'application/x-www-form-urlencoded' -p postdata.txt http://domain/test.php