还剩7页未读,继续阅读
文本内容:
Isof命令详解简介lsoflist openfiles是一个列出当前系统打开文件的工具在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件所以如传输控制协议TCP和用户数据报协议UDP套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过Isof工具能够查看这个列表对系统监测以及排错将是很有帮助的输出信息含义在终端下输入即可显示系统打开的文件,因为需要访问核心内存和各种文件,所以必须以Isof Isofroot用户的身份运行它才能够充分地发挥其功能直接输入Isof部分输出为COMMAND PIDUSER FDTYPE DEVICESIZE/OFFNODE NAMEinit1root cwdDIR8,140962/init1rootrtd DIR8,140962/init1roottxt REG8,1150584654127/sbin/initotoudevd415root Ou CHR1,36254/dev/nullotoudevd415rootlu CHR1,36254/dev/nullotoudevd415root2u CHRlz36254/dev/nulludevd690root memREG8,151736302589/lib/x86_64-linux-gnu/libnss__files-
2.
13.so REGsyslogd1246syslog2w8,110187245418/var/log/auth.logsyslogd1246syslog3w REG8,110118245342/var/log/syslog dd1271root OrREG0,304026532038/proc/kmsgotodd1271rootIw FIFO0,15409/run/klogd/kmsgotodd1271root2uCHR1,36254/dev/null每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件输出各列信息的意义如下:Isof进程的名称进程标识符COMMAND PIDUSER进程所有者文件描述符,应用程序通过文件描述符识别该文件如、等文件类型,如FD cwdtxt TYPEDEVICE指定磁盘的名称SIZE、等DIR REGNODE索引节点(文件在磁盘上的标识)NAME打开文件的确切名称列中的文件描述符值表示应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对FD cwd这个目录进行更改,txt类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的/sbin/init程序其次数值表示应用程序的文件描述符,这是打开该文件时返回的一个整数如上的最后一行文件(其文件描述符为表示该文件被打开并处于读取/写入模式,而不是只读@或只写)/dev/initctl,10u w模式同时还有大写的W表示该应用程序具有对整个文件的写锁该文件描述符用于确保每次只能打开一个应用程序实例初始打开每个应用程序时,都具有三个文件描述符,从0到2,分别表示标准输入、输出和错误流所以大多数应用程序所打开的文件的都是从开始FD3与FD列相比,Type列则比较直观文件和目录分别称为REG和DIR而CHR和BLK,分别表示字符和块设备;或者、和分别表示域套接字、先进先出()队列和网际协议()套UNIX FIFOIPv4,UNIX FIFOIP接字常用参数Isof语法格式是Isof[options]filename显不开启文件的进程Isof abc.txt abc.txt显示进程现在打开的文件Isof-c abcabc列出进程号为的进程所打开的文件Isof-c-p12341234显示归属的进程情况Isof-g gidgid显示目录下被进程开启的文件Isof+d/usr/local/同上,但是会搜索目录下的目录,时间较长Isof+D/usr/local/显示使用为的进程Isof-d4fd4用以显示符合条件的进程情况Isof-iIsof-i
[46][protocol][@hostname|hostaddr][:service|port]46--IPv4or IPv6protocol地址--TCP orUDP hostname--Internet hostname hostaddr--IPv4service--中的(可以不止一个)--端口号(可以不止一个)/etc/service servicename port使用实例Isof查找谁在使用文件系统在卸载文件系统时,如果该文件系统中有任何打开的文件,操作通常将会失败那么通过Isof可以找出那些进程在使用当前要卸载的文件系统,如下#Isof/GTES11/COMMAND PIDUSER FDTYPE DEVICESIZE NODENAME bash4208root cwdDIR3,140962/GTES11/vim4230root cwdDIR3,140962/GTES11/在这个示例中,用户正在其目录中进行一些操作一个是实例正在运行,并且它当root/GTES11bash前的目录为另一个则显示的是正在编辑下的文件要成功地卸载应/GTES11,vim/GTES11/GTES11,该在通知用户以确保情况正常之后,中止这些进程这个示例说明了应用程序的当前工作目录非常重要,因为它仍保持着文件资源,并且可以防止文件系统被卸载这就是为什么大部分守护进程(后台进程)将它们的目录更改为根目录、或服务特定的目录(如示例中的)的原因,以sendmail/var/spool/mqueue避免该守护进程阻止卸载不相关的文件系统恢复删除的文件当计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹管理错误也可能导致Linux意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志有时可以通过Isof来恢复这些文件当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点在/proc目录下,其中包含了反映内核和进程树的各种文件/proc目录挂载的是在内存中所映射的一块区域,所以这些文件和目录并不存在于磁盘中,因此当我们对这些文件进行读取和写入时,实际上是在从内存中获取相关信息大多数与相关的信息都存储于以进程的命名的目录中,即Isof PID/proc/1234中包含的是PID为1234的进程的信息每个进程目录中存在着各种文件,它们可以使得应用程序简单地了解进程的内存空间、文件描述符列表、指向磁盘上的文件的符号链接和其他系统信息Isof程序使用该信息和其他关于内核内部状态的信息来产生其输出所以可以显示进程的文件描述符和相关的文件名Isof等信息也就是我们通过访问进程的文件描述符可以找到该文件的相关信息当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过Isof从/proc目录下恢复该文件的内容假如由于误操作将/var/log/messages文件删除掉了,那么这时要将文件恢复的方法如下/var/log/messages首先使用来查看当前是否有进程打开文件,如下Isof/var/logmessages#Isof|grep/var/log/messages()syslogd1283root2w REG3,353810171773647/var/log/messages deleted从上面的信息可以看到()打开文件的文件描述符为同时还可以看到PID1283syslogd2/var/log/messages已经标记被删除了因此我们可以在/proc/1283/fd/2(fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下#head-n10/proc/1283/fd/2Aug413:50:15holmes86syslogd
1.
4.1:restart.Aug413:50:15holmes86kernel:klogd
1.
4.1,log source=/proc/kmsgstarted.Aug413:50:15holmes86kernel:Linux version
2.
6.
22.1-8root@everestbuilder.linux-ren.org gccversion
4.
2.0#1SMP WedJul1811:18:32EDT2007Aug413:50:15holmes86kernel:BIOS-provided physicalRAM map:Aug413:50:15holmes86kernel:BIOS-e820:0000000000000000-000000000009f000usable Aug413:50:15holmes86kernel:BIOS-e820:000000000009f000-OOOOOOOOOOOaOOOOreserved Aug413:50:15holmes86kernel:BIOS-e820:0000000000100000-000000001f7d3800usable Aug413:50:15holmes86kernel:BIOS-e820:000000001f7d3800-0000000020000000reserved Aug413:50:15holmes86kernel:BIOS-e820:OOOOOOOOeOOOOOOO-00000000f0007000reserved Aug413:50:15holmes86kernel:BIOS-e820:00000000f0008000-OOOOOOOOfOOOcOOO reserved从上面的信息可以看出,查看/proc/8663/fd/15就可以得到所要恢复的数据如果可以通过文件描述符查看相应的数据,那么就可以使用I/O重定向将其复制到文件中,如cat/proc/1283/fd/2/var/log/messages对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用实用命令//那个进程在使用的可执行文件Isof whichhttpd apache//那个进程在占用Isof/etc/passwd/etc/passwd//那个进程在占用Isof/dev/hda6hda6//那个进程在占用光驱Isof/dev/cdrom//查看进程的文件使用情况Isof-c sendmailsendmail//显示出那些文件被以打头的进程打开,但是并不属于用户Isof-c courier-u Azahncourier zahn//显示那些文件被为的进程打开Isof-p30297pid30297显示所有在文件夹中打开的和文件的进程但是文件并不在列Isof-D/tmp/tmp instancesymbol//查看是的用户的进程的文件使用情况Isof-U1000uid100//查看用户的进程的文件使用情况Isof-utony tony//杳看不是用户的进程的文件使用情况(人是取反的意思)Isof-uAtony tony//显示所有打开的端口Isof-i//显示所有打开端口的进程Isof-i:8080//显示所有打开的端口和文件Isof-i-U UNIXdomain//显示那些进程打开了至的的Isof-i UDP@[url]www.akadia.com:123U www.akadia.com UDP()端口的链接123ntp//不断查看目前连接的情况(-工,会永远不断Isof-i tcp@ohaha.ks.edu.tw:ftp-r ftpIsof的执行,直到收到中断信号,会一直执行,直到没有档案被显示,缺省是刷新)+r,Isof15s不将工转换为缺省足不力「上一Isof-i tcp@ohaha.ks.edu.tw:ftp-n//Isof-n Phostname,参数n参数解释LSOF全名也就是列举系统中已经被打开的文件我们都知道,环境中,任何事物都是文件,Isof listopened files,linux设备是文件,目录是文件,甚至也是文件所以,用好命令,对日常的管理非常有帮助以sockets Isof linux下的说明,大部分内容来自的文档我所做的只是在中文翻译的基础上,进行简单的分类说明,并Isof manual列举最常用的参数
一、输出说明是最常用的命令之一,通常的输出格式为Isoflinux引用COMMAND PIDUSER FDTYPE DEVICESIZE NODENAME常见包括如下几个字段更多的可见manualo、1COMMAND默认以个字符长度显示的命令名称可使用参数指定显示的宽度,若后跟的参数为零,则显示命令的全9+c+c名、进程的号2PID ID、3PPID父进程的号,默认不显示,当使用参数可打开IP-R、4PGID进程组的编号,默认也不会显示,当使用・参数时可打开ID g、5USER命令的执行或系统中登陆的用户名称默认显示为用户名,当使用参数时,可显示UID-I UID、6FD是文件的或者如下的内容File Descriptornumber,这里很难翻译对应的意思,保留英文引用cwd currentworking directory;Lnn libraryreferences AIX;jld jaildirectory FreeBSD;Itx sharedlibrary text code and data;Mxx hexmemory-mapped typenumberxx.m86DOS Mergemapped file;mem memory-mapped file;mmap memory-mapped device;pd parentdirectory;rtd rootdirectory;tr kerneltrace fileOpenBSD;txt programtextcodeanddata;v86VP/ix mappedfile;文件的显示模式有File Descriptornumber引用r forread access;w forwrite access;u forread and write access;N fora SolarisNFS lock of unknowntype;r forread lock on part of the file;R foraread lock on the entire file;wfora writelock onpart ofthe file;W fora writelockon theentire file;u foro readandwritelockofany length;U fora lockof unknowntype;xforan SCO OpenServer Xenix lockonpartofthefile;X foranSCOOpenServerXenixlockontheentirefile;space ifthere isno lock.、7TYPE引用的包;IPv4IPv4使用格式的包,即使地址是的,也会显示为而映射到的地址;IPv6IPv6IPv4IPv6,IPv6目录DIR链接文件LINK详情请看中更多的注释manual、8DEVICE使用表示的设备号character specialblock special、9SIZE文件的大小,如果不能用大小表示的,会留空使用参数控制-s、10NODE本地文件的码,或者协议,如等node TCP、11NAME挂载点和文件的全路径(链接会被解析为实际路径),或者连接双方的地址和端口、状态等
二、参数、不带额外参数运行1Isof path/filename显示已打开该目录或文件的所有进程信息Isof whichhttpd显示指定命令的信息、参见参数2显示以开头命令的已打开文件的信息-c wwIsof-c sshd显示指定己打开文件的信息-p PIDPIDIsof-p4401依照文件夹来搜寻,但不会打开子目录+d dirdirIsof+d/root打开文件夹以及其子目录搜寻+D dirdirIsof+D/root/以列的信息进行匹配,可使用表示范围,表示某些值-d sFD3-10,3,10Isof-d3-10显示某用户的已经打开的文件(或该用户执行程序已经打开的文件)-uIsof-u rootIsof-u0◎可配合正规表达式使用表示不包括用户的信息root八Isof-u root监听指定的协议、端口、主机等的网络信息,格式为-i引用
[46][proto][@host|addr][:svc_list|portjist]例如Isof-i tcp@
192.
168.
228.244Isof-i:22还可以使用一些参数控制显示结果引用禁止将转换为登陆名称,即显示-1userID UID禁止将地址转换为主机文件-n IPhostnome不显不端口名称-P从列进行匹配-g sPGIDIsof-g3-
10、其他参数3所有路径参数都必须是文件系统,否则不能执行+f所有路径参数都将作为普通的文件,例如中的/,只会匹配单个/路径,而不会是根目录中的所有文件-f-f-/”和后都应加上表终结符+f-fIsof-f-/打开或关闭文件的连结数计算,当没有指定时,所有的连结数都会显示(默认);若后指定数字,则+L/-L+L+L只要连结数小于该数字的信息会显示;连结数会显示在歹NLINK例如将显示没有的文件信息;+口,则显示指定文件系统所有的文件信息+L1unlinked unlinked默认参数,其后不能跟数字,将不显示连结数信息-LIsof+L1仅打印进程,方便脚本调用-t shellIsof-t-c sshd指定输出那个列,可通过查看-F Isof-F不断执行命令,默认每秒间隔执行一次-r Isof15也是不断执行命令,但直到没有接受到文件信息,则停止+r Isof。
个人认证
优秀文档
获得点赞 0