Linux 命令積累 fuser lsof mtr

?fuser 用途:使用文件或文件結構識別進程,即:查詢都有哪些進程占用了制定的文件、目錄、設備或套接字;

lsof?

MTR

fuser命令?

用途:使用文件或文件結構識別進程,即:查詢都有哪些進程占用了制定的文件、目錄、設備或套接字;
語法:
fuser [-c|-d|-f] [-k] [-u] [-x] [-V] 文件/目錄/套接字/設備 ...
說明:fuser命令列出了本地進程的進程號,那些本地進程使用File參數指定的本地或遠程文件.對于阻塞特別設備,此命令列出了使用該設備上任何文件的進程.
每個進程號后面都跟隨一個字母,該字母指示進程如何使用文件.

c 將此文件作為當前目錄使用.
e 將此文件作為程序的可執行對象使用.
r 將此文件作為根目錄使用.
s 將此文件作為共享庫(或其它可裝載對象)使用.

進程號被寫入標準輸出(在進程號之間有空格的行中).一個換行符被寫入標準錯誤(在每個文件操作數的最后一個輸出之后).其他所有輸出被寫入標準錯誤.
fuser命令不會檢測有mmap區域的進程,其中相關的文件描述符已從此被關閉.

標記:
-c 包含 File的文件系統中關于任何打開的文件的報告.
-d 暗示使用了 -c 和 -x 標志.關于任何與文件系統(自父目錄刪除的)無鏈接的打開文件的報告.當與 -V 標志一起使用時,它也會報告被刪除文件的節點號和大小.
-f 僅對文件的打開實例報告.
-k 將 SIGKILL 信號發送到每個本地進程.僅有根用戶能終止另一用戶的進程.
-u 為進程號后圓括號中的本地進程提供登錄名.
-V 提供詳細輸出.
-x 與 -c 或 -f 連用,報告除標準fuse 輸出以外的可執行的和可載入的對象.

示例:
若要列出使用 /etc/passwd 文件的本地進程的進程號,請輸入:
fuser -u /etc/passwd

要列出使用 /etc/filesystems 文件的進程的進程號和用戶登錄名,請輸入:
fuser -u /etc/filesystems

要終止全部使用給定的文件系統的進程,請輸入:
fuser -k -x -u /dev/hd1 -OR-
fuser -kxuc /home
任一命令都列出了進程號和用戶名,然后終止每個正在使用/dev/hd1(/home)文件系統的進程.僅有根用戶能終止屬于另一用戶的進程.如果你正在試圖卸下/dev/hd1文件系統,而一個正在訪問/dev/hd1文件系統的進程不允許這樣,您可能希望使用此命令.

要列出正在使用文件(已從給定文件系統刪除的文件)的全部進程,請輸入:
fuser -d /usr 文件

/dev/kmem 用于系統映象.
/dev/mem 也用于系統映象.

如何使用lsof?

這篇文章中我會盡力列舉我能想到的所有lsof的用法,讓我們先從最簡單的開始(或許你已經知道了),然后逐漸增加復雜度:

  • 列出所有打開的文件

# lsof

不帶任何參數運行lsof會列出所有進程打開的所有文件。

  • 找出誰在使用某個文件

# lsof /path/to/file

只需要執行文件的路徑,lsof就會列出所有使用這個文件的進程,你也可以列出多個文件,lsof會列出所有使用這些文件的進程。

你也可以一次制定多個文件:

# lsof /path/to/file1 /path/to/file2

  • 遞歸查找某個目錄中所有打開的文件

# lsof +D /usr/lib

加上+D參數,lsof會對指定目錄進行遞歸查找,注意這個參數要比grep版本慢:

# lsof | grep ‘/usr/lib’

之所以慢是因為+D首先查找所有的文件,然后一次性輸出。

  • 列出某個用戶打開的所有文件

# lsof -u pkrumins

-u選項限定只列出所有被用戶pkrumins打開的文件,你可以通過逗號指定多個用戶:

# lsof -u rms,root

這條命令會列出所有rms和root用戶打開的文件。

你也可以像下面這樣使用多個-u做同樣的事情:

# lsof -u rms -u root

  • 查找某個程序打開的所有文件

# lsof -c apache

-c選項限定只列出以apache開頭的進程打開的文件:

所以你可以不用像下面這樣寫:

# lsof | grep foo

而使用下面這個更簡短的版本:

# lsof -c foo

事實上,你可以只制定進程名稱的開頭:

# lsof -c apa

這會列出所有以apa開頭的進程打開的文件

你同樣可以制定多個-c參數:

# lsof -c apache -c python

這會列出所有由apache和python打開的文件

  • 列出所有由某個用戶或某個進程打開的文件

