linux 伺服器常用命令整理

Shawn_wg發表於2018-03-09

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

  1. tcp:用來過濾資料包的型別

  2. -i eth1 : 只抓經過介面eth1的包

  3. -t : 不顯示時間戳

  4. -s 0 : 抓取資料包時預設抓取長度為68位元組, 加上-S 0 後可以抓到完整的資料包

  5. -c 100 : 只抓取100個資料包

  6. dst port !22: 不抓取目標埠是22資料包

  7. src net 10.99.184.0/24 : 資料包的源網路地址為10.99.184.0/24

  8. -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

相關文章