lsof - depura a informação de saída

2

Eu estava passando pelas perguntas deste site. Em esta questão particular, vejo o comando sendo usado para listar os arquivos que estão abertos para um usuário específico. Eu corri o comando abaixo no meu terminal.

lsof -a -u root -d txt

Estou vendo uma saída longa que é completamente irrelevante (pelo menos para mim). Eu estou achando difícil entender a saída produzida. Isso é

mapping-d  3992 root txt       REG    8,5    29728 7169187 /usr/libexec/mapping-daemon
clock-app  4005 root txt       REG    8,5    88048 7169216 /usr/libexec/clock-applet
mixer_app  4007 root txt       REG    8,5    53484 7169197 /usr/libexec/mixer_applet2
gnome-scr  4078 root txt       REG    8,5   168628 1337742 /usr/bin/gnome-screensaver
notificat  4081 root txt       REG    8,5    34732 1324168 /usr/libexec/notification-daemon
gnome-ter  4219 root txt       REG    8,5   309400 1318348 /usr/bin/gnome-terminal
gnome-pty  4221 root txt       REG    8,5    12384 1899888 /usr/lib/vte/gnome-pty-helper
bash       4222 root txt       REG    8,5   735932  196459 /bin/bash
firefox   15551 root txt       REG    8,5   121288 2424613 /usr/lib/firefox/firefox
npviewer. 15790 root txt       REG    8,5   174364 1996912 /usr/lib/nspluginwrapper/npviewer.bin
bash      15908 root txt       REG    8,5   735932  196459 /bin/bash
lsof      16014 root txt       REG    8,5   129820 1323233 /usr/sbin/lsof
lsof      16015 root txt       REG    8,5   129820 1323233 /usr/sbin/lsof

Eu estava esperando, se eu tivesse aberto um arquivo txt como o usuário root , apenas as informações desse arquivo seriam exibidas se eu executasse o lsof < Comando / strong>. Alguém pode me ajudar a entender o que esse comando realmente produz como saída?

    
por Ramesh 18.10.2013 / 17:24

2 respostas

1

lsof lista todos os arquivos que são acessados por um programa de uma forma ou de outra. A quarta coluna ( FD ) descreve a maneira como o programa está acessando o arquivo. Aqui estão alguns casos comuns (há outros):

  • Um número: o arquivo é aberto pelo processo e o número é o descritor de arquivo. As letras após o nome do arquivo indicam o modo de abertura (por exemplo, r para somente leitura, w para somente gravação, u para ambos).
  • cwd : o arquivo é o diretório de trabalho atual do processo.
  • txt : o arquivo é o executável do processo.
  • mem : o arquivo é mapeado para o espaço da memória virtual do processo.

O tipo de descritor txt não tem nada a ver com “arquivos de texto” no sentido de conter texto legível ou ter um nome que termine com .txt . Aqui, "texto" é um bit estranho da terminologia referente ao código executável, como no segmento de texto de um arquivo executável que é a seção que contém o código. Esse nome estranho vem da comunidade de programação agora extinta é anterior ao Unix (General Electric, cujo outro legado de nomes no mundo Unix é o “ campo GECOS ”).

Assim, o que você está vendo é o principal executável de cada processo.

    
por 20.10.2013 / 03:24
1

A saída é organizada em colunas. Se você quiser armazenar esta saída em um arquivo para que você possa revisá-lo mais tarde, simplesmente faça o seguinte:

$ lsof -a -u root -d txt > somefile.txt

As colunas estão bem no topo.

COMMAND     PID USER  FD      TYPE DEVICE SIZE/OFF    NODE NAME

Descrição das colunas

As colunas são as seguintes:

COMMAND     PID USER  FD      TYPE DEVICE SIZE/OFF    NODE NAME
mapping-d  3992 root txt       REG    8,5    29728 7169187 /usr/libexec/mapping-daemon
clock-app  4005 root txt       REG    8,5    88048 7169216 /usr/libexec/clock-applet
mixer_app  4007 root txt       REG    8,5    53484 7169197 /usr/libexec/mixer_applet2
  • COMMAND - este é o nome do executável que está usando um arquivo.

  • PID - ID do processo, esta é a ID do processo do executável. Você também os veria na saída do comando ps .

  • USER - Este é o ID do usuário do qual o processo pertence.

  • FD - Descritor de arquivos. Você especificou que deseja apenas descritores de arquivos de texto ( -d txt ), portanto, você deve ver apenas txt nesta coluna. A partir da página man de lsof , "texto do programa txt (código e dados);"

  • TYPE - denota o tipo de nó associado ao arquivo. Novamente, consulte a man page de lsof . Existem muitos tipos diferentes de nós. Aqui estamos lidando principalmente com arquivos regulares, então você verá a palavra-chave REG .

  • DEVICE - esta coluna contém números de dispositivos. Estes são os dispositivos correspondentes que estão sendo usados para o arquivo específico, do diretório /dev dos sistemas.

  • TAMANHO / DESATIVADO - tamanho do arquivo ou o deslocamento do arquivo em bytes.

  • NODE - Consulte a man page de lsof , em geral, é o número do nó de um arquivo local ou o número inode de um arquivo NFS no host do servidor, mas pode outros valores também.

  • NAME - nome do arquivo ou nome do ponto de montagem e sistema de arquivos no qual o arquivo reside.

por 19.10.2013 / 02:02