# lsof -u pkrumins -c apache

你也可以組合使用多個選項,這些選項默認進行或關聯,也就是說上面的命令會輸入由pkrumins用戶或是apache進程打開的文件。

  • 列出所有由一個用戶與某個進程打開的文件

# lsof -a -u pkrumins -c bash

-a參數可以將多個選項的組合條件由或變為與,上面的命令會顯示所有由pkrumins用戶以及bash進程打開的文件。

  • 列出除root用戶外的所有用戶打開的文件

# lsof -u ^root

注意root前面的^符號,它執行取反操作,因此lsof會列出所有root用戶之外的用戶打開的文件。

  • 列出所有由某個PID對應的進程打開的文件

# lsof -p 1

-p選項讓你可以使用進程id來過濾輸出。

記住你也可以用都好來分離多個pid。

# lsof -p 450,980,333

  • 列出所有進程打開的文件除了某個pid的

# lsof -p ^1

同前面的用戶一樣,你也可以對-p選項使用^來進行取反。

  • 列出所有網絡連接

# lsof -i

lsof的-i選項可以列出所有打開了網絡套接字(TCP和UDP)的進程。

  • 列出所有TCP網絡連接

# lsof -i tcp

也可以為-i選項加上參數,比如tcp,tcp選項會強制lsof只列出打開TCP sockets的進程。

  • 列出所有UDP網絡連接

# lsof -i udp

同樣udp讓lsof只列出使用UDP socket的進程。

  • 找到使用某個端口的進程

# lsof -i :25

:25和-i選項組合可以讓lsof列出占用TCP或UDP的25端口的進程。

你也可以使用/etc/services中制定的端口名稱來代替端口號,比如:

# lsof -i :smtp

找到使用某個udp端口號的進程

# lsof -i udp:53

同樣的,也可以找到使用某個tcp端口的進程:

# lsof -i tcp:80

  • 找到某個用戶的所有網絡連接

# lsof -a -u hacker -i

使用-a將-u和-i選項組合可以讓lsof列出某個用戶的所有網絡行為。

  • 列出所有NFS(網絡文件系統)文件

# lsof -N

這個參數很好記,-N就對應NFS。

  • 列出所有UNIX域Socket文件

# lsof -U

這個選項也很好記,-U就對應UNIX。

  • 列出所有對應某個組id的進程

# lsof -g 1234

進程組用來來邏輯上對進程進行分組,這個例子查找所有PGID為1234的進程打開的文件。

  • 列出所有與某個描述符關聯的文件

# lsof -d 2

這個命令會列出所有以描述符2打開的文件。

你也可以為描述符指定一個范圍:

# lsof -d 0-2

這會列出所有描述符為0,1,2的文件。

-d選項還支持其它很多特殊值,下面的命令列出所有內存映射文件:

# lsof -d mem

txt則列出所有加載在內存中并正在執行的進程:

# lsof -d txt

  • 輸出使用某些資源的進程pid

# lsof -t -i

-t選項輸出進程的PID,你可以將它和-i選項組合輸出使用某個端口的進程的PID,下面的命令將會殺掉所有使用網絡的進程:

# kill -9 `lsof -t -i`

  • 循環列出文件

# lsof -r 1

-r選項讓lsof可以循環列出文件直到被中斷,參數1的意思是每秒鐘重復打印一次,這個選項最好同某個范圍比較小的查詢組合使用,比如用來監測網絡活動:

# lsof -r 1 -u john -i -a

************************************************************************************************************************
MTR命令

[root@10.10.90.97 ~]# mtr -h
usage: mtr [-hvrctglspni46] [--help] [--version] [--report]
[--report-cycles=COUNT] [--curses] [--gtk]
[--raw] [--split] [--no-dns] [--address interface]
[--psize=bytes/-s bytes]
[--interval=SECONDS] HOSTNAME [PACKETSIZE]


mtr -h 提供幫助命令
mtr -v 顯示mtr的版本信息
mtr -r 已報告模式顯示

[root@10.10.90.97 ~]# mtr -r 202.108.33.94
FOCUS9097 Snt: 10 Loss% Last Avg Best Wrst StDev
220.181.61.252 0.0% 6.8 3.3 1.8 7.4 2.2
220.181.17.217 0.0% 0.4 0.5 0.4 0.7 0.1
220.181.16.17 0.0% 0.6 0.5 0.5 0.6 0.0
202.97.53.14 10.0% 0.7 0.7 0.7 0.8 0.0
219.158.35.1 0.0% 0.8 0.8 0.8 0.9 0.0
219.158.5.81 0.0% 1.2 1.3 1.2 1.6 0.1
123.126.0.138 0.0% 1.2 1.1 1.1 1.3 0.1
61.148.153.126 0.0% 1.9 10.5 1.5 89.9 27.9
61.148.143.22 0.0% 1.5 1.6 1.5 1.7 0.0
210.74.178.198 0.0% 1.6 1.6 1.5 1.9 0.1
202.108.33.94 0.0% 1.5 1.5 1.4 1.5 0.0


