ssh 連接服務器
ssh user@www.xxx.com -p60022
用戶名@ip 端口
進入日志所在目錄
cat FILENAME 查看文本文件,P.S. 在查較大文件時為了避免刷屏,請使用 cat FILENAME | more 或 more FILENAME
zcat FILENAME 查看已壓縮的文本文件,P.S. 在查較大文件時為了避免刷屏,請使用 zcat FILENAME |more
tac FILENAME 倒序查看日志
grep KEYWORD FILENAME 根據KEYWORD 關鍵字查找文本文件
grep -C N KEYWORD FILENAME 查找關鍵字上下N行
zgrep KEYWORD FILENAME 根據KEYWORD 關鍵字查找已壓縮的文本文件
vim FILENAME **不推薦**
tail -n N FILENAME 查看最后N行日志
tail -n +N FILENAME 查看從第N行開始 至文件末日志
tail -f FILENAME 跟蹤日志
使用cat命令
搜索關鍵信息
cat info.log | grep 關鍵字信息
帶顏色
cat info.log | grep 關鍵字信息 --color
帶出堆棧信息
cat info.log | grep 關鍵字信息 --color -C 10
壓縮文件查看
zgrep id info.log.zip
查看服務器性能
1.內存檢查:free -m
注意,重點看的是第二行,-/+ buffers/cache行,第一個數字是實際消耗的內存,第二個是實際空閑的內存。
2.系統進程監控 top
Top命令注意看輸出的第二、第三行。第二行(Tasks)表示系統運行的進程數,這個數值一般不能太大,比如超過300、甚至400-500,這個比較容易理解,我們一般開啟的服務、進程外加系統進程都不會太多,太多肯定有問題。第三行表示CPU的使用情況。
Top可以按 M按內存使用排序,P按CPU使用情況排序。
3. 進程監控加強版 htop
htop提供了比top更強大的功能,推薦安裝。能排序、查找、顯示進程樹等功能。
htop還有一個強大的功能的,就是strace,按s可以直接對選中進程進行strace。
4. 找出害群之馬 (ps命令)
如果通過top、htop、free以及iostat、vmstat(后面會講)對系統分析后,我們接下來就要找系統的問題進程了。在top、htop中我們一般可以直觀的看出到底是那個進程出問題了,不過有時這兩個命令不能完全確定,我們還要使用ps確認系統中的最差進程。
自定義輸出格式 -o 可以定義我們想要顯示的列,列名基本和輸出的表頭一樣,只是要小寫,如下:
ps -A -o %mem, %cpu
5. IO監控iostat
iostat也是系統監控常用的命令,可以看到各個磁盤的IO情況,其他參數不再贅述,主要說明一個參數。iostat -x會輸出 %util列。
定義:
%util: 一秒中有百分之多少的時間用於 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的。即 delta(use)/s/1000 (因為use的單位為毫秒)
如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸。
一般情況下,%util應該越小越好,10%以下正常,30%IO比較繁忙。50%以上一般是有問題的。可以配合%idle,該值過小系統肯定是有問題的。
6. vmstat 系統監控
vmstat和IO差不過,不過重點是監控cpu、內存等系統資源。
對內存監控,我們比較關心swpd、free、si、so。一般系統不繁忙的狀態下,我們看到swpd,so的值不會持續很高,經常為0。如果swpd過高,那么就是系統內存經常不夠用。
對CPU監控,我們可以查看r(運行進程數)、us、sy、id(空閑CPU),如果r的數字大於系統CPU個數,則面臨CPU不夠用的危險,通過id(CPU空閑比例)分析,如果過小,則可以判斷是CPU不足。