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.mzph.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…