報告說明:
第一列:顯示的是IP地址和本機域名,這點和tracert很像
第二列:snt:10 設置每秒發送數據包的數量,默認值是10 可以通過參數 -c來指定。

[root@10.10.90.97 ~]# mtr -r -c 15 202.108.33.94
FOCUS9097 Snt: 15 Loss% Last Avg Best Wrst StDev
220.181.61.252 0.0% 1.9 3.4 1.8 12.9 3.1
220.181.17.217 0.0% 0.5 0.5 0.4 0.8 0.1
220.181.16.17 0.0% 0.5 0.6 0.5 2.3 0.5
202.97.53.14 0.0% 0.7 0.7 0.7 0.7 0.0
219.158.35.1 0.0% 0.9 0.8 0.8 0.9 0.0
219.158.5.81 0.0% 1.3 2.8 1.2 22.8 5.5
123.126.0.138 0.0% 1.1 1.1 1.1 1.2 0.0
61.148.153.126 0.0% 13.8 7.4 1.6 60.4 15.5
61.148.143.22 0.0% 1.7 1.6 1.5 1.8 0.1
210.74.178.198 0.0% 1.6 1.6 1.4 1.7 0.1
202.108.33.94 0.0% 1.5 1.5 1.4 1.7 0.1


其中-c的說明是:–report-cycles COUNT

  • 第三列:是顯示的每個對應IP的丟包率
  • 第四列:顯示的最近一次的返回時延
  • 第五列:是平均值 這個應該是發送ping包的平均時延
  • 第六列:是最好或者說時延最短的
  • 第七列:是最差或者說時延最常的
  • 第八列:是標準偏差

接下來接著說相關參數:

  1. mtr -s 用來指定ping數據包的大小
  2. mtr -n no-dns不對IP地址做域名解析
  3. mtr -a 來設置發送數據包的IP地址 這個對一個主機由多個IP地址是有用的
  4. mtr -i 使用這個參數來設置ICMP返回之間的要求默認是1秒
  5. mtr -4 IPv4
  6. mtr -6 IPv6

?

網絡判斷
traceroute www.baidu.com
mtr www.baidu.com
nslookup www.baidu.com

轉載于:https://www.cnblogs.com/samhugh/p/3613044.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/377213.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/377213.shtml
英文地址,請注明出處:http://en.pswp.cn/news/377213.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

線程終止問題

http://topic.csdn.net/u/20080429/09/9cfe5204-20b5-40fb-ac12-afdc1e4939e9.html?590511460 線程終止問題 http://blog.csdn.net/wuyazhe/article/details/1771470 帶有消息機制的線程 - CustomMessageQueue(c#) using System; using System.Collections.Generic; using Sy…

HTH的完整形式是什么?

HTH:希望這個(那個)有幫助 (HTH: Hope This (That) Helps) HTH is an abbreviation of "Hope This (That) Helps". HTH是“希望有幫助”的縮寫 。 It is an expression, which is commonly used in messaging or chatting on social media networking si…

排序算法復習—希爾排序

希爾排序,也稱遞減增量排序算法,是插入排序的一種更高效的改進版本。 希爾排序將整個待排元素序列分割成若干個子序列(由相隔某個“增量”的元素組成的)分別進行直接插入排序,過程中較小的元素,跳躍式的往前…

《MySQL——幻讀與next-key lock與間隙鎖帶來的死鎖》

create table t (id int(11) not null,c int(11) default null,d int(11) default null,primary key (id),key c (c) ) engine InnoDB;insert into t values(0,0,0),(5,5,5),(10,10,10),(15,15,15),(20,20,20),(25,25,25);該表除了主鍵id,還有索引c。 問下面的語句…

css 陰影 效果_CSS陰影效果

css 陰影 效果CSS中的陰影效果 (Shadow Effects in CSS) It is always good to make our web pages stylish and beautiful, web pages that would catch users eyes instantly but one gets confused as to how to style his or her web page. The confusion is quite legit t…

java常見的ClassNotFoundException-----菜鳥學習java

java常見的ClassNotFoundException 1 - java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 添加包common-logging.jar2 - java.lang.ClassNotFoundException: javax.transaction.Synchronization 添加包jta.jar(hiberante)3 - java.lang.ClassNo…

關于easyui的一些小知識點(1)

讓layout布局自動適應瀏覽器寬度只需要加上fit"true"屬性。轉載于:https://www.cnblogs.com/haifg/p/3613789.html

《MySQL——加鎖規則(待補全,有些沒看懂)》

catalog加鎖規則等值查詢間隙鎖非唯一索引等值鎖主鍵索引范圍鎖非唯一索引范圍鎖唯一索引范圍鎖 bug非唯一索引上存在"等值"的例子limit語句加鎖關于死鎖總結 1、查詢過程中訪問到的對象才會加鎖,而加鎖的基本單位是next-key lock(前開后閉&am…

c# 命名空間命名規范_C#中的命名空間

c# 命名空間命名規范C#命名空間 (C# Namespace ) In C# namespaces are used to group similar type of classes. Two classes with same name in different namespaces never conflict to each other. 在C#中,名稱空間用于對相似類型的類進…

PHP環境搭建:Windows 7下安裝配置PHP+Apache+Mysql環境教程

這兩天剛裝好Windows 7,碰巧前段時間有朋友問我Windows下如何安裝搭建PHP環境,所以打算勤勞下,手動一步步搭建PHP環境,暫且不使用PHP環境搭建軟件了,在此詳細圖解在Windows 7下安裝配置PHPApacheMysql環境的教程&#…

《MySQL—— 業務高峰期的性能問題的緊急處理的手段 》

catalog短連接風暴先處理占著連接但是不工作地線程減少連接過程的消耗慢查詢性能問題索引沒有設計好語句沒寫好選錯索引QPS突增問題短連接風暴 正常的短連接: 執行很少sql語句就斷開,下次需要的時候再重連。MySQL建立連接的過程成本很高,包含…

sql 算出下級銷售總和_找出總和字符串

sql 算出下級銷售總和Description: 描述: This is a standard interview problem to check that the given string is a sum string or not using backtracking. 這是一個標準的面試問題,用于檢查給定的字符串是否為總和字符串或不使用回溯。 Problem…

Request 分別獲取具有相同 name 屬性表單元素值

html 中是允許多個具有相同name屬性的元素的&#xff0c;例如 <div> <input name"txtName" id"txtFirstName" type"text" /> <input name"txtName" id"txtMiddleName" type"text" /> <input…

《MySQL——redo log 與 binlog 寫入機制》

目錄binlog寫入機制redo log寫入機制組提交機制實現大量的TPS理解WAL機制如何提升IO性能瓶頸WAL機制告訴我們&#xff1a;只要redo log與binlog保證持久化到磁盤里&#xff0c;就能確保MySQL異常重啟后&#xff0c;數據可以恢復。 下面主要記錄一下MySQL寫入binlog和redo log的…

BBIAB的完整形式是什么?

BBIAB&#xff1a;再回來一點 (BBIAB: Be Back In A Bit) BBIAB is an abbreviation of "Be Back In A Bit". BBIAB是“ Be Back in A Bit”的縮寫 。 It is an expression, which is commonly used in messaging or chatting on social media networking sites lik…

字符串:KMP Eentend-Kmp 自動機 trie圖 trie樹 后綴樹 后綴數組

涉及到字符串的問題&#xff0c;無外乎這樣一些算法和數據結構&#xff1a;自動機 KMP算法 Extend-KMP 后綴樹 后綴數組 trie樹 trie圖及其應用。當然這些都是比較高級的數據結構和算法&#xff0c;而這里面最常用和最熟悉的大概是kmp&#xff0c;即使如此還是有相當一部分人也…

WPF CanExecuteChanged

繼承ICommand ,RelayCommand命令 1 public class RelayCommand : ICommand2 {3 private readonly Action _execute;4 private readonly Func<bool> _canExecute;5 public event EventHandler CanExecuteChanged;6 public RelayComma…

《MySQL——主備一致性六問六答》

目錄備庫為什么要設置為只讀模式&#xff1f;備庫設置為只讀&#xff0c;如何與主庫保持同步更新&#xff1f;A到B的內部流程如何&#xff1f;binlog內容是什么&#xff1f;row格式對于恢復數據有何好處M-M結構的循環復制問題以及解決方案備庫為什么要設置為只讀模式&#xff1…

代碼管理工具

http://blogs.msdn.com/b/visualstudio/archive/2012/06/11/world-of-samples-at-your-fingertips.aspx轉載于:https://www.cnblogs.com/hebeiDGL/archive/2012/09/25/2700961.html

fyi 在郵件里是什么意思_FYI的完整形式是什么?

fyi 在郵件里是什么意思僅供參考&#xff1a;供您參考 (FYI: For Your Information) FYI is an acronym of "For Your Information". It is a widespread internet slang used these days in text messaging, instant messaging, and chatting on Facebook, WhatsApp…