戴爾服務(wù)通常在Linux系統(tǒng)上運(yùn)行,因此需要了解Linux命令。
接下來將一一詳細(xì)介紹一些常用的linux的命令- 文件操作
- 遠(yuǎn)程登錄與操作
- 磁盤掛載
- 進(jìn)程管理 啟動和結(jié)束
- 系統(tǒng)性能參數(shù)查看
- 網(wǎng)絡(luò)數(shù)據(jù)抓取
- shell 腳本命令
- jvm 常用命令
1 文件操作命令
find
- find 用于在指定目錄下查找文件或子目錄,如果不指定查找目錄,則在當(dāng)前目錄下查找
- 命令格式:·find path -option [-print] [ -exec/-ok command {} \ ] ; print: 將匹配的文件輸出到標(biāo)準(zhǔn)輸出 exec:對匹配的文件作為參數(shù) 讓 command 命令執(zhí)行。{} 是匹配文件的占位符 ok: 和 exec 的作用相同,但在執(zhí)行命令之前,會給出提示,讓用戶來確定是否執(zhí)行
常用的option 選項 | 描述
-mount | 只檢查和指定目錄在同一個文件系統(tǒng)下的文件,避免列出其它文件系統(tǒng)中的文件
-amin n | 在過去 n 分鐘內(nèi)被讀取過
-atime n | 在過去 n 天內(nèi)被讀取過的文件
-cmin n | 在過去 n 分鐘內(nèi)被修改過
-ctime n | 在過去n天內(nèi)被修改過的文件
-gid n | gid 是 n 文件?;?-group name, group 名稱是 name 的文件
-pid n | pid 是 n 的文件
-ipath p | 路徑名稱符合 p 的文件?;?-path p,ipath 會忽略大小寫
-name name | 文件名稱符合 name 的文件?;蛘?iname name,iname 會忽略大小寫
-size n | 文件大小 是 n 單位,b 代表 512 位元組的區(qū)塊,c 表示字元數(shù),k 表示 kilo bytes,w 是二個位元組
-type c | 文件類型是c的文件。 d: 目錄;f: 一般文件;l: 符號連結(jié);s: socket
復(fù)制代碼
- find 示例
~~ 查找 /var/log 目錄中更改時間在 7 日以前的普通文件,并在刪除之前詢問它們
# find /var/log -type f -mtime +7 -ok rm {} \;
復(fù)制代碼
touch 和 vim
- touch 可用于創(chuàng)建一個空文件,如果文件存在,則會更改文件的訪問時間和修改時間
- touch 示例
~~ #創(chuàng)建一個名為“FILE”的新的空白文件,如果存在則會修改其時間屬性
# touch file
復(fù)制代碼
- vim Vim是從 vi 發(fā)展出來的一個文本編輯器,是在 linux 系統(tǒng)交互界面進(jìn)行文件查看,編寫文本的首選工具
- vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)
1 命令模式:用戶 vim fileName,便進(jìn)入了命令模式
i 切換到輸入模式,以輸入字符
: 冒號切換到底線命令模式
/word 向光標(biāo)之下尋找一個名稱為 word 的字符串
?word 向光標(biāo)之上尋找一個字符串名稱為 word 的字符串
n 重復(fù)前一個搜索(與 / 或 ? 有關(guān))
N 反向重復(fù)前一個搜索(與 / 或 ? 有關(guān))
PageUp 上翻頁
PageDown 下翻頁
G 移動到這個檔案的最后一行(常用)
nG n 為數(shù)字。移動到這個檔案的第 n 行
2 輸入模式: 在命令模式下按下i就進(jìn)入了輸入模式; ESC 退出輸入模式,切換到命令模式
字符按鍵、shift組合 輸入字符
Enter 回車鍵,換行
BACK SPACE 退格鍵,刪除光標(biāo)前一個字符
DEL 刪除鍵,刪除光標(biāo)后一個字符
方向鍵 在文本中移動光標(biāo)
HOME/END 移動光標(biāo)到行首/行尾
Page Up/Page Down 上/下翻頁
Insert 切換光標(biāo)為輸入/替換模式,光標(biāo)將變成豎線/下劃線
3 底線命令模式: 在命令模式下按下 ":" 就進(jìn)入了底線命令模式; ESC退出模式,切換到命令模式
:q 退出 vim 程序
:w 保存文件
:wq 保存后離開
:!q 不保存退出
:w [filename] 將編輯的數(shù)據(jù)儲存成另一個檔案
:r [filename] 在編輯的數(shù)據(jù)中,讀入另一個檔案的數(shù)據(jù)。追加到游標(biāo)所在行后面
:!ShellCommand 暫時離開 vi 到指令行模式下執(zhí)行 shellCommand 的顯示結(jié)果
:%s/word1/word2/g 從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2
:%s/word1/word2/gc 和 %s/word1/word2/g 功能一致,不過每次替換都需用戶確認(rèn)
復(fù)制代碼
less、cat、more、tail 和 head
- less 是linux 必不可少的查看文件工具,功能極其強(qiáng)大
less [option] 文件
option 常用參數(shù)
-f 強(qiáng)制打開文件,二進(jìn)制文件顯示時,不提示警告;
-i 搜索時忽略大小寫;除非搜索串中包含大寫字母;
-I 搜索時忽略大小寫,除非搜索串中包含小寫字母;
-m 顯示讀取文件的百分比;
-M 顯法讀取文件的百分比、行號及總行數(shù);
-N 在每行前輸出行號;
-p pattern 搜索 pattern;比如在/etc/profile搜索單詞MAIL,就用 less -p MAIL /etc/profile
-s 把連續(xù)多個空白行作為一個空白行顯示;
復(fù)制代碼
- less 文件后可進(jìn)行的動作操作和 vim 在命令模式下的操作相似;less在查看文本時的常用動作命令如下
Enter 向下移動一行
y 向上移動一行
Space 向下滾動一屏
b 向上滾動一屏
d 向下滾動半屏
u 向上滾動半屏
g 跳到第一行
G 跳到最后一行
/pattern 向下搜索pattern ,比如 /MAIL 表示在文件中搜索MAIL單詞
?pattern 向上搜索pattern
n 重復(fù)前一個搜索(與 / 有關(guān))
N 反向重復(fù)前一個搜索(與 / 有關(guān))
v 調(diào)用 vi 編輯器
q 退出 less
!command 調(diào)用 shell 命令;比如 !ls 顯示當(dāng)前目錄下的所有文件
復(fù)制代碼
- more 常用于顯示輸出的內(nèi)容,然后根據(jù)窗口的大小進(jìn)行分頁顯示,然后還能提示文件的百分比。命令格式:more 文件,more 常用操作指令如下
Enter 向下n行,需要定義,默認(rèn)為1行;
Ctrl+f 向下滾動一屏
空格鍵 向下滾動一屏
Ctrl+b 返回上一屏
= 輸出當(dāng)前行的行號
:f 輸出文件名和當(dāng)前行的行號
v 當(dāng)我們查看某一文件時,想調(diào)用vi來編輯它,用 v 動作指令
!command 調(diào)用 shell,并執(zhí)行command命令
q 退出 more
復(fù)制代碼
- cat 常用于連接文件并打印到標(biāo)準(zhǔn)輸出設(shè)備上,也可用于查看文件。格式: cat fileName [| command ] ,command 默認(rèn)是 echo,cat會一次性顯示整個文件的內(nèi)容,不分頁
- head 是顯示一個文件的內(nèi)容的前多少行;常用命令格式:head -n 行數(shù)值 文件名
- tail 是顯示一個文件的內(nèi)容的后多少行;常用命令格式:tail -n 行數(shù)值 文件名
grep、zgrep
- grep 一般用于在文件中查和匹配模式匹配的每一行數(shù)據(jù)。命令格式 grep [options] 'pattern' [files];grep 支持處理管道的輸出數(shù)據(jù); pattern 支持正則表達(dá)式;files 可以是多個文件,用空格分開
- grep 無法在壓縮文件匹配查找數(shù),此時可以用 zgrep,zgrep 適用處理壓縮后的gz等格式文件
options選項 | 功能描述
-i | 忽略大小寫
-v | 不匹配匹配的
-l | 輸出匹配的文件名
-L | 輸出不匹配的文件名
-c | 輸出匹配的數(shù)目(行數(shù))
-C num | 輸出匹配的前后 num 條行數(shù)
-n | 輸出匹配行的同時在前面加上文件名及在文件名中的行數(shù)
復(fù)制代碼
- grep 和 zgrep 示例
~~ 輸出匹配 lwl 數(shù)據(jù),及前后十行
# grep -C 10 'lwl' log.txt
復(fù)制代碼
cp
- 文件目錄復(fù)制可用使用 cp 命令。cp 格式:cp [選項參數(shù)] fileSource... fileTarget
cp 選項參數(shù) | 描述
-a | 此選項通常在復(fù)制目錄時使用,它保留鏈接、文件屬性,并復(fù)制目錄下的所有內(nèi)容
-r | 若給出的源文件是一個目錄文件,此時將復(fù)制該目錄下所有的子目錄和文件
-f | 覆蓋已經(jīng)存在的目標(biāo)文件而不給出提示。
-i | 與 -f 選項相反,在覆蓋目標(biāo)文件之前給出提示,要求用戶確認(rèn)是否覆蓋,回答 y 時目標(biāo)文件將被覆蓋
-l | 不復(fù)制文件,只是生成鏈接文件
復(fù)制代碼
- cp 示例
~~ 將當(dāng)前目錄 csc/ 下的所有文件復(fù)制到新目錄 lwl 下
# cp –r csc/ lwl
復(fù)制代碼
mv
- mv 可用來移動文件夾、文件 或者 修改文件名、目錄名
option 參數(shù) | 描述
-b | 當(dāng)目標(biāo)文件存在時,先進(jìn)行備份再覆蓋
-f | 當(dāng)目標(biāo)文件存在時,強(qiáng)制覆蓋
-i | 默認(rèn)選項,當(dāng)目標(biāo)文件存在時,提示是否覆蓋
-t | 先指定目標(biāo),再指定源目標(biāo)。即目標(biāo) 和 源目標(biāo) 參數(shù)位置互換
復(fù)制代碼
- mv 示例
~~ 把 c 修改名字為 lwl.txt
# mv c lwl.txt
~~ 將 csc 目錄下的文件移到 lwl 下
# mv csc/ lwl
復(fù)制代碼
rm
- rm 命令用于刪除一個文件或者目錄;命令格式 rm [options] fileName/filePath
option參數(shù) | 描述
-i | 刪除前逐一詢問確認(rèn)
-f | 即使原檔案屬性設(shè)置為只讀,也可強(qiáng)制刪除,無需確認(rèn)
-r | 將目錄及以下之檔案亦逐一刪除
復(fù)制代碼
- rm 示例
~~ 刪除文件名
# rm -rf
復(fù)制代碼
mdkir
- mdkir命令用于創(chuàng)建目錄, mkdir [-p] dirName; -p 確保目錄名稱存在,不存在的就建一個
tar 和 jar
- tar 的命令格式:tar [-option] fileName/filePath;tar具有打包和壓縮功能,普通文件和文件夾可以被打包成 xxx.tar,如果要壓縮,則是在打包之后再壓縮,格式是 xxx.
tar [-cxtzjvfpPN] 文件與目錄
常用參數(shù):描述
-c :建立一個壓縮文件
-x :解開一個壓縮文件
-t :查看tarfile 里面的文件!特別注意,c/x/t 僅能存在一個,不可同時存在
-z :用 gzip 解壓縮
-j :用 bzip2 解壓縮
-v :壓縮的過程中顯示文件,這個常用,但不建議用
-f :使用檔名,在 f 之后要立即接檔名!例如使用『 tar -zcfv tfile sfile』就是錯誤的寫法,要寫成 『tar -zcvf tfile sfile』才對喔
-p :使用原文件的原來屬性(屬性不會依據(jù)使用者而變)
-P :(大寫P)使用絕對路徑來壓縮
-r : 新增文件到已存在的備份文件的結(jié)尾部分
-N :比后面接的日期(yyyy/mm/dd)還要新的才會被打包進(jìn)新建的文件中
--exclude file :在壓縮的過程中,不要將 FILE 打包
復(fù)制代碼
- tar 示例
~~ 打包不壓縮:/home/lwl 目錄
# tar -cvf lwl.tar /home/lwl
~~ 打包并壓縮:/home/lwl 目錄
# tar zcvf lwl. /home/lwl
~~ 解壓 lwl.
# tar zxvf lwl.
~~ 壓縮 lwl.java 為 bz2 格式
# tar jcvf lwl. lwl.java
~~ 解壓 lwl.
# tar jxvf lwl.
~~ 解壓部分文件 log2021.log
# tar -zxvf log. log2021.log
復(fù)制代碼
- jar 的命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目錄] fileName;其中{ ctxu }這四個選項必須選其一。[ v f m e 0 M i ]是可選選項,文件名是必須的
jar {c t x u f }[ v m e 0 M i ][-C 目錄] fileName
jar 的選項參數(shù)和 tar 差不多,如下
-c :創(chuàng)建一個jar包
-t :顯示jar中的內(nèi)容列表
-x :解壓jar包
-u :添加文件到j(luò)ar包中
-f :指定jar包的文件名
-v :生成詳細(xì)的報造,并輸出至標(biāo)準(zhǔn)設(shè)備
-m :指定mani文件.(mani 文件中可以對jar包及其中的內(nèi)容作一些一設(shè)置)
-0 :產(chǎn)生jar包時不對其中的內(nèi)容進(jìn)行壓縮處理
-M :不產(chǎn)生所有文件的清單文件(Mani)。這個參數(shù)會忽略掉 -m 參數(shù)的設(shè)置
-i :為指定的jar文件創(chuàng)建索引文件
-C :表示轉(zhuǎn)到相應(yīng)的目錄下執(zhí)行jar命令,相當(dāng)于cd到那個目錄,然后不帶-C執(zhí)行jar命令
復(fù)制代碼
- jar 示例
~~ 利用hello目錄創(chuàng)建 包,并顯示創(chuàng)建過程
# jar cvf hello
~~ 往 jar 包添加文件,將 HelloWorld.java 添加到 包中
# jar uf HelloWorld.java
~~ 解壓 至當(dāng)前目錄
# jar xvf
復(fù)制代碼
chmod
- chmod 是控制用戶對文件的權(quán)限的命令, 命令格式: chmod [-cfvR] mode file
## -cfvR 參數(shù)解析
-c : 若該文件權(quán)限確實已經(jīng)更改,才顯示其更改動作
-f : 若該文件權(quán)限無法被更改也不要顯示錯誤訊息
-v : 顯示權(quán)限變更的詳細(xì)資料
-R : 對目前目錄下的所有文件與子目錄進(jìn)行相同的權(quán)限變更(即以遞歸的方式逐個變更)
## mode [ugoa][+-=][rwxX-] 參數(shù)解析
u 表示該文件的擁有者
g 表示與該文件的擁有者屬于同一個群體(group)者
o 表示其他以外的人
a 包扣 u g o
## [+-=]
+ 表示增加權(quán)限
- 表示取消權(quán)限
= 表示唯一設(shè)定權(quán)限
## [rwxX-]
r 表示可讀取
w 表示可寫入
x 表示可執(zhí)行
X 只有當(dāng)文件為目錄文件,或者其他類型的用戶有可執(zhí)行權(quán)限時,才將文件權(quán)限設(shè)置可執(zhí)行
- 不具任何權(quán)限
復(fù)制代碼
- chmod 示例
1 命令模式:用戶 vim fileName,便進(jìn)入了命令模式
i 切換到輸入模式,以輸入字符
: 冒號切換到底線命令模式
/word 向光標(biāo)之下尋找一個名稱為 word 的字符串
?word 向光標(biāo)之上尋找一個字符串名稱為 word 的字符串
n 重復(fù)前一個搜索(與 / 或 ? 有關(guān))
N 反向重復(fù)前一個搜索(與 / 或 ? 有關(guān))
PageUp 上翻頁
PageDown 下翻頁
G 移動到這個檔案的最后一行(常用)
nG n 為數(shù)字。移動到這個檔案的第 n 行
2 輸入模式: 在命令模式下按下i就進(jìn)入了輸入模式; ESC 退出輸入模式,切換到命令模式
字符按鍵、shift組合 輸入字符
ENTER 回車鍵,換行
BACK SPACE 退格鍵,刪除光標(biāo)前一個字符
DEL 刪除鍵,刪除光標(biāo)后一個字符
方向鍵 在文本中移動光標(biāo)
HOME/END 移動光標(biāo)到行首/行尾
Page Up/Page Down 上/下翻頁
Insert 切換光標(biāo)為輸入/替換模式,光標(biāo)將變成豎線/下劃線
3 底線命令模式: 在命令模式下按下 ":" 就進(jìn)入了底線命令模式; ESC退出模式,切換到命令模式
:q 退出 vim 程序
:w 保存文件
:wq 保存后離開
:!q 不保存退出
:w [filename] 將編輯的數(shù)據(jù)儲存成另一個檔案
:r [filename] 在編輯的數(shù)據(jù)中,讀入另一個檔案的數(shù)據(jù)。追加到游標(biāo)所在行后面
:!ShellCommand 暫時離開 vi 到指令行模式下執(zhí)行 shellCommand 的顯示結(jié)果
:%s/word1/word2/g 從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2
:%s/word1/word2/gc 和 %s/word1/word2/g 功能一致,不過每次替換都需用戶確認(rèn)
復(fù)制代碼
ln
- 命令格式:ln [options] [源文件或目錄] [目標(biāo)文件或目錄];當(dāng)我們需要在不同的目錄,用到相同的文件時,又不想浪費空間復(fù)制相同的文件,可以用ln 鏈接它,相當(dāng)創(chuàng)建一個快捷圖標(biāo)
options 參數(shù) | 描述
-b | 刪除,覆蓋以前建立的鏈接
-d | 允許超級用戶制作目錄的硬鏈接
-f | 強(qiáng)制執(zhí)行
-i | 交互模式,文件存在則提示用戶是否覆蓋
-n | 把符號鏈接視為一般目錄
-s | 軟鏈接(符號鏈接)
復(fù)制代碼
- 軟鏈接: 以路徑的形式存在。類似于Windows操作系統(tǒng)中的快捷方式;可以對一個不存在的文件名進(jìn)行鏈接;可以對目錄進(jìn)行鏈接;軟鏈接可以 跨文件系統(tǒng) ,硬鏈接不可以
- 硬鏈接: 以文件副本的形式存在。但不占用實際空間;不允許給目錄創(chuàng)建硬鏈接;硬鏈接只有在同一個文件系統(tǒng)中才能創(chuàng)建
- ln 示例
~~ 給文件創(chuàng)建軟鏈接,log2021.log文件創(chuàng)建軟鏈接log2021,如果log2021.log丟失,log2021將失效
# ln -s log2021.log link2021
復(fù)制代碼
2 遠(yuǎn)程登錄與操作
ssh
- linux下的ssh服務(wù)是一個守護(hù)進(jìn)程(demon),ssh 服務(wù)端的進(jìn)程名為 sshd ,負(fù)責(zé)實時監(jiān)聽客戶端的請求(默認(rèn)22端口),包括公共秘鑰等交換等信息。ssh的客戶端可以用 xShell,SecureCRT, Mobaxterm等工具進(jìn)行連接,也可以在 linux 命令窗口使用 ssh 命令連接 ssh 服務(wù)端
- 命令格式:ssh [-p port] user@remoteIp 或者 ssh [-p port] user@remoteIp shellCommand ; 會提示輸入密碼
- ssh示例
~~ 登錄 192.168.25.137 ,并執(zhí)行 ls /backup/data
# ssh root@192.168.25.137 ls /backup/data
復(fù)制代碼
sftp
- 登錄sftp服務(wù)器 sftp -oPort=23 user@remoteIp
~~ 上傳,第一個目錄是本機(jī)的, 第二個參數(shù)遠(yuǎn)端的
> put /etc/hosts /home/lwl
~~ 下載,第一個目錄是遠(yuǎn)端的, 第二個參數(shù)是本機(jī)的
> get /home/lwl /home/csc
復(fù)制代碼
scp
- 如果是涉及不同linux系統(tǒng)間的文件復(fù)制則用 scp, 格式: scp [options] fileSource fileTarget
options 選項參數(shù) | 描述
-P | port:注意是大寫的P, port是指定數(shù)據(jù)傳輸用到的端口號
-p | 保留原文件的修改時間,小寫p,訪問時間和訪問權(quán)限
-r | 遞歸復(fù)制整個目錄
-C | 允許壓縮。(將-C標(biāo)志傳遞給ssh,從而打開壓縮功能)
復(fù)制代碼
- scp 示例
~~ 從本地復(fù)制到遠(yuǎn)程
~~ A 格式: scp localFile username@remoteIp:filePath; B 格式:scp localFile remoteIp:filePath
~~ A 命令指定了用戶名,但命令執(zhí)行后需要輸入密碼,B 格式則需要輸入用戶名和密碼
# scp -r /home/lwl/ root@www.c
~~ 從遠(yuǎn)程復(fù)制到本地
~~ 格式:scp remoteIp:filePath localFile
# scp -r www.c /home/lwl/
復(fù)制代碼
文件同步 rsync
- 與其他文件傳輸工具(如 FTP 或 scp)不同,和 scp 功能類似。 rsync 的最大特點是會檢查發(fā)送方和接收方已有的文件
# rsync -r source destination
復(fù)制代碼
linux與客戶端的上傳下載命令:rz、sz
- 用 ssh 管理 linux 服務(wù)器時經(jīng)常需要遠(yuǎn)程與 win 本地之間交互文件。直接用SecureCRT自帶的上傳下載功能無疑是最方便的。上傳:rz、下載:sz
- 在 window 上使用SecureCRT、XShell 軟件,用 rz、sz 進(jìn)行上傳下載
~~ 上傳文件到linux;彈出SecureCRT上傳窗口,用SecureCRT來上傳
# rz
~~ 下載文件到客戶端(window)
# sz filename
復(fù)制代碼
3 磁盤掛載
df
- df 用于查看磁盤空間占用情況:df [-options] [file]
options 參數(shù)解釋
-i 顯示inode信息
-h 方便閱讀方式顯示
-k 區(qū)塊為1024字節(jié)
-m 區(qū)塊為1048576字節(jié)
-a 全部文件系統(tǒng)列表
-T 顯示文件系統(tǒng)類型
-t<文件系統(tǒng)類型> 只顯示選定文件系統(tǒng)的磁盤信息
-x<文件系統(tǒng)類型> 不顯示選定文件系統(tǒng)的磁盤信息
復(fù)制代碼
- df 示例
# df -hT
文件系統(tǒng) 類型 容量 已用 可用 已用% 掛載點
devtmpfs devtmpfs 63G 0 63G 0% /dev
tmpfs tmpfs 63G 0 63G 0% /dev/shm
tmpfs tmpfs 63G 4.1G 59G 7% /run
tmpfs tmpfs 63G 0 63G 0% /sys/fs/cgroup
復(fù)制代碼
mount
- mount 命令是經(jīng)常會使用到的命令,它用于掛載Linux系統(tǒng)外的文件
命令格式:mount [-t vfstype] [-o options] device dir
1、-t vfstype 指定文件系統(tǒng)的類型,通常不必指定,mount 會自動選擇正確的類型
iso9660 : 光盤或光盤鏡像
msdos : DOS fat16文件系統(tǒng)
vfat : Windows 9x fat32文件系統(tǒng)
ntfs : Windows NT ntfs文件系統(tǒng)
smbfs : Mount Windows文件網(wǎng)絡(luò)共享
nfs :UNIX(LINUX) 文件網(wǎng)絡(luò)共享
2、-o options 主要用來描述設(shè)備或檔案的掛接方式
loop :用來把一個文件當(dāng)成硬盤分區(qū)掛接上系統(tǒng)
ro :采用只讀方式掛接設(shè)備
rw :采用讀寫方式掛接設(shè)備
iocharset :指定訪問文件系統(tǒng)所用字符集
3、device 要掛接(mount)的設(shè)備
4、dir設(shè)備在系統(tǒng)上的掛接點(mount point)
復(fù)制代碼
- mount 示例
~~ 1 掛接U盤,/dev/sdd1 是 U 盤里的磁盤分區(qū)
# mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb
~~ 2 掛接Windows文件共享
~~ administrator 和 pldy123 是ip地址為10.140.133.23 windows計算機(jī)的一個用戶名和密碼,c$是這臺計算機(jī)的一個磁盤共享
# mount -t smbfs -o username=administrator,password=pldy123 $ /mnt/samba
~~ 3 linux 掛接(mount)其他linux系統(tǒng) NFS 共享
/export/home/sunky 10.140.133.23(rw) ~~ 在服務(wù)端 /etc/exports文件配置共享目錄
~~ 在服務(wù)端啟動 nfs 服務(wù)
/etc start 啟動NFS服務(wù)
/etc stop 停止NFS服務(wù)
~~ linux 客戶端掛接 NFS 共享
# mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs
復(fù)制代碼
4 進(jìn)程管理 啟動和結(jié)束
systemctl 和 service
- service 命令本身是一個shell腳本,它會在 /etc 目錄查找指定的服務(wù)腳本,然后調(diào)用該服務(wù)腳本來完成任務(wù);service命令用于對系統(tǒng)服務(wù)進(jìn)行管理,比如啟動(start)、停止(stop)、重啟(restart)、查看狀態(tài)(status)等。命令格式:service 服務(wù)名 [start|stop|restart|reload|status]
~~ service 命令: 停止、啟動、查看 redis服務(wù)
# service redis stop ~~ 等于在 /etc 目錄下運(yùn)行 ./redis stop
# service redis start ~~ 等于在 /etc 目錄下運(yùn)行 ./redis start
# service redis status ~~ 等于在 /etc 目錄下運(yùn)行 ./redis status
復(fù)制代碼
- systemctl 命令兼容了 service 命令,且包含其他更強(qiáng)大功能
- systemctl 用來管理 linux系統(tǒng)的多種資源:系統(tǒng)服務(wù)、硬件設(shè)備、掛載點、socket等;下面則主要介紹關(guān)于 service 系統(tǒng)服務(wù)的相關(guān)命令使用。因為 systemctl 一般用于實現(xiàn)服務(wù)自啟動的腳本
~~ 系統(tǒng)自啟動時 啟動 cron 服務(wù),啟用或禁用它
# systemctl enable crond.service
# systemctl disable ccrond.service
# systemctl is-active crond.service ~~ 是否正在運(yùn)行
# systemctl is-enabled crond.service ~~ 是否建立了啟動鏈接
~~ 啟動、重啟、停止、重載、殺死服務(wù)以及查看服務(wù) httpd
# systemctl start
# systemctl restart
# systemctl stop
# systemctl reload
# systemctl status
# systemctl kill a
~~ 列出所有服務(wù)(包括啟用的和禁用的)
# systemctl list-units ~~ 列出所有管理的資源單元
# systemctl list-unit-files --type=service ~~ 只列出所有 service 類型資源
~~ 獲取某個服務(wù)(httpd)的依賴性列表
# systemctl list-dependencies
~~ 檢查 httpd 服務(wù)的所有配置細(xì)節(jié)
# systemctl show httpd
復(fù)制代碼
- xxx.service 文件的詳細(xì)配置介紹請上網(wǎng)自行查看,下面給個簡單的模板介紹
[Unit]
Description:描述
After:audi 在audi啟動后才啟動
ConditionPathExists: 執(zhí)行條件
[Service]
EnvironmentFile: 變量所在文件
ExecStart: 執(zhí)行啟動命令
Restart: fail時重啟
[Install]
Alias:服務(wù)別名
WangtedBy: 多用戶模式下需要的
復(fù)制代碼
nohup 和 &
- nohup 和 & 組合可以不掛斷地在后臺運(yùn)行進(jìn)程,命令格式:nohup command [agrs..] [&]。& 表示程序可以在linux 后臺運(yùn)行,在當(dāng)前 shell 界面 ctrl C 退出,該程序也能繼續(xù)運(yùn)行,它可以忽略 SIGINT 信號,不過它會隨著 shell 程序的關(guān)閉而停止,這是因為 & 運(yùn)行的進(jìn)程對 SIGHUP 信號不免疫
- 加上 nohup 就可以做到忽略SIGHUP信號
~~ 在后臺運(yùn)行 lwl.py,且不隨著 shell 關(guān)閉而死亡。永遠(yuǎn)存在
# nohup python lwl.py &> /var/log &
復(fù)制代碼
kill
- 如果在linux遇到需要殺死或停止某進(jìn)程,可以使用 kill, 示例:# kill -9 1211。kill 也不單單用于停止進(jìn)程,可用kill [-s <指定信號>][程序] 發(fā)送指定信號給指定程序,而# kill -l 可列出全部的信號名稱。
~~ 列出全部的信息名稱
# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
...
...
~~ 發(fā)送 SIGQUIT 給 pid = 1211 的進(jìn)程
# kill -s SIGQUIT 1211 ~~ 或者 kill -SIGQUIT 1211
復(fù)制代碼
5 系統(tǒng)性能參數(shù)查看
ps
- ps 命令用于顯示當(dāng)前進(jìn)程的狀態(tài)。命令格式:ps [options]
options 參數(shù)解釋
-A/a 列出所有的進(jìn)程
-e 等于 “-A”
f 顯示程序間的關(guān)系
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細(xì)的資訊
-aux 顯示所有包含其他使用者的行程
復(fù)制代碼
- ps -ef 各項指標(biāo)解釋
# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 6 18:39 pts/0 00:02:27 java -jar /o
root 102 0 0 18:40 pts/1 00:00:00 /bin/bash
root 158 102 0 18:47 pts/1 00:00:00 /usr/bin/python /usr/bin/dstat
---------各項指標(biāo)解析-----------------------
UID 程序的執(zhí)行者 UID
PID 進(jìn)程的ID號
PPID 則是其上級父程序的ID
C cpu 使用的資源百分比
TTY 登入者的終端機(jī)位置
TIME CPU 執(zhí)行的時間
CMD 進(jìn)程執(zhí)行的命令
復(fù)制代碼
- ps -aux 各項指標(biāo)解釋
# ps -aux
ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 7.0 5.3 13278220 1736948 pts/0 Ssl+ 18:39 2:24 java -jar /o
root 102 0.0 0.0 15264 2044 pts/1 Ss 18:40 0:00 /bin/bash
root 158 0.0 0.0 52176 6756 pts/1 T 18:47 0:00 /usr/bin/python /usr/bin/dstat
root 159 0.0 0.0 52176 6756 pts/1 T 18:49 0:00 /usr/bin/python /usr/bin/dstat -n -N eth0,total
---------各項指標(biāo)解析-----------------------
USER 行程擁有者
PID pid
%CPU 占用的 CPU 使用率
%MEM 占用的記憶體使用率
VSZ 占用的虛擬記憶體大小
RSS 占用的記憶體大小
TTY 終端的次要裝置號碼 (minor device number of tty)
STAT 該進(jìn)程程的狀態(tài):
D: 無法中斷的休眠狀態(tài) (通常 IO 的進(jìn)程)
R: 正在執(zhí)行中
S: 可中斷的睡眠狀態(tài)
T: 暫停狀態(tài)或跟蹤狀態(tài)
Z: 僵尸進(jìn)程(zombie),無法正常終止
X: 退出狀態(tài),進(jìn)程即將被銷毀
START 登入者的終端機(jī)位置
TIME CPU 執(zhí)行的時間
COMMAND 進(jìn)程執(zhí)行的命令
復(fù)制代碼
lsof
- lsof(List Open Files) 用于查看你進(jìn)程開打的文件,打開文件的進(jìn)程,進(jìn)程打開的端口(TCP、UDP)。命令格式 lsof [options] filename
options 參數(shù)解釋
-a 列出打開文件存在的進(jìn)程
-c<進(jìn)程名> 列出指定進(jìn)程所打開的文件(常用)
-p<進(jìn)程號> 列出指定進(jìn)程號所打開的文件(常用)
-g 列出屬于gid的進(jìn)程詳情
-u<uname/uid> 顯示歸屬uname或uid的進(jìn)程情況
-d<fd文件號> 列出占用該文件號的進(jìn)程
+d<目錄> 列出目錄下被打開的文件
+D<目錄> 遞歸列出目錄下被打開的文件
-n<目錄> 列出使用NFS的文件
-i<條件> 列出符合條件的進(jìn)程。(ip4/ip6協(xié)議、端口、 @ip )
-u 列出UID號進(jìn)程詳情
復(fù)制代碼
- lsof 各項指標(biāo)解釋
# lsof
command PID USER FD type DEVICE SIZE NODE NAME
init 1 root txt REG 8,2 43496 6121706 /sbin/init
---------各項指標(biāo)解析-----------------------
COMMAND 進(jìn)程的名稱
PID 進(jìn)程標(biāo)識符
USER 進(jìn)程所有者
FD 文件描述符,應(yīng)用程序通過文件描述符識別該文件。如cwd、txt等
TYPE 文件類型,如DIR、REG等
DEVICE 指定磁盤的名稱
SIZE 文件的大小
NODE 索引節(jié)點(文件在磁盤上的標(biāo)識)
NAME 打開文件的確切名稱
復(fù)制代碼
- lsof 示例
~~ 顯示所有打開80端口的進(jìn)程
# lsof -i:80
~~ 那個進(jìn)程在占用/etc/passwd
# lsof /etc/passwd
~~ 顯示使用fd為1211的進(jìn)程
# lsof -d 1211
~~ 顯示那些文件被pid為 1211 的進(jìn)程打開
# lsof -p 1211
~~ 查看sendmail進(jìn)程的文件使用情況
# lsof -c sendmail
復(fù)制代碼
pidof
- pidof 是linux系統(tǒng)中用來查找正在運(yùn)行進(jìn)程的進(jìn)程號(pid)的工具。如果我們提前知道進(jìn)程名,則可以根據(jù)進(jìn)程名查找pid,命令格式:pidof [options] 進(jìn)程名稱
options 選項參數(shù)
-s: 僅返回一個進(jìn)程號;
-c: 僅顯示具有相同“root”目錄的進(jìn)程
-x: 顯示由腳本開啟的進(jìn)程
-o: 指定不顯示的進(jìn)程ID
復(fù)制代碼
- pidof 示例
# pidof -s nginx
1211
復(fù)制代碼
top
- top 命令是用來監(jiān)控Linux系統(tǒng)狀況,比如cpu、內(nèi)存,進(jìn)程等資源使用情況。命令格式: top [-options]
options 選項參數(shù)
-i<時間> 設(shè)置刷新間隔時間
-u<用戶名> 指定用戶名
-p<進(jìn)程號> 指定進(jìn)程
-H 開啟線程查看
復(fù)制代碼
- top 各項輸出指標(biāo)解釋
# top
top - 18:20:27 up 26 days, 8:30, 2 users, load average: 0.04, 0.09, 0.13
Tasks: 168 total, 1 running, 167 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.5 sy, 0.0 ni, 99.1 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem: 32762356 total, 14675196 used, 18087160 free, 884 buffers
KiB Swap: 2103292 total, 0 used, 2103292 free. 6580028 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1260 root 20 0 7933492 1.173g 14004 S 0.333 3.753 58:20.74 java
1503 root 20 0 69172 2240 1412 S 0.333 0.007 0:48.05 httpd
1520 daemon 20 0 358140 3980 776 S 0.333 0.012 6:19.55 httpd
2323 mysql 20 0 19.918g 4.538g 9404 S 0.333 14.52 352:51.44 mysqld
.......
---------各項指標(biāo)解析---------------------------------------------------
第一行統(tǒng)計信息區(qū)
18:20:27 當(dāng)前時間
up 25 days, 17:29 系統(tǒng)運(yùn)行時間,格式為時:分
1 user 當(dāng)前登錄用戶數(shù)
load average: 0.04, 0.09, 0.13 系統(tǒng)負(fù)載,三個數(shù)值分別為 1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值
Tasks:進(jìn)程相關(guān)信息
running 正在運(yùn)行的進(jìn)程數(shù)
sleeping 睡眠的進(jìn)程數(shù)
stopped 停止的進(jìn)程數(shù)
zombie 僵尸進(jìn)程數(shù)
Cpu(s):CPU相關(guān)信息
%us:表示用戶空間程序的cpu使用率(沒有通過nice調(diào)度)
%sy:表示系統(tǒng)空間的cpu使用率,主要是內(nèi)核程序
%ni:表示用戶空間且通過nice調(diào)度過的程序的cpu使用率
%id:空閑cpu
%wa:cpu運(yùn)行時在等待io的時間
%hi:cpu處理硬中斷的數(shù)量
%si:cpu處理軟中斷的數(shù)量
%st:被虛擬機(jī)偷走的cpu
Mem 內(nèi)存信息
total 物理內(nèi)存總量
used 使用的物理內(nèi)存總量
free 空閑內(nèi)存總量
buffers 用作內(nèi)核緩存的內(nèi)存量
Swap 內(nèi)存信息
total 交換區(qū)總量
used 使用的交換區(qū)總量
free 空閑交換區(qū)總量
cached 緩沖的交換區(qū)總量
~~ 常用的指標(biāo)
PID 進(jìn)程id
PPID 父進(jìn)程id
UID 進(jìn)程所有者的用戶id
USER 進(jìn)程所有者的用戶名
GROUP 進(jìn)程所有者的組名
TTY 啟動進(jìn)程的終端名。不是從終端啟動的進(jìn)程則顯示為 ?
PR 優(yōu)先級
NI nice值。負(fù)值表示高優(yōu)先級,正值表示低優(yōu)先級
P 最后使用的CPU,僅在多CPU環(huán)境下有意義
%CPU 上次更新到現(xiàn)在的CPU時間占用百分比
TIME 進(jìn)程使用的CPU時間總計,單位秒
TIME+ 進(jìn)程使用的CPU時間總計,單位1/100秒
%MEM 進(jìn)程使用的物理內(nèi)存百分比
VIRT 進(jìn)程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES
SWAP 進(jìn)程使用的虛擬內(nèi)存中,被換出的大小,單位kb。
RES 進(jìn)程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA
CODE 可執(zhí)行代碼占用的物理內(nèi)存大小,單位kb
DATA 可執(zhí)行代碼以外的部分(數(shù)據(jù)段+棧)占用的物理內(nèi)存大小,單位kb
SHR 共享內(nèi)存大小,單位kb
S 進(jìn)程狀態(tài); 相關(guān)枚舉值解釋查看 ps -ef S 項解釋
COMMAND 進(jìn)程啟動執(zhí)行的命令行
復(fù)制代碼
- top 命令下,查看信息常用快捷鍵
h 顯示快捷鍵幫助
k 終止一個進(jìn)程
i 開/關(guān)忽略閑置和僵死進(jìn)程
q 退出程序
r 重新安排一個進(jìn)程的優(yōu)先級別
S 切換到累計模式
s 更改刷新間隔時間,單位秒
f,F 從當(dāng)前顯示中添加或者刪除項目
o,O 改變顯示項目的順序
l 切換顯示平均負(fù)載和啟動時間信息
m 切換顯示內(nèi)存信息
t 切換顯示進(jìn)程和CPU狀態(tài)信息
c 切換顯示命令名稱和完整命令行
M 根據(jù)內(nèi)存使用大小排序
P 根據(jù)CPU使用率進(jìn)行排序 (默認(rèn)排序)
T 根據(jù)時間/累計時間進(jìn)行排序
1 展開多核cpu顯示
H 線程查看模式切換為開或關(guān)
復(fù)制代碼
free
- free 可查看系統(tǒng)內(nèi)存的使用情況,包括物理內(nèi)存、交換內(nèi)存(swap)和內(nèi)核緩沖區(qū)內(nèi)存。命令格式:free [-bkmg][-hlot][s delay][-c count]
free 選項參數(shù)
-b,-k,-m,-g 表示輸出顯示的單位為 bytes,KB,MB,or GB,不添加選項的話默認(rèn)以 KB 為單位顯示
-h 以人類可讀的方式顯示,即后邊會自動帶上單位
-l 顯示詳細(xì)的低內(nèi)存和高內(nèi)存統(tǒng)計信息(增加了 Low 和 High 這兩行顯示)
-o 使用舊的格式顯示(不顯示 -/+buffers/cache 這一行)
-t 增加顯示 Total 行,Total = Mem + Swap
-s delay 每 delay 秒重復(fù)打印一次,delay 為具體的秒數(shù)
-c count 循環(huán)打印 count 次后退出,count 為具體的次數(shù)。需要配合 -s delay 使用
復(fù)制代碼
# free -m
total used free shared buffers cached
Mem: 32107 30414 1692 0 1962 8489
-/+ buffers/cache: 19962 12144
Swap: 0 0 0
------各項指標(biāo)解釋-------------------------------------------------
Mem 表示物理內(nèi)存統(tǒng)計:
total 物理內(nèi)存總量,total = used + free
used 總使用緩存的數(shù)量(包含 buffers 與 cache),但其中可能部分緩存并未實際使用
free 未被分配的內(nèi)存
shared 共享內(nèi)存,一般系統(tǒng)不會用到,總是0
buffers 系統(tǒng)分配但未被使用的 buffers 數(shù)量
cached 系統(tǒng)分配但未被使用的 cache 數(shù)量
-/+ buffers/cache:
used 實際使用內(nèi)存,等于第一行的 used - buffers - cached
free 實際可用內(nèi)存,等于第一行的 free + buffers + cached
Swap表示交換區(qū)的使用情況,也就是我們通常所說的虛擬內(nèi)存
total 總量虛擬內(nèi)存
used 使用的虛擬內(nèi)存
free 空閑的虛擬內(nèi)存
復(fù)制代碼
mpstat
- mpstat 是 Multiprocessor Statistics 的縮寫,可以查看多核心的 cpu 中每個計算核心的統(tǒng)計數(shù)據(jù)。命令格式:mpstat [-P {cpu|ALL}] [delay [count]]
-P {cpu|ALL} 表示監(jiān)控哪個CPU, cpu在[0,cpu個數(shù)-1]中取值
delay 相鄰的兩次采樣的間隔時間
count 采樣的次數(shù),count只能和delay一起使用
復(fù)制代碼
# mpstat -P ALL 2
Linux 3.10.0-862.el7.x86_64 (8f57ec39327b) 07/11/2021 _x86_64_ (6 CPU)
07:19:07 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
07:19:09 PM all 21.43 3.36 6.54 6.45 0.00 1.29 0.00 0.00 0.00 60.93
07:19:09 PM 0 20.41 3.57 7.14 4.08 0.00 1.53 0.00 0.00 0.00 63.27
07:19:09 PM 1 22.45 3.06 6.12 5.10 0.00 1.53 0.00 0.00 0.00 61.73
---------各項輸出指標(biāo)解釋----------------------------------------------
CPU 處理器ID
%usr 在 delay 時間段里,用戶態(tài)的 cpu 時間(%)
%nice
%sys 在 delay 時間段里,核心時間(%)
%iowait 在 delay 時間段里,硬盤IO等待時間(%)
%irq 在 delay 時間段里,硬中斷時間(%)
%soft 在 delay 時間段里,軟中斷時間(%)
%steal 虛擬機(jī)管理器在服務(wù)另一個虛擬處理器時虛擬CPU處在非自愿等待下花費時間的百分比
%guest 顯示運(yùn)行虛擬處理器時 CPU 花費時間的百分比
%gnice gnice/total*100
%idle 在internal時間段里,CPU除去等待磁盤IO操作外的因為任何原因而空閑的時間閑置時間(%)
復(fù)制代碼
iostat
- iostat 主要用于輸出 CPU 和磁盤 I/O 相關(guān)的統(tǒng)計信息,命令格式: iostat [options] [delay [count]]
options 選項參數(shù)
-c 只顯示系統(tǒng)CPU統(tǒng)計信息,即單獨輸出avg-cpu結(jié)果,不包括device結(jié)果
-d 單獨輸出Device結(jié)果,不包括cpu結(jié)果
-k/-m 輸出結(jié)果以kB/mB為單位,而不是以扇區(qū)數(shù)為單位
-x 輸出更詳細(xì)的io設(shè)備統(tǒng)計信息
delay 每次輸出間隔時間
count 表示輸出次數(shù),不帶count表示循環(huán)輸出
復(fù)制代碼
- 默認(rèn)命令iostat的各項指標(biāo)解析
# iostat
Linux 4.4.73-5-default 2021年07月08日 _x86_64_ (40 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
2.50 0.41 0.94 0.02 0.00 96.13
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 12.09 27.80 507.24 57343492 1046298308
sdb 17.95 30.91 647.84 63751096 1336305974
------各項指標(biāo)解析-----------------------------------------------------------
avg-cpu: 總體cpu使用情況統(tǒng)計信息,對于多核cpu,這里為所有cpu的平均值
%user 用戶空間的CPU使用率
%nice CPU處在帶NICE值的用戶模式下的時間百分比
%system 內(nèi)核空間的CPU使用率
%iowait CPU等待IO的百分比
%steal 虛擬機(jī)的虛擬機(jī)CPU使用的CPU
%idle 空閑的CPU
Device: 各磁盤設(shè)備的IO統(tǒng)計信息。各列含義如下:
tps 每秒進(jìn)程下發(fā)的IO讀、寫請求數(shù)量
KB_read/s 每秒從驅(qū)動器讀入的數(shù)據(jù)量,單位為K。
KB_wrtn/s 每秒從驅(qū)動器寫入的數(shù)據(jù)量,單位為K。
KB_read 讀入數(shù)據(jù)總量,單位為K。
KB_wrtn 寫入數(shù)據(jù)總量,單位為K
復(fù)制代碼
- iostat -x -k -d 1 2的各項指標(biāo)解析
# iostat -x -k -d 1 1
Linux 4.4.73-5-default (ceshi44) 2021年07月08日 _x86_64_ (40 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.08 2.48 0.37 11.71 27.80 507.24 88.53 0.02 1.34 14.96 0.90 0.09 0.10
sdb 0.00 1.20 1.28 16.67 30.91 647.83 75.61 0.17 9.51 9.40 9.52 0.32 0.57
------各項指標(biāo)解析----------------------------------------------------------
rrqm/s: 每秒對該設(shè)備的讀請求被合并次數(shù),文件系統(tǒng)會對讀取同塊(block)的請求進(jìn)行合并
wrqm/s: 每秒對該設(shè)備的寫請求被合并次數(shù)
r/s: 每秒完成的讀次數(shù)
w/s: 每秒完成的寫次數(shù)
rkB/s: 每秒讀數(shù)據(jù)量(kB為單位)
wkB/s: 每秒寫數(shù)據(jù)量(kB為單位)
avgrq-sz: 平均每次IO操作的數(shù)據(jù)量(扇區(qū)數(shù)為單位)
avgqu-sz: 平均等待處理的IO請求隊列長度
await: 平均每次IO請求等待時間(包括等待時間和處理時間,毫秒為單位)
svctm: 平均每次IO請求的處理時間(毫秒為單位)
%util: 采用周期內(nèi)用于IO操作的時間比率,即IO隊列非空的時間比率
復(fù)制代碼
netstat
- netstat 命令用于顯示各種網(wǎng)絡(luò)相關(guān)信息,如網(wǎng)絡(luò)連接,路由表,網(wǎng)絡(luò)連接狀態(tài)。命令格式:netstat [-options]
options 參數(shù)解析
-a (all)顯示所有選項,默認(rèn)不顯示 Listen 相關(guān)
-t (tcp)僅顯示tcp相關(guān)選項
-u (udp)僅顯示udp相關(guān)選項
-n 拒絕顯示別名,能顯示數(shù)字的全部轉(zhuǎn)化成數(shù)字。
-l 僅列出有在 Listen (監(jiān)聽) 的服務(wù)狀態(tài)
-p 顯示建立相關(guān)鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴(kuò)展信息,例如uid等
-s 按各個協(xié)議進(jìn)行統(tǒng)計
-c 每隔一個固定時間,執(zhí)行該netstat命令
復(fù)制代碼
- 各項輸出指標(biāo)解析
# netstat -pt
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:30037 *:* LISTEN 2109/firefox
....
------各項指標(biāo)解析----------------------------------------
Proto 協(xié)議
Recv-Q 接收隊列 ,一般都應(yīng)該是0。如果不是則表示軟件包正在隊列中堆積
Send-Q 發(fā)送隊列,一般都應(yīng)該是0。如果不是則表示軟件包正在隊列中堆積
Local Address 本地地址+port
Foreign Address 遠(yuǎn)端地址+port
State 狀態(tài)
PID 進(jìn)程pid
Program name 進(jìn)程名
復(fù)制代碼
- netstat 常用命令示例
# netstat -anp
# netstat -tnlp
復(fù)制代碼
vmstat
- vmstat (虛擬內(nèi)存統(tǒng)計)可對操作系統(tǒng)的內(nèi)存、進(jìn)程、CPU,磁盤進(jìn)行監(jiān)控。相比top,可以看到整個機(jī)器的CPU、內(nèi)存、IO的使用情況,而不是單單看到各個進(jìn)程的CPU使用率和內(nèi)存使用率(使用場景不一樣)
- 命令格式
// -a:顯示活躍和非活躍內(nèi)存 -n:只在開始時顯示一次各字段名稱
# vmstat [-a] [-n] [delay [count]]
// f:總的fork進(jìn)程 s:內(nèi)存使用的詳細(xì)信息 d:磁盤的讀/寫 m:系統(tǒng)的slab信息
# vmstat [-fsdm]
// 查看指定磁盤分區(qū)統(tǒng)計信息
# vmstat [-p disk partition]
復(fù)制代碼
- vmstat 示例
$ vmstat 2 1
procs --------memory--------- --swap-- --io--- -system-- ----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 3498472 315836 3819540 0 0 0 1 2 0 3 1 96 0 0
------各項指標(biāo)解析----------------------------------------
Procs(進(jìn)程)
r: 運(yùn)行隊列中進(jìn)程數(shù)量,當(dāng)這個值超過了CPU數(shù)目,就會出現(xiàn)CPU瓶頸了
b: 等待IO的進(jìn)程數(shù)量
Memory(內(nèi)存):
swpd: 使用虛擬內(nèi)存大小,如果大于0,表示你的機(jī)器物理內(nèi)存不足了,如果不是程序內(nèi)存泄露的原因,那么你該升級內(nèi)存了
free: 可用內(nèi)存大小
buff: 用作緩沖的內(nèi)存大小
cache: 用作緩存的內(nèi)存大
Swap:
si: 每秒從交換區(qū)寫到內(nèi)存的大小,如果這個值大于0,表示物理內(nèi)存不夠用或者內(nèi)存泄露了,要查找耗內(nèi)存進(jìn)程解決掉
so: 每秒寫入交換區(qū)的內(nèi)存大小
IO:(現(xiàn)在的Linux版本塊的大小為1024bytes)
bi: 每秒讀取的塊數(shù)
bo: 每秒寫入的塊數(shù),bi和bo一般都要接近0,不然就是IO過于頻繁,需要調(diào)整
系統(tǒng)
in: 每秒中斷數(shù),包括時鐘中斷
cs: 每秒上下文切換數(shù),調(diào)用系統(tǒng)函數(shù),就要進(jìn)行上下文切換,線程的切換,也要進(jìn)程上下文切換,這個值要越小越好
CPU(以百分比表示):
us: 用戶進(jìn)程執(zhí)行時間
sy: 系統(tǒng)進(jìn)程執(zhí)行時間
id: 空閑時間(包括IO等待時間),中央處理器的空閑時間
wa: 等待 IO 時間
st: 虛擬機(jī)的虛擬機(jī)CPU使用的CPU
復(fù)制代碼
dstat
- vmstat 是對系統(tǒng)的整體情況進(jìn)行統(tǒng)計,無法對某個進(jìn)程進(jìn)行深入分析,所以推薦下 dstat。dstat 是一個可以取代vmstat、iostat、netstat 這些命令的多功能命令工具,執(zhí)行 dstat 命令,默認(rèn)情況它會收集-cpu-、-disk-、-net-、-paging-、-system-的數(shù)據(jù),一秒鐘收集一次。命令格式:dstat [options] [delay [count]],其中使用 -p pid 選項可針對某一進(jìn)程進(jìn)行統(tǒng)計監(jiān)控
options 常用參數(shù)解析
-l 顯示負(fù)載統(tǒng)計量
-c 開啟cpu統(tǒng)計
-C <CPU> 選項跟著 cpu 的編號,顯示該cpu 的統(tǒng)計
-d 開啟 disk 統(tǒng)計
-g 開啟分頁統(tǒng)計
-y 開啟系統(tǒng)統(tǒng)計,包括中斷和上下文切換
-i 開啟中斷統(tǒng)計
-s 開啟 swap 統(tǒng)計,包括used, free
-m 顯示內(nèi)存使用率(包括used,buffer,cache,free值)
-n 開啟網(wǎng)絡(luò)讀寫統(tǒng)計
–socket 顯示網(wǎng)絡(luò)統(tǒng)計數(shù)據(jù)
–tcp 顯示常用的TCP統(tǒng)計
-N 選項跟著網(wǎng)絡(luò)設(shè)備名,多個用逗號隔開,進(jìn)行網(wǎng)絡(luò)統(tǒng)計
-p 開啟對進(jìn)程統(tǒng)計,runnable, uninterruptible, new
-r io開啟請求統(tǒng)計,包括read requests, write requests
--output文件 此選項也比較有用,可以把狀態(tài)信息以csv的格式重定向到指定的文件中
-–disk-util 顯示某一時間磁盤的忙碌狀況
-–freespace 顯示當(dāng)前磁盤空間使用率
-–proc-count 顯示正在運(yùn)行的程序數(shù)量
--top-bio-adv 指出塊I/O最大的進(jìn)程
--top-cputime 耗費CPU時間最多的進(jìn)程名和耗費時間
--top-cpu-adv 顯示CPU占用最大的進(jìn)程
-–top-io 顯示正常I/O最大的進(jìn)程
-–top-mem 顯示占用最多內(nèi)存的進(jìn)程
復(fù)制代碼
- 輸出指標(biāo)解析
# dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
29 7 57 6 0 1| 85k 1457k| 0 0 | 0 0 |8350 67k
30 9 54 6 0 1| 0 1290k| 857B 568B| 0 0 | 33k 75k
...
------各項指標(biāo)解析-----------------------------------
CPU的使用率
usr 顯示了用戶占比
sys 系統(tǒng)占比
idl 空閑占比
wai 等待占比
hiq 硬中斷
siq 軟中斷情況
磁盤的讀寫
read 磁盤的讀總數(shù)
writ 磁盤的寫總數(shù)
網(wǎng)絡(luò)設(shè)備發(fā)送和接受的數(shù)據(jù)
recv 網(wǎng)絡(luò)收數(shù)據(jù)總數(shù)
send 網(wǎng)絡(luò)發(fā)數(shù)據(jù)總數(shù)
系統(tǒng)的分頁活動
in 內(nèi)存頁換入
out 內(nèi)存頁換出
系統(tǒng)統(tǒng)計
int 統(tǒng)計中斷
csw 上下文切換
復(fù)制代碼
- 指定展示各個網(wǎng)卡的收發(fā)狀態(tài)
# dstat -n -N eth0,total
--net/eth0---net/total-
recv send: recv send
0 0 : 0 0
140B 140B: 140B 140B
18k 6570B: 18k 6570B
復(fù)制代碼
- 查看全部內(nèi)存都有誰在占用
# dstat -g -l -m -s --top-mem
---paging-- ---load-avg--- ------memory-usage----- ----swap--- --most-expensive-
in out | 1m 5m 15m | used buff cach free| used free| memory process
0 0 4.77 5.09 2108k 7892M 233M| 0 0 |java 1670M
0 0 4.77 5.09 2108k 7893M 221M| 0 0 |java 1670
復(fù)制代碼
- 進(jìn)程最耗資源統(tǒng)計
# dstat --top-cpu-adv 1 2
-------most-expensive-cpu-process-------
process pid cpu read write
java 1 0.0% 43B 0
java 1 0.2% 0 0
復(fù)制代碼
sar
- sar 和 dstat 差不多,隨你們各自喜好使用,可以從多方面對系統(tǒng)的資源進(jìn)行監(jiān)控,包括:文件的讀寫情況、系統(tǒng)調(diào)用的使用情況、磁盤I/O、CPU效率、內(nèi)存使用狀況、進(jìn)程活動及 IPC 有關(guān)的活動等。命令格式:sar [options] [-A] [-o file] delay [count]。delay 為采樣間隔,count 為采樣次數(shù),默認(rèn)值是1
options 選項參數(shù)
-A 所有報告的總和
-o file 表示將命令結(jié)果以二進(jìn)制格式存放在文件中,file 是文件名
-u 輸出CPU使用情況的統(tǒng)計信息
-v 輸出inode、文件和其他內(nèi)核表的統(tǒng)計信息
-d 輸出每一個塊設(shè)備的活動信息
-b 顯示I/O和傳送速率的統(tǒng)計信息(相對-d 是匯總信息)
-r 輸出內(nèi)存和交換空間的統(tǒng)計信息
-R 輸出內(nèi)存頁面的統(tǒng)計信息
-a 文件讀寫情況
-q 隊列長度和平均負(fù)載
-c 輸出進(jìn)程統(tǒng)計信息,每秒創(chuàng)建的進(jìn)程數(shù)
-y 終端設(shè)備活動情況
-w 輸出系統(tǒng)交換活動信息
-x <pid> 顯示給定進(jìn)程的統(tǒng)計信息
-n <關(guān)鍵詞> 統(tǒng)計網(wǎng)絡(luò)信息
關(guān)鍵詞可以是:
DEV 網(wǎng)卡
EDEV 網(wǎng)卡 (錯誤)
NFS NFS 客戶端
NFSD NFS 服務(wù)器
SOCK Sockets (套接字) (v4)
SOCK6 Sockets (套接字) (v6)
IP IP 流 (v4)
EIP IP 流 (v4) (失敗信息)
ICMP ICMP 流 (v4)
EICMP ICMP 流 (v4) (失敗信息)
TCP TCP 流 (v4)
ETCP TCP 流 (v4) (失敗信息)
UDP UDP 流 (v4)
IP6 IP 流 (v6)
EIP6 IP 流 (v6) (失敗信息)
ICMP6 ICMP 流 (v6)
EICMP6 ICMP 流 (v6) (失敗信息)
UDP6 UDP 流 (v6)
復(fù)制代碼
- 查看 CPU 使用情況:sar -u 1 2
# sar -u 1 2
Linux 3.10.0-862.el7.x86_64 (8f57ec39327b) 07/11/2021 _x86_64_ (6 CPU)
07:02:04 PM CPU %user %nice %system %iowait %steal %idle
07:02:05 PM all 23.90 3.22 7.97 5.25 0.00 59.66
07:02:06 PM all 26.53 4.76 8.84 5.95 0.00 53.91
Average: all 25.21 3.99 8.40 5.60 0.00 56.79
------各項指標(biāo)解析---------------------------------
%user 用戶空間的CPU使用
%nice 改變過優(yōu)先級的進(jìn)程的CPU使用率
%system 內(nèi)核空間的CPU使用率
%iowait CPU等待IO的百分比
%steal 虛擬機(jī)的虛擬機(jī)CPU使用的CPU
%idle 空閑的CPU
復(fù)制代碼
- 查看內(nèi)存使用情況 sar -r
# sar -r 1 2
Linux 3.10.0-862.el7.x86_64 (8f57ec39327b) 07/11/2021 _x86_64_ (6 CPU)
07:05:16 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
07:05:17 PM 299596 32398396 99.08 2084 7615088 37900868 115.91 27267692 3809860 672
07:05:18 PM 298932 32399060 99.09 2084 7615848 37900100 115.91 27267828 3810252 488
Average: 299264 32398728 99.08 2084 7615468 37900484 115.91 27267760 3810056 580
------各項指標(biāo)解析--------------------
kbmemfree 空閑的物理內(nèi)存大小
kbmemused 使用中的物理內(nèi)存大小
%memused 物理內(nèi)存使用率
kbbuffers 內(nèi)核中作為緩沖區(qū)使用的物理內(nèi)存大小,kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache.
kbcached 緩存的文件大小
kbcommit 保證當(dāng)前系統(tǒng)正常運(yùn)行所需要的最小內(nèi)存,即為了確保內(nèi)存不溢出而需要的最少內(nèi)存(物理內(nèi)存+Swap分區(qū))
commit 這個值是kbcommit與內(nèi)存總量(物理內(nèi)存+swap分區(qū))的一個百分比的值
復(fù)制代碼
- 查看 IO 和傳遞速率:sar -b
# sar -b 1 2
Linux 3.10.0-862.el7.x86_64 (8f57ec39327b) 07/11/2021 _x86_64_ (6 CPU)
07:06:08 PM tps rtps wtps bread/s bwrtn/s
07:06:09 PM 171.00 0.00 171.00 0.00 3431.00
07:06:10 PM 163.00 0.00 163.00 0.00 2620.00
Average: 167.00 0.00 167.00 0.00 3025.50
------各項指標(biāo)解析--------------------
tps 磁盤每秒鐘的IO總數(shù),等于iostat中的tps
rtps 每秒鐘從磁盤讀取的IO總數(shù)
wtps 每秒鐘從寫入到磁盤的IO總數(shù)
bread/s 每秒鐘從磁盤讀取的塊總數(shù)
bwrtn/s 每秒鐘此寫入到磁盤的塊總數(shù)
復(fù)制代碼
- 網(wǎng)絡(luò)接口信息:sar -n DEV
# sar -n DEV 1 1
Linux 3.10.0-862.el7.x86_64 (8f57ec39327b) 07/11/2021 _x86_64_ (6 CPU)
07:06:57 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
07:06:58 PM eth0 2.00 4.00 1.45 0.56 0.00 0.00 0.00
07:06:58 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:06:58 PM tunl0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: eth0 2.00 4.00 1.45 0.56 0.00 0.00 0.00
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: tunl0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
------各項指標(biāo)解析--------------------
IFACE 本地網(wǎng)卡接口的名稱
rxpck/s 每秒鐘接受的數(shù)據(jù)包
txpck/s 每秒鐘發(fā)送的數(shù)據(jù)庫
rxKB/S 每秒鐘接受的數(shù)據(jù)包大小,單位為KB
txKB/S 每秒鐘發(fā)送的數(shù)據(jù)包大小,單位為KB
rxcmp/s 每秒鐘接受的壓縮數(shù)據(jù)包
txcmp/s 每秒鐘發(fā)送的壓縮包
rxmcst/s 每秒鐘接收的多播數(shù)據(jù)包
復(fù)制代碼
- 查看磁盤使用情況:sar -d。相對 -b 它可以看到各個設(shè)備的信息,-b 輸出的是匯總信息
sar -d -p 1 1
Linux 3.10.0-862.el7.x86_64 (8f57ec39327b) 07/11/2021 _x86_64_ (6 CPU)
07:08:41 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
07:08:42 PM sdb 160.00 0.00 2914.00 18.21 1.51 9.43 3.73 59.70
07:08:42 PM sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
07:08:42 PM sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: sdb 160.00 0.00 2914.00 18.21 1.51 9.43 3.73 59.70
Average: sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
------各項指標(biāo)解析--------------------
DEV 磁盤設(shè)備的名稱,如果不加-p,會顯示dev253-0類似的設(shè)備名稱,因此加上-p顯示的名稱更直接
tps 每秒I/O的傳輸總數(shù)
rd_sec/s 每秒讀取的扇區(qū)的總數(shù)
wr_sec/s 每秒寫入的扇區(qū)的總數(shù)
avgrq-sz 平均每次次磁盤I/O操作的數(shù)據(jù)大?。ㄉ葏^(qū))
avgqu-sz 磁盤請求隊列的平均長度
await 從請求磁盤操作到系統(tǒng)調(diào)用完成處理,每次請求的平均消耗時間
svctm I/O的服務(wù)處理時間,即不包括請求隊列中的時間
%util I/O請求占用的CPU百分比,值越高,說明I/O越慢
復(fù)制代碼
- 統(tǒng)計socket連接信息:sar -n SOCK 1 1
# sar -n SOCK 1 1
Linux 3.10.0-862.el7.x86_64 (8f57ec39327b) 07/11/2021 _x86_64_ (6 CPU)
07:09:18 PM totsck tcpsck udpsck rawsck ip-frag tcp-tw
07:09:19 PM 10910 261 0 0 0 562
Average: 10910 261 0 0 0 562
------各項指標(biāo)解析--------------------
totsck 當(dāng)前被使用的socket總數(shù)
tcpsck 當(dāng)前正在被使用的TCP的socket總數(shù)
udpsck 當(dāng)前正在被使用的UDP的socket總數(shù)
rawsck 當(dāng)前正在被使用于RAW的skcket總數(shù)
if-frag 當(dāng)前的IP分片的數(shù)目
tcp-tw TCP套接字中處于TIME-WAIT狀態(tài)的連接數(shù)量
復(fù)制代碼
- TCP連接的統(tǒng)計:sar -n TCP
# sar -n TCP 1 1
Linux 3.10.0-862.el7.x86_64 (8f57ec39327b) 07/11/2021 _x86_64_ (6 CPU)
07:09:39 PM active/s passive/s iseg/s oseg/s
07:09:40 PM 1.00 0.00 5.00 7.00
Average: 1.00 0.00 5.00 7.00
------各項指標(biāo)解析--------------------
active/s 新的主動連接
passive/s 新的被動連接
iseg/s 接受的段
oseg/s 輸出的段
復(fù)制代碼
pidstat
- pidstat是sysstat工具的一個命令,用于監(jiān)控全部或指定進(jìn)程的cpu、內(nèi)存、線程、設(shè)備IO等系統(tǒng)資源的占用情況。命令格式:pidstat [options] [delay [count]]
options 參數(shù)解析
-u 默認(rèn)的參數(shù),顯示各個進(jìn)程的cpu使用統(tǒng)計
-r 顯示各個進(jìn)程的內(nèi)存使用統(tǒng)計
-d 顯示各個進(jìn)程的IO使用情況
-p <pid> 指定進(jìn)程號
-w 顯示每個進(jìn)程的上下文切換情況
-t 顯示選擇進(jìn)程的線程的統(tǒng)計信息
復(fù)制代碼
- 查看所有進(jìn)程的 CPU 使用情況:pidstat -u
# pidstat -u
Linux 4.4.73-5-default (ceshi44) 2021年07月08日 _x86_64_ (40 CPU)
14時11分56秒 UID PID %usr %system %guest %CPU CPU Command
14時11分56秒 0 1 0.15 0.06 0.00 0.22 22 systemd
....
------各項指標(biāo)解析----------------------------------------
UID 進(jìn)程所屬UID
PID 進(jìn)程ID
%usr 進(jìn)程在用戶空間占用cpu的百分比
%system 進(jìn)程在內(nèi)核空間占用cpu的百分比
%guest 進(jìn)程在虛擬機(jī)占用cpu的百分比
%CPU 進(jìn)程占用cpu的百分比
CPU 處理進(jìn)程的cpu編號
Command 當(dāng)前進(jìn)程對應(yīng)的命令
復(fù)制代碼
- 內(nèi)存使用情況統(tǒng)計:pidstat -r
# pidstat -r
Linux 4.4.73-5-default (ceshi44) 2021年07月08日 _x86_64_ (40 CPU)
14時13分08秒 UID PID minflt/s majflt/s VSZ RSS %MEM Command
14時13分08秒 0 1 41.04 0.00 186020 5968 0.00 systemd
14時13分08秒 0 443 0.00 0.00 5828 3004 0.00 pidstat
....
------各項指標(biāo)解析----------------------------------------
PID 進(jìn)程標(biāo)識符
Minflt/s 任務(wù)每秒發(fā)生的次要錯誤,不需要從磁盤中加載頁
Majflt/s 任務(wù)每秒發(fā)生的主要錯誤,需要從磁盤中加載頁
VSZ 虛擬地址大小,虛擬內(nèi)存的使用KB
RSS 常駐集合大小,非交換區(qū)五里內(nèi)存使用KB
Command task命令名
復(fù)制代碼
- 顯示各個進(jìn)程的IO使用情況:pidstat -d
# pidstat -d
Linux 3.10.0-862.el7.x86_64 (8f57ec39327b) 07/11/2021 _x86_64_ (6 CPU)
06:42:35 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
06:42:35 PM 0 1 0.05 0.00 0.00 java
06:42:35 PM 0 102 0.04 0.05 0.00 bash
------各項指標(biāo)解析---------------------------
kB_rd/s 每秒從磁盤讀取的KB
kB_wr/s 每秒寫入磁盤KB
kB_ccwr/s 任務(wù)取消的寫入磁盤的KB。當(dāng)任務(wù)截斷臟的pagecache的時候會發(fā)生
Command 進(jìn)程執(zhí)行命令
復(fù)制代碼
- 顯示每個進(jìn)程的上下文切換情況:pidstat -w
# pidstat -w
Linux 3.10.0-862.el7.x86_64 (8f57ec39327b) 07/11/2021 _x86_64_ (6 CPU)
06:43:23 PM UID PID cswch/s nvcswch/s Command
06:43:23 PM 0 1 0.00 0.00 java
06:43:23 PM 0 102 0.00 0.00 bash
06:43:23 PM 0 150 0.00 0.00 pidstat
------各項指標(biāo)解析---------------------------
PID 進(jìn)程id
Cswch/s 每秒主動任務(wù)上下文切換數(shù)量
Nvcswch/s 每秒被動任務(wù)上下文切換數(shù)量
Command 進(jìn)程執(zhí)行命令
復(fù)制代碼
- 指定進(jìn)程并( -t)顯示進(jìn)程的線程統(tǒng)計信息:pidstat -t -p 1211
# pidstat -t -p 1211
06:44:37 PM UID TGID TID %usr %system %guest %CPU CPU Command
06:44:37 PM 0 1 - 0.00 0.00 0.00 0.00 3 java
06:44:37 PM 0 - 1 0.00 0.00 0.00 0.00 3 |__java
06:44:37 PM 0 - 6 0.00 0.00 0.00 0.00 5 |__java
06:44:37 PM 0 - 7 0.00 0.00 0.00 0.00 4 |__java
...
------各項指標(biāo)解析---------------------------
TGID 主線程的表示
TID 線程id
%usr 進(jìn)程在用戶空間占用cpu的百分比
%system 進(jìn)程在內(nèi)核空間占用cpu的百分比
%guest 進(jìn)程在虛擬機(jī)占用cpu的百分比
%CPU 進(jìn)程占用cpu的百分比
CPU 處理進(jìn)程的cpu編號
Command 當(dāng)前進(jìn)程對應(yīng)的命令
復(fù)制代碼
pstree
- ps 命令可以顯示當(dāng)前正在運(yùn)行的那些進(jìn)程的信息,但是對于它們之間的關(guān)系卻顯示得不夠清晰,pstree 命令可以以樹狀圖顯示進(jìn)程間的關(guān)系。命令格式:pstree [-p] <pid>
# pstree -p 3169
mongod(3169)─┬─{mongod}(3170)
├─{mongod}(3173)
├─{mongod}(3174)
├─{mongod}(3175)
├─{mongod}(3177)
├─{mongod}(3178)
├─{mongod}(3179)
├─{mongod}(3180)
復(fù)制代碼
strace
- strace 可以跟蹤到一個進(jìn)程產(chǎn)生的系統(tǒng)調(diào)用,包括參數(shù),返回值,執(zhí)行消耗的時間命令格式:strace [options] [command]。如果指定進(jìn)程pid,要去掉 command
options 簡單常用的參數(shù)解析
-c 統(tǒng)計每一系統(tǒng)調(diào)用的所執(zhí)行的時間,次數(shù)和出錯的次數(shù)等
-t 在輸出中的每一行前加上時間信息
-tt 在輸出中的每一行前加上時間信息,微秒級
-ttt 微秒級輸出,以秒了表示時間
-T 顯示每一調(diào)用所耗的時間
-e trace= 只跟蹤指定的系統(tǒng) 調(diào)用.例如:-e trace=open,close,rean,write表示只跟蹤這四個系統(tǒng)調(diào)用,默認(rèn)是 all
-e trace=file 只跟蹤有關(guān)文件操作的系統(tǒng)調(diào)用
-e trace=process 只跟蹤有關(guān)進(jìn)程控制的系統(tǒng)調(diào)用
-e trace=network 跟蹤與網(wǎng)絡(luò)有關(guān)的所有系統(tǒng)調(diào)用
-e trace=ipc 跟蹤所有與進(jìn)程通訊有關(guān)的系統(tǒng)調(diào)用
-o filename 將strace的輸出寫入文件filename
-p pid 跟蹤指定的進(jìn)程pid
復(fù)制代碼
- strace 示例
# strace ls
# strace cat /dev/null
# strace -o ou -T -tt -e trace=all -p 28979
復(fù)制代碼
- 每一行都是一條系統(tǒng)調(diào)用,等號左邊是系統(tǒng)調(diào)用的函數(shù)名及其參數(shù),右邊是該調(diào)用的返回值
pmap
- pmap 提供了進(jìn)程的內(nèi)存映射,pmap命令用于顯示一個或多個進(jìn)程的內(nèi)存狀態(tài)。其報告進(jìn)程的地址空間和內(nèi)存狀態(tài)信息
- pmap [options] PID
options 參數(shù)解析
-x extended顯示擴(kuò)展格式
-d device顯示設(shè)備格式
復(fù)制代碼
# pmap -dx 1
Address Kbytes Mode Offset Device Mapping
00110000 1480K r-x- 0000000000000000 008:00005 /usr/lib
00282000 80K rw-- 0000000000015000 008:00005 /usr/lib
00296000 12K rw-- 0000000000015000 008:00005 [ anon ]
.....
------各項指標(biāo)解析----------------------------------------
Address: 內(nèi)存開始地址
Kbytes: 占用內(nèi)存的字節(jié)數(shù)(KB)
RSS: 保留內(nèi)存的字節(jié)數(shù)(KB)
Dirty: 臟頁的字節(jié)數(shù)(包括共享和私有的)(KB)
Mode: 內(nèi)存的權(quán)限:read、write、execute、shared、private (寫時復(fù)制)
Mapping: 占用內(nèi)存的文件、或[anon](分配的內(nèi)存)、或[stack](堆棧)
Offset: 文件偏移
Device: 設(shè)備名 (major:minor)
復(fù)制代碼
watch
- watch 可以幫助實現(xiàn)定時輸出的命令結(jié)果,比如 netstat 沒有間隔輸出結(jié)果的功能。watch [-options] <command>
options 常用參數(shù)選項
-n <num> watch 默認(rèn)每2秒運(yùn)行一下程序,可以用 -n 來指定間隔的時間
-d watch 會高亮顯示變化的區(qū)域
切換終端: Ctrl+x 退出watch:Ctrl+g
復(fù)制代碼
- watch 示例
# watch -n 1 -d netstat -ant
# watch uptime
復(fù)制代碼
6 網(wǎng)絡(luò)數(shù)據(jù)抓取
tcpdump
- tcpdump 是一個運(yùn)行在命令行下的抓包工具。它允許用戶攔截和顯示發(fā)送或收到過網(wǎng)絡(luò)連接到該計算機(jī)的TCP/IP和其他數(shù)據(jù)包。tcpdump 適用于大多數(shù)的類Unix系統(tǒng)操作系統(tǒng);tcpdump 命令格式為:
# tcpdump [ -adeflnNOpqStvx ] [ -c 數(shù)量 ] [ -F 文件名 ]
[ -i 網(wǎng)絡(luò)接口 ] [ -r 文件名] [ -s len ]
[ -T 類型 ] [ -w 文件名 ] [ 表達(dá)式 ]
選項參數(shù)
-a 將網(wǎng)絡(luò)地址和廣播地址轉(zhuǎn)變成名字
-d 將匹配信息包的代碼以人們能夠理解的匯編格式給出
-dd 將匹配信息包的代碼以c語言程序段的格式給出
-ddd 將匹配信息包的代碼以十進(jìn)制的形式給出
-e 在輸出行打印出數(shù)據(jù)鏈路層的頭部信息,包括源mac和目的mac,以及網(wǎng)絡(luò)層的協(xié)議
-f 將外部的Internet地址以數(shù)字的形式打印出來
-l 使標(biāo)準(zhǔn)輸出變?yōu)榫彌_行形式
-n 指定將每個監(jiān)聽到數(shù)據(jù)包中的域名轉(zhuǎn)換成IP地址后顯示,不把網(wǎng)絡(luò)地址轉(zhuǎn)換成名字
-nn: 指定將每個監(jiān)聽到的數(shù)據(jù)包中的域名轉(zhuǎn)換成IP、端口從應(yīng)用名稱轉(zhuǎn)換成端口號后顯示
-t 在輸出的每一行不打印時間戳
-v 輸出一個稍微詳細(xì)的信息,例如在ip包中可以包括ttl和服務(wù)類型的信息
-vv 輸出詳細(xì)的報文信息
-c 在收到指定的包的數(shù)目后,tcpdump就會停止
-F 從指定的文件中讀取表達(dá)式,忽略其它的表達(dá)式
-i 指定監(jiān)聽的網(wǎng)絡(luò)接口
-p: 將網(wǎng)卡設(shè)置為非混雜模式,不能與host或broadcast一起使用
-r 從指定的文件中讀取包(這些包一般通過-w選項產(chǎn)生)
-w 直接將包寫入文件中,并不分析和打印出來
-s len len 表示從一個包中截取的字節(jié)數(shù)。0表示包不截斷,抓完整的數(shù)據(jù)包。默認(rèn)的話 tcpdump 只顯示部分?jǐn)?shù)據(jù)包,默認(rèn)68字節(jié)
-T 將監(jiān)聽到的包直接解釋為指定的類型的報文,常見的類型有rpc (遠(yuǎn)程過程調(diào)用)和snmp(簡單網(wǎng)絡(luò)管理協(xié)議)
-X 告訴tcpdump命令,需要把協(xié)議頭和包內(nèi)容都原原本本的顯示出來(tcpdump會以16進(jìn)制和ASCII的形式顯示),這在進(jìn)行協(xié)議分析時是絕對的利器。
復(fù)制代碼
- 表達(dá)式選項 大體可以分成三種過濾條件,“類型”、“方向”和“協(xié)議”,這三種條件的搭配組合就構(gòu)成了我們的過濾表達(dá)式 類型關(guān)鍵字:主要包括host,net,port, 例如 host 210.45.114.211,指定主機(jī) 210.45.114.211,net 210.11.0.0 指明210.11.0.0是一個網(wǎng)絡(luò)地址,port 21 指明端口號是21 傳輸方向的關(guān)鍵字:主要包括src , dst ,dst or src, dst and src ,這些關(guān)鍵字指明了傳輸?shù)姆较颉Ee例說明,src 210.45.114.211 ,指明ip包中源地址是210.45.114.211, dst net 210.11.0.0 指明目的網(wǎng)絡(luò)地址是210.11.0.0 協(xié)議的關(guān)鍵字:主要包括 ether,ip,ip6,arp,rarp,tcp,udp等類型,及這幾個的包的協(xié)議內(nèi)容。如果沒有指定任何協(xié)議,則tcpdump將會監(jiān)聽所有協(xié)議的(更具體的請自行查看官方文檔)
第一行:“tcpdump: verbose output suppressed, use -v or -vv for fullprotocol decode”;
提示使用選項 -v 和 -vv,可以看到更全的輸出內(nèi)容
第二行“l(fā)istening on eth0, link-type EN10MB (Ethernet), capture size 65535bytes”;
我們監(jiān)聽的是通過 eth0 這個NIC設(shè)備的網(wǎng)絡(luò)包,且它的鏈路層是基于以太網(wǎng)的,要抓的包大小限制是65535字節(jié)。包大小限制值可以通過-s選項來設(shè)置
第三行”12:40:33.569037 00:19:e0:b5:10:94 > 00:1a:a0:31:39:d4, ethertypeIPv4 (0x0800),”
12:40:33.569037 分別對應(yīng)著這個包被抓到的“時”、“分”、“秒”、“微妙”。 00:19:e0:b5:10:94 > 00:1a:a0:31:39:d4 表示MAC地址 00:19:e0:b5:10:94 發(fā)送到MAC地址為 00:1a:a0:31:39:d4 的主機(jī),ethertype IPv4 (0x0800)表示Ethernet幀的協(xié)議類型為ipv4(即代碼為0x0800)
第四行”length 66: 210.45.123.249.27236 > 172.16.0.11.1111: Flags [S],seq 1624463808;
length 66表示以太幀長度為66。 210.45.123.249.27236 表示這個包的源IP為210.45.123.249,源端口為27236,’>’表示數(shù)據(jù)包的傳輸方向, 172.16.0.11.1111, 表示這個數(shù)據(jù)包的目的端ip為172.16.0.11,目標(biāo)端口為1111,1111端口是我的一個web服務(wù)器監(jiān)聽端口。Flags是[S],表明是syn建立連接包(即三次握手的第一次握手),seq1624463808 序號為1624463808,這個其實就是TCP三次握手的第一次握手:clien)發(fā)送syn請求建立連接包
第五行” win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0”
win 8192 表示窗口大小為8192字節(jié)。options[mss 1460,nop,wscale 2,nop,nop,sackOK]為tcp首部可選字段mss 1460表示mss是發(fā)送端(客戶端)通告的最大報文段長度,發(fā)送端將不接收超過這個長度的TCP報文段(這個值和MTU有一定關(guān)系)。nop是一個空操作選項, wscale指出發(fā)送端使用的窗口擴(kuò)大因子為2, sackOK 表示發(fā)送端支持并同意使用SACK選
- tcpdump 示例
~~ 只查目標(biāo)機(jī)器端口是21或80的網(wǎng)絡(luò)包,其他端口不關(guān)注
# tcpdump -i eth0 -c 10 'dst port 21 or dst port 80'
~~ 想獲取172.16.10.11 和 google.com之間建立TCP三次握手中帶有SYN標(biāo)記位的網(wǎng)絡(luò)包.
# tcpdump -i eth0 'host 172.16.0.11 and host google.com and tcp[13]&2!=0' -c 3 -nn
復(fù)制代碼
- 最后一命令的 tcp[13]&2!=0 可能有點怪,這里解析一下,標(biāo)志位(URG,ACK,PSH,RST,SYN,FIN)在 tcp頭部的第 13 個字節(jié)中,而 SYN 則在低第二位(xxxxxx10,十進(jìn)制是2),和2進(jìn)行與操作,即可判斷報文是否 syn 報文
nc
- nc 命令實現(xiàn)任意TCP/UDP端口的偵聽,nc可以作為 server 以TCP或UDP方式偵聽指定端口。nc 也可以作為 client 發(fā)起TCP或UDP連接
options 常用參數(shù)
-l 用于指定nc將處于偵聽模式。指定該參數(shù),則意味著nc被當(dāng)作server,偵聽并接受連接,而非向其它地址發(fā)起連接。
-s 指定發(fā)送數(shù)據(jù)的源IP地址,適用于多網(wǎng)卡機(jī)
-u 指定nc使用UDP協(xié)議,默認(rèn)為TCP
-v 輸出交互或出錯信息,新手調(diào)試時尤為有用
-w 超時秒數(shù),后面跟數(shù)字
-z 使用 Zero-I/O mode,只在掃描通信端口時使用
復(fù)制代碼
- nc 示例
~~ 端口掃描
# nc -v -w 2 192.168.2.34 -z 21-24
nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused
Connection to 192.168.2.34 22 port [tcp/ssh] succeeded!
~~ 簡單聊天工具 在 192.168.2.34 服務(wù)端監(jiān)聽 1211
# nc -l 1211
~~ 在 192.168.2.33 上 連接 34 的 1211端口
# nc 192.168.2.34 1211
復(fù)制代碼
curl
- curl 是一款很強(qiáng)大的 http 命令行工具。它支持文件的上傳和下載。命令格式:curl [option] [url]
option 常用參數(shù)
-A/--user-agent <string> 設(shè)置用戶代理發(fā)送給服務(wù)器
-b <name=string/file> cookie字符串或文件讀取位置
-c <file> 操作結(jié)束后把cookie寫入到這個文件中
-C <offset> 斷點續(xù)轉(zhuǎn)
-D <file> 把header信息寫入到該文件中
-e 來源網(wǎng)址(偽造referer)
-o 把輸出寫到該文件中
-O 把輸出寫到該文件中,保留遠(yuǎn)程文件的文件名
-r <range> 分塊下載來自HTTP或FTP服務(wù)器 range字節(jié)
-T <file> 上傳文件
-u <user[:password]> 設(shè)置服務(wù)器的用戶和密碼
-L 參數(shù)會讓 HTTP 請求跟隨服務(wù)器的重定向。curl 默認(rèn)不重定向
-x <host:port> 在給定的端口上使用HTTP代理
-# 進(jìn)度條顯示當(dāng)前的傳送狀態(tài)
-X 指定 HTTP 請求的方法
-d POST方式傳送數(shù)據(jù)(默認(rèn)是application/x-www-form-urlencoded)
-H/--header <line> 自定義頭信息傳遞給服務(wù)器
復(fù)制代碼
- curl 示例
~~ 顯示下載進(jìn)度條
# curl -# -O
~~ 上傳文件
# curl -T lwl.jpg -u 用戶名:密碼
~~ 發(fā)出 POST 請求
# curl -X POST
~~ da 是json 數(shù)據(jù)
# curl localhost:3000/api/json -X POST -d @da --header "Content-Type: application/json"
復(fù)制代碼
wget
- wget 是一個下載文件的工具,對于Linux用戶是必不可少的工具,因為我們經(jīng)常要下載一些軟件或從遠(yuǎn)程服務(wù)器恢復(fù)備份到本地服務(wù)器。wget支持HTTP,HTTPS和FTP協(xié)議。命令格式:wget [-options] [url]
options 常用參數(shù)解析
-O <fileName> 把文檔寫到FILE文件中
-c (斷點續(xù)傳)接著下載沒下載完的文件
-P filePath 將文件保存到 filePath 目錄
-b 后臺下載
TP 選項:
--ftp-user=USER 設(shè)置 ftp 用戶名為 USER
--ftp-password=PASS 設(shè)置 ftp 密碼為 PASS
復(fù)制代碼
- wget 示例
~~ wget -b 后臺下載
# wget -c -b -O word https://cn.wordpress.org/wordpress-4.9.4-zh_CN.
~~ ftp 下載 c 文件
# wget --ftp-user=baidu --ftp-password=123 ftp://192.168.19.1/lwl/c
復(fù)制代碼
7 shell 腳本命令
shell 程序語法
- 要想寫shell 腳本,則需要熟悉下 shell 程序基本語法
- 之前寫的一篇文章:shell教程及腳本編寫
sed
- 如果涉及到文本處理,可試試 sed,sed 采用的是流編輯模式,在 sed 處理數(shù)據(jù)之前,需要預(yù)先提供一組規(guī)則,sed 會按照此規(guī)則來編輯數(shù)據(jù)
- 之前寫的一篇文章:sed教程-linux命令
awk
- awk 同樣適合處理文本,且更強(qiáng)大; 和 sed 命令類似,awk 命令也是逐行掃描文件,尋找含有目標(biāo)文本的行,如果匹配成功,則會在該行上執(zhí)行用戶想要的操作;反之,則不對行做任何處理
- 之前寫的一篇文章:awk教程-linux命令
xargs
- xargs 是一個強(qiáng)有力的命令,在 linux 命令管道傳遞中,它能夠捕獲上一個命令的輸出,然后傳遞給另外一個命令。xargs 默認(rèn)的命令是 echo,這意味著通過管道傳遞給 xargs 的輸入將會包含換行和空白,不過通過 xargs 的處理,換行和空白將被空格取代
- 命令格式:command |xargs [-options] nextCommand
options 參數(shù)解釋
-e flag 或 -E flag flag必須是一個以空格分隔的標(biāo)志,當(dāng)xargs分析到含有flag這個標(biāo)志的時候就停止
-r no-run-if-empty 當(dāng)xargs的輸入為空的時候則停止xargs,不再去執(zhí)行
-t 表示先打印命令,然后再執(zhí)行
-p 每執(zhí)行一次xargs 后面跟隨的 nextCommand 時,詢問一次用戶
-n num 將輸出數(shù)據(jù)用"空格"分割成多個參數(shù),再按n個一組分批作為 nextCommand 執(zhí)行時的參數(shù)
-L num 或 -l num 從標(biāo)準(zhǔn)輸入一次讀取 num 行送給 nextCommand 命令執(zhí)行
-i 或 -I 將一行一行賦值給占位符 {},在接下來的command里用 {} 替換數(shù)據(jù)
-s num 命令行的最大字符數(shù),指的是 xargs 后面那個命令的最大命令行字符數(shù)
-d delim 指定分隔符,默認(rèn)的xargs分隔符是回車(換行鍵),這里修改的是xargs的分隔符
復(fù)制代碼
- xargs 示例
~~ 復(fù)制所有圖片文件到 /data/images 目錄下
# ls *.jpg | xargs -n1 -I {} cp {} /data/images
~~ 查找所有的 jpg 文件,并且壓縮它們
# find . -type f -name "*.jpg" -print | xargs tar -czvf images.
復(fù)制代碼
8 jvm 常用命令
jps
- java 版的 ps 命令,查看java進(jìn)程及其相關(guān)的信息,如果想找到一個 java 進(jìn)程的 pid,那可以用 jps 命令替代linux中的 ps 命令了,命令格式: jps [-options] [hostIP]。如果要查看其他 hostIP 機(jī)器上的jvm進(jìn)程,需要在待查看機(jī)器上啟動 jstatd
options 參數(shù)解釋
-l : 輸出主類全名或jar路徑
-q : 只輸出LVMID
-m : 輸出JVM啟動時傳遞給main()的參數(shù)
-v : 輸出JVM啟動時顯示指定的JVM參數(shù)
復(fù)制代碼
- jps 示例
# jps -lmv
18884 /opt/app/spring-boo --
39812 /opt/app/spring-boo --
復(fù)制代碼
jinfo
- jinfo 是用來查看JVM參數(shù)和動態(tài)修改部分JVM參數(shù)的命令;命令格式:jinfo [-option] <pid>
options 參數(shù)解釋
-flag <name> 打印指定名稱的參數(shù)
-flag [+|-]<name> 打開或關(guān)閉參數(shù)
-flag <name>=<value> 設(shè)置參數(shù)
-flags 打印所有參數(shù)
-sysprops 打印系統(tǒng)配置
默認(rèn)是 flags 和 sysprops
復(fù)制代碼
- jinfo 示例
# jinfo -flags 19092
Attaching to process ID 19092, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.181-b13
Non-default VM flags: -XX:-BytecodeVerificationLocal -XX:-BytecodeVerificationRemote -XX:CICompilerCount=4 -XX:InitialHeapSize=266338304 -XX:+ManagementServer -XX:Max
HeapSize=4229955584 -XX:MaxNewSize=1409810432 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=88604672 -XX:OldSize=177733632 -XX:TieredStopAtLevel=1 -XX:+UseCompressedClassP ointers -XX:+UseCompressedOops
.....
復(fù)制代碼
jstat
- jstat 命令是使用頻率比較高的命令,主要用來查看JVM運(yùn)行時的狀態(tài)信息,包括內(nèi)存狀態(tài)、垃圾回收等;命令格式:jstat [-option] pid [interval] [count],pid 是進(jìn)程id,interval 是打印間隔時間(毫秒),count是打印次數(shù)(默認(rèn)一直打?。?/li>
option 參數(shù)解釋
-class : class loader的行為統(tǒng)計
-compiler : HotSpt JIT編譯器行為統(tǒng)計
-gc : 垃圾回收堆的行為統(tǒng)計
-gccapacity : 各個垃圾回收代容量(young,old,perm)和他們相應(yīng)的空間統(tǒng)計
-gcutil : 垃圾回收統(tǒng)計概述
-gccause : 垃圾收集統(tǒng)計概述(同-gcutil),附加最近兩次垃圾回收事件的原因
-gcnew : 新生代行為統(tǒng)計
-gcnewcapacity : 新生代與其相應(yīng)的內(nèi)存空間的統(tǒng)計
-gcold : 年老代和永生代行為統(tǒng)計
-gcoldcapacity : 年老代行為統(tǒng)計
-gcpermcapacity : 永生代行為統(tǒng)計
-printcompilation : HotSpot編譯方法統(tǒng)計
復(fù)制代碼
- jstat 示例
# jstat -gcutil 18884
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 84.14 19.93 45.77 91.32 87.65 641 18.311 6 3.512 21.824
------各項指標(biāo)解析----------------------------------------
S0 第 0 個 survivor(幸存區(qū))使用的百分比
S1 第 1 個 survivor(幸存區(qū))使用的百分比
E Eden 區(qū)使用內(nèi)存的百分比
O 老生代內(nèi)存使用的百分比
P/M PermGen/MetaSpace 的內(nèi)存使用百分比
YGC 程序啟動以來 Young GC 發(fā)生的次數(shù)
YGCT 程序啟動以來 Young GC 共消耗的時間(s)
FGC 程序啟動以來 Full GC 發(fā)生的次數(shù)
FGCT 程序啟動以來 Full GC 共消耗的時間(s)
GCT 程序啟動以來 GC 的總用時(s)
復(fù)制代碼
jstack
- jstack 是用來查看 jvm 線程快照的命令,線程快照是當(dāng)前JVM線程正在執(zhí)行的方法堆棧集合。使用 jstack 命令可以定位線程出現(xiàn)長時間卡頓的原因,例如死鎖,死循環(huán)等。jstack 還可以查看程序崩潰時生成的 core 文件中的 stack 信息;命令格式:jstack [-Flm] <pid>
option 參數(shù)解釋
-F 當(dāng)使用jstack <pid>無響應(yīng)時,強(qiáng)制輸出線程堆棧
-m 同時輸出java和本地堆棧(混合模式)
-l 額外顯示鎖信息 (小寫l)
復(fù)制代碼
- jstack 示例,查看 pid = 1211 的線程棧
# jstack -l 1211
"DiscoveryClient-CacheRefreshExecutor-0" #146 daemon prio=5 os_prio=0 tid=0x000000002ba2c000 nid
=0x4fe4 waiting on condition [0x000000002cade000]
java.lang.T: WAITING (parking)
at (Native Method)
- parking to wait for <0x00000006c775dc60> (a java.u$Tra
nsferStack)
......
復(fù)制代碼
jmap
- jmap 是用來生成堆dump文件 或 查看堆相關(guān)的各類信息的命令,例如查看 finalize 執(zhí)行隊列,heap 的詳細(xì)信息和使用情況;命令格式:jmap [-option] <pid>
option 參數(shù)解釋
-heap 打印java heap摘要
-histo[:live] 打印堆中的java對象統(tǒng)計信息
-clstats 打印類加載器統(tǒng)計信息
-finalizerinfo 打印在f-queue中等待執(zhí)行finalizer方法的對象
-dump:<dump-options> 生成java堆的dump文件
dump-options:
live 只轉(zhuǎn)儲存活的對象,如果沒有指定則轉(zhuǎn)儲所有對象
format=b 二進(jìn)制格式
file=<file> 轉(zhuǎn)儲文件到 <file>
-F 如果jvm掛起,可用-F強(qiáng)制執(zhí)行選項,會影響java 服務(wù)
復(fù)制代碼
- jmap 示例,dump 出 pid=1211 java進(jìn)程的內(nèi)存堆文件
# jmap -dump:live,format=b,file=dump.hprof 1211
Dumping heap to /home/lwl ...
Heap dump file created
復(fù)制代碼
歡迎指正文中錯誤
1.《關(guān)于0x00000006我想說強(qiáng)制性Linux命令百科全書的開發(fā)-不損失穩(wěn)定的利潤?!吩曰ヂ?lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《關(guān)于0x00000006我想說強(qiáng)制性Linux命令百科全書的開發(fā)-不損失穩(wěn)定的利潤?!穬H供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/keji/1956721.html