lsof


Предыдущая | Следующая

Команда lsof перечисляет открытые файлы и процессы, которые их используют. 

Поскольку Unix делает существенный акцент на файлах, команда lsof входит 

в число самых полезных инструментов для отыскания неполадок. Однако эта команда не ограничивается обычными файлами — она может перечислять сетевые 

ресурсы, динамические библиотеки, каналы и многое другое.

 

 

Чтение результатов вывода команды lsof

После запуска команды lsof в командной строке обычно появляется огромный 

список. Ниже приведен фрагмент того, что вы могли бы увидеть. Этот результат 

содержит файлы, открытые процессом init, а также запущенный процесс vi:

$ lsof

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

init 1 root cwdDIR 8,1 4096 2 /

init 1 root rtd DIR 8,1 4096 2 /

init 1 root mem REG 8, 47040 9705817 /lib/i386-linux-gnu/libnss_files-2.15.so

init 1 root mem REG 8,1 42652 9705821 /lib/i386-linux-gnu/libnss_nis-2.15.so

init 1 root mem REG 8,1 92016 9705833 /lib/i386-linux-gnu/libnsl-2.15.so

--snip--vi 22728 juser cwd DIR 8,1 4096 14945078 /home/juser/w/c

vi 22728 juser 4u REG 8,1 1288 1056519 /home/juser/w/c/f

--snip--

 

Результат состоит из следующих полей (перечисленных в верхней строке).

  COMMAND. Командное имя для процесса, который удерживает дескриптор файла.

  PID. Идентификатор процесса.

  USER. Пользователь, запустивший процесс.

  FD. Это поле может содержать два типа элементов. В приведенном выше резуль­

тате столбец FD показывает назначение файла. Это поле может также содер­

жать файловый дескриптор открытого файла — число, которое процесс исполь­

зует вместе с системными библиотеками и ядром, чтобы идентифицировать 

файл и работать с ним.

  TYPE. Тип файла (обычный файл, каталог, сокет и т. п.).

  DEVICE. Старший и младший номера устройства, которое удерживает данный 

файл.

  SIZE. Размер файла.

  NODE. Номер дескриптора inode для данного файла.

  NAME. Имя файла.

Страница руководства lsof(1) содержит полный перечень того, что вы можете 

встретить в каждом из полей, однако вы должны уметь определять, что перед вами, 

просто глядя на результат вывода. Посмотрите, например, на записи, у которых 

в поле FD указано значение cwd (выделено жирным шрифтом). В этих строках за­

даны текущие рабочие каталоги для процессов. Еще один пример содержится 

в самой последней строке: это файл, который в данный моммент редактируется 

пользователем с помощью команды vi

 

Использование команды lsof

Есть два основных подхода к запуску команды lsof.

  Перечислить все, а затем перенаправить вывод в команду типа less и поискать 

то, что вам необходимо. На это может потребоваться некоторое время, в зави­

симости от результата вывода.

  Сузить список, создаваемый командой lsof, с помощью параметров командной 

строки.

Можно использовать параметры командной строки, чтобы передать имя файла 

в качестве аргумента и вынудить команду lsof перечислить только те записи, ко­

торые соответствуют этому аргументу. Например, следующая команда отображает 

записи для файлов, открытых в каталоге /usr:

$ lsof /usr

Чтобы вывести список файлов, открытых процессом с идентификатором PID, 

запустите такую команду:

$ lsof -p pid

Для вывода краткой справки о параметрах команды lsof запустите команду 

lsof -h. Большинство параметров относится к формату вывода (см. главу 10, в ко­

торой говорится о сетевых функциях команды lsof)

 

Команда lsof сильно зависит от информации о ядре. Если вы обновляете ядро, но при этом нерегулярно обновляете все остальное, вам может потребоваться обновление команды lsof. Более того,

если вы применили обновление и для ядра, и для команды lsof, обновленная команда lsof может не

запускаться до тех пор, пока вы не перезагрузите систему с новым ядром.

Команда lsof перечисляет открытые файлы и процессы, которые их используют. 

Поскольку Unix делает существенный акцент на файлах, команда lsof входит 

в число самых полезных инструментов для отыскания неполадок. Однако эта команда не ограничивается обычными файлами — она может перечислять сетевые 

ресурсы, динамические библиотеки, каналы и многое другое.

 

 

Чтение результатов вывода команды lsof

После запуска команды lsof в командной строке обычно появляется огромный 

список. Ниже приведен фрагмент того, что вы могли бы увидеть. Этот результат 

содержит файлы, открытые процессом init, а также запущенный процесс vi:

$ lsof

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

init 1 root cwdDIR 8,1 4096 2 /

init 1 root rtd DIR 8,1 4096 2 /

init 1 root mem REG 8, 47040 9705817 /lib/i386-linux-gnu/libnss_files-2.15.so

init 1 root mem REG 8,1 42652 9705821 /lib/i386-linux-gnu/libnss_nis-2.15.so

init 1 root mem REG 8,1 92016 9705833 /lib/i386-linux-gnu/libnsl-2.15.so

--snip--vi 22728 juser cwd DIR 8,1 4096 14945078 /home/juser/w/c

vi 22728 juser 4u REG 8,1 1288 1056519 /home/juser/w/c/f

--snip--

 

Результат состоит из следующих полей (перечисленных в верхней строке).

  COMMAND. Командное имя для процесса, который удерживает дескриптор файла.

  PID. Идентификатор процесса.

  USER. Пользователь, запустивший процесс.

  FD. Это поле может содержать два типа элементов. В приведенном выше резуль­

тате столбец FD показывает назначение файла. Это поле может также содер­

жать файловый дескриптор открытого файла — число, которое процесс исполь­

зует вместе с системными библиотеками и ядром, чтобы идентифицировать 

файл и работать с ним.

  TYPE. Тип файла (обычный файл, каталог, сокет и т. п.).

  DEVICE. Старший и младший номера устройства, которое удерживает данный 

файл.

  SIZE. Размер файла.

  NODE. Номер дескриптора inode для данного файла.

  NAME. Имя файла.

Страница руководства lsof(1) содержит полный перечень того, что вы можете 

встретить в каждом из полей, однако вы должны уметь определять, что перед вами, 

просто глядя на результат вывода. Посмотрите, например, на записи, у которых 

в поле FD указано значение cwd (выделено жирным шрифтом). В этих строках за­

даны текущие рабочие каталоги для процессов. Еще один пример содержится 

в самой последней строке: это файл, который в данный моммент редактируется 

пользователем с помощью команды vi

 

Использование команды lsof

Есть два основных подхода к запуску команды lsof.

  Перечислить все, а затем перенаправить вывод в команду типа less и поискать 

то, что вам необходимо. На это может потребоваться некоторое время, в зави­

симости от результата вывода.

  Сузить список, создаваемый командой lsof, с помощью параметров командной 

строки.

Можно использовать параметры командной строки, чтобы передать имя файла 

в качестве аргумента и вынудить команду lsof перечислить только те записи, ко­

торые соответствуют этому аргументу. Например, следующая команда отображает 

записи для файлов, открытых в каталоге /usr:

$ lsof /usr

Чтобы вывести список файлов, открытых процессом с идентификатором PID, 

запустите такую команду:

$ lsof -p pid

Для вывода краткой справки о параметрах команды lsof запустите команду 

lsof -h. Большинство параметров относится к формату вывода (см. главу 10, в ко­

торой говорится о сетевых функциях команды lsof)

 

Команда lsof сильно зависит от информации о ядре. Если вы обновляете ядро, но при этом нерегулярно обновляете все остальное, вам может потребоваться обновление команды lsof. Более того,

если вы применили обновление и для ядра, и для команды lsof, обновленная команда lsof может не

запускаться до тех пор, пока вы не перезагрузите систему с новым ядром.

Команда lsof перечисляет открытые файлы и процессы, которые их используют. 

Поскольку Unix делает существенный акцент на файлах, команда lsof входит 

в число самых полезных инструментов для отыскания неполадок. Однако эта команда не ограничивается обычными файлами — она может перечислять сетевые 

ресурсы, динамические библиотеки, каналы и многое другое.

 

 

Чтение результатов вывода команды lsof

После запуска команды lsof в командной строке обычно появляется огромный 

список. Ниже приведен фрагмент того, что вы могли бы увидеть. Этот результат 

содержит файлы, открытые процессом init, а также запущенный процесс vi:

$ lsof

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

init 1 root cwdDIR 8,1 4096 2 /

init 1 root rtd DIR 8,1 4096 2 /

init 1 root mem REG 8, 47040 9705817 /lib/i386-linux-gnu/libnss_files-2.15.so

init 1 root mem REG 8,1 42652 9705821 /lib/i386-linux-gnu/libnss_nis-2.15.so

init 1 root mem REG 8,1 92016 9705833 /lib/i386-linux-gnu/libnsl-2.15.so

--snip--vi 22728 juser cwd DIR 8,1 4096 14945078 /home/juser/w/c

vi 22728 juser 4u REG 8,1 1288 1056519 /home/juser/w/c/f

--snip--

 

Результат состоит из следующих полей (перечисленных в верхней строке).

  COMMAND. Командное имя для процесса, который удерживает дескриптор файла.

  PID. Идентификатор процесса.

  USER. Пользователь, запустивший процесс.

  FD. Это поле может содержать два типа элементов. В приведенном выше резуль­

тате столбец FD показывает назначение файла. Это поле может также содер­

жать файловый дескриптор открытого файла — число, которое процесс исполь­

зует вместе с системными библиотеками и ядром, чтобы идентифицировать 

файл и работать с ним.

  TYPE. Тип файла (обычный файл, каталог, сокет и т. п.).

  DEVICE. Старший и младший номера устройства, которое удерживает данный 

файл.

  SIZE. Размер файла.

  NODE. Номер дескриптора inode для данного файла.

  NAME. Имя файла.

Страница руководства lsof(1) содержит полный перечень того, что вы можете 

встретить в каждом из полей, однако вы должны уметь определять, что перед вами, 

просто глядя на результат вывода. Посмотрите, например, на записи, у которых 

в поле FD указано значение cwd (выделено жирным шрифтом). В этих строках за­

даны текущие рабочие каталоги для процессов. Еще один пример содержится 

в самой последней строке: это файл, который в данный моммент редактируется 

пользователем с помощью команды vi

 

Использование команды lsof

Есть два основных подхода к запуску команды lsof.

  Перечислить все, а затем перенаправить вывод в команду типа less и поискать 

то, что вам необходимо. На это может потребоваться некоторое время, в зави­

симости от результата вывода.

  Сузить список, создаваемый командой lsof, с помощью параметров командной 

строки.

Можно использовать параметры командной строки, чтобы передать имя файла 

в качестве аргумента и вынудить команду lsof перечислить только те записи, ко­

торые соответствуют этому аргументу. Например, следующая команда отображает 

записи для файлов, открытых в каталоге /usr:

$ lsof /usr

Чтобы вывести список файлов, открытых процессом с идентификатором PID, 

запустите такую команду:

$ lsof -p pid

Для вывода краткой справки о параметрах команды lsof запустите команду 

lsof -h. Большинство параметров относится к формату вывода (см. главу 10, в ко­

торой говорится о сетевых функциях команды lsof)

 

Команда lsof сильно зависит от информации о ядре. Если вы обновляете ядро, но при этом нерегулярно обновляете все остальное, вам может потребоваться обновление команды lsof. Более того,

если вы применили обновление и для ядра, и для команды lsof, обновленная команда lsof может не

запускаться до тех пор, пока вы не перезагрузите систему с новым ядром.

Команда lsof перечисляет открытые файлы и процессы, которые их используют. 

Поскольку Unix делает существенный акцент на файлах, команда lsof входит 

в число самых полезных инструментов для отыскания неполадок. Однако эта команда не ограничивается обычными файлами — она может перечислять сетевые 

ресурсы, динамические библиотеки, каналы и многое другое.

 

 

Чтение результатов вывода команды lsof

После запуска команды lsof в командной строке обычно появляется огромный 

список. Ниже приведен фрагмент того, что вы могли бы увидеть. Этот результат 

содержит файлы, открытые процессом init, а также запущенный процесс vi:

$ lsof

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

init 1 root cwdDIR 8,1 4096 2 /

init 1 root rtd DIR 8,1 4096 2 /

init 1 root mem REG 8, 47040 9705817 /lib/i386-linux-gnu/libnss_files-2.15.so

init 1 root mem REG 8,1 42652 9705821 /lib/i386-linux-gnu/libnss_nis-2.15.so

init 1 root mem REG 8,1 92016 9705833 /lib/i386-linux-gnu/libnsl-2.15.so

--snip--vi 22728 juser cwd DIR 8,1 4096 14945078 /home/juser/w/c

vi 22728 juser 4u REG 8,1 1288 1056519 /home/juser/w/c/f

--snip--

 

Результат состоит из следующих полей (перечисленных в верхней строке).

  COMMAND. Командное имя для процесса, который удерживает дескриптор файла.

  PID. Идентификатор процесса.

  USER. Пользователь, запустивший процесс.

  FD. Это поле может содержать два типа элементов. В приведенном выше резуль­

тате столбец FD показывает назначение файла. Это поле может также содер­

жать файловый дескриптор открытого файла — число, которое процесс исполь­

зует вместе с системными библиотеками и ядром, чтобы идентифицировать 

файл и работать с ним.

  TYPE. Тип файла (обычный файл, каталог, сокет и т. п.).

  DEVICE. Старший и младший номера устройства, которое удерживает данный 

файл.

  SIZE. Размер файла.

  NODE. Номер дескриптора inode для данного файла.

  NAME. Имя файла.

Страница руководства lsof(1) содержит полный перечень того, что вы можете 

встретить в каждом из полей, однако вы должны уметь определять, что перед вами, 

просто глядя на результат вывода. Посмотрите, например, на записи, у которых 

в поле FD указано значение cwd (выделено жирным шрифтом). В этих строках за­

даны текущие рабочие каталоги для процессов. Еще один пример содержится 

в самой последней строке: это файл, который в данный моммент редактируется 

пользователем с помощью команды vi

 

Использование команды lsof

Есть два основных подхода к запуску команды lsof.

  Перечислить все, а затем перенаправить вывод в команду типа less и поискать 

то, что вам необходимо. На это может потребоваться некоторое время, в зави­

симости от результата вывода.

  Сузить список, создаваемый командой lsof, с помощью параметров командной 

строки.

Можно использовать параметры командной строки, чтобы передать имя файла 

в качестве аргумента и вынудить команду lsof перечислить только те записи, ко­

торые соответствуют этому аргументу. Например, следующая команда отображает 

записи для файлов, открытых в каталоге /usr:

$ lsof /usr

Чтобы вывести список файлов, открытых процессом с идентификатором PID, 

запустите такую команду:

$ lsof -p pid

Для вывода краткой справки о параметрах команды lsof запустите команду 

lsof -h. Большинство параметров относится к формату вывода (см. главу 10, в ко­

торой говорится о сетевых функциях команды lsof)

 

Команда lsof сильно зависит от информации о ядре. Если вы обновляете ядро, но при этом нерегулярно обновляете все остальное, вам может потребоваться обновление команды lsof. Более того,

если вы применили обновление и для ядра, и для команды lsof, обновленная команда lsof может не

запускаться до тех пор, пока вы не перезагрузите систему с новым ядром.

Команда lsof перечисляет открытые файлы и процессы, которые их используют. 

Поскольку Unix делает существенный акцент на файлах, команда lsof входит 

в число самых полезных инструментов для отыскания неполадок. Однако эта команда не ограничивается обычными файлами — она может перечислять сетевые 

ресурсы, динамические библиотеки, каналы и многое другое.

 

 

Чтение результатов вывода команды lsof

После запуска команды lsof в командной строке обычно появляется огромный 

список. Ниже приведен фрагмент того, что вы могли бы увидеть. Этот результат 

содержит файлы, открытые процессом init, а также запущенный процесс vi:

$ lsof

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

init 1 root cwdDIR 8,1 4096 2 /

init 1 root rtd DIR 8,1 4096 2 /

init 1 root mem REG 8, 47040 9705817 /lib/i386-linux-gnu/libnss_files-2.15.so

init 1 root mem REG 8,1 42652 9705821 /lib/i386-linux-gnu/libnss_nis-2.15.so

init 1 root mem REG 8,1 92016 9705833 /lib/i386-linux-gnu/libnsl-2.15.so

--snip--vi 22728 juser cwd DIR 8,1 4096 14945078 /home/juser/w/c

vi 22728 juser 4u REG 8,1 1288 1056519 /home/juser/w/c/f

--snip--

 

Результат состоит из следующих полей (перечисленных в верхней строке).

  COMMAND. Командное имя для процесса, который удерживает дескриптор файла.

  PID. Идентификатор процесса.

  USER. Пользователь, запустивший процесс.

  FD. Это поле может содержать два типа элементов. В приведенном выше резуль­

тате столбец FD показывает назначение файла. Это поле может также содер­

жать файловый дескриптор открытого файла — число, которое процесс исполь­

зует вместе с системными библиотеками и ядром, чтобы идентифицировать 

файл и работать с ним.

  TYPE. Тип файла (обычный файл, каталог, сокет и т. п.).

  DEVICE. Старший и младший номера устройства, которое удерживает данный 

файл.

  SIZE. Размер файла.

  NODE. Номер дескриптора inode для данного файла.

  NAME. Имя файла.

Страница руководства lsof(1) содержит полный перечень того, что вы можете 

встретить в каждом из полей, однако вы должны уметь определять, что перед вами, 

просто глядя на результат вывода. Посмотрите, например, на записи, у которых 

в поле FD указано значение cwd (выделено жирным шрифтом). В этих строках за­

даны текущие рабочие каталоги для процессов. Еще один пример содержится 

в самой последней строке: это файл, который в данный моммент редактируется 

пользователем с помощью команды vi

 

Использование команды lsof

Есть два основных подхода к запуску команды lsof.

  Перечислить все, а затем перенаправить вывод в команду типа less и поискать 

то, что вам необходимо. На это может потребоваться некоторое время, в зави­

симости от результата вывода.

  Сузить список, создаваемый командой lsof, с помощью параметров командной 

строки.

Можно использовать параметры командной строки, чтобы передать имя файла 

в качестве аргумента и вынудить команду lsof перечислить только те записи, ко­

торые соответствуют этому аргументу. Например, следующая команда отображает 

записи для файлов, открытых в каталоге /usr:

$ lsof /usr

Чтобы вывести список файлов, открытых процессом с идентификатором PID, 

запустите такую команду:

$ lsof -p pid

Для вывода краткой справки о параметрах команды lsof запустите команду 

lsof -h. Большинство параметров относится к формату вывода (см. главу 10, в ко­

торой говорится о сетевых функциях команды lsof)

 

Команда lsof сильно зависит от информации о ядре. Если вы обновляете ядро, но при этом нерегулярно обновляете все остальное, вам может потребоваться обновление команды lsof. Более того,

если вы применили обновление и для ядра, и для команды lsof, обновленная команда lsof может не

запускаться до тех пор, пока вы не перезагрузите систему с новым ядром.

Команда lsof перечисляет открытые файлы и процессы, которые их используют. 

Поскольку Unix делает существенный акцент на файлах, команда lsof входит 

в число самых полезных инструментов для отыскания неполадок. Однако эта команда не ограничивается обычными файлами — она может перечислять сетевые 

ресурсы, динамические библиотеки, каналы и многое другое.

 

 

Чтение результатов вывода команды lsof

После запуска команды lsof в командной строке обычно появляется огромный 

список. Ниже приведен фрагмент того, что вы могли бы увидеть. Этот результат 

содержит файлы, открытые процессом init, а также запущенный процесс vi:

$ lsof

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

init 1 root cwdDIR 8,1 4096 2 /

init 1 root rtd DIR 8,1 4096 2 /

init 1 root mem REG 8, 47040 9705817 /lib/i386-linux-gnu/libnss_files-2.15.so

init 1 root mem REG 8,1 42652 9705821 /lib/i386-linux-gnu/libnss_nis-2.15.so

init 1 root mem REG 8,1 92016 9705833 /lib/i386-linux-gnu/libnsl-2.15.so

--snip--vi 22728 juser cwd DIR 8,1 4096 14945078 /home/juser/w/c

vi 22728 juser 4u REG 8,1 1288 1056519 /home/juser/w/c/f

--snip--

 

Результат состоит из следующих полей (перечисленных в верхней строке).

  COMMAND. Командное имя для процесса, который удерживает дескриптор файла.

  PID. Идентификатор процесса.

  USER. Пользователь, запустивший процесс.

  FD. Это поле может содержать два типа элементов. В приведенном выше резуль­

тате столбец FD показывает назначение файла. Это поле может также содер­

жать файловый дескриптор открытого файла — число, которое процесс исполь­

зует вместе с системными библиотеками и ядром, чтобы идентифицировать 

файл и работать с ним.

  TYPE. Тип файла (обычный файл, каталог, сокет и т. п.).

  DEVICE. Старший и младший номера устройства, которое удерживает данный 

файл.

  SIZE. Размер файла.

  NODE. Номер дескриптора inode для данного файла.

  NAME. Имя файла.

Страница руководства lsof(1) содержит полный перечень того, что вы можете 

встретить в каждом из полей, однако вы должны уметь определять, что перед вами, 

просто глядя на результат вывода. Посмотрите, например, на записи, у которых 

в поле FD указано значение cwd (выделено жирным шрифтом). В этих строках за­

даны текущие рабочие каталоги для процессов. Еще один пример содержится 

в самой последней строке: это файл, который в данный моммент редактируется 

пользователем с помощью команды vi

 

Использование команды lsof

Есть два основных подхода к запуску команды lsof.

  Перечислить все, а затем перенаправить вывод в команду типа less и поискать 

то, что вам необходимо. На это может потребоваться некоторое время, в зави­

симости от результата вывода.

  Сузить список, создаваемый командой lsof, с помощью параметров командной 

строки.

Можно использовать параметры командной строки, чтобы передать имя файла 

в качестве аргумента и вынудить команду lsof перечислить только те записи, ко­

торые соответствуют этому аргументу. Например, следующая команда отображает 

записи для файлов, открытых в каталоге /usr:

$ lsof /usr

Чтобы вывести список файлов, открытых процессом с идентификатором PID, 

запустите такую команду:

$ lsof -p pid

Для вывода краткой справки о параметрах команды lsof запустите команду 

lsof -h. Большинство параметров относится к формату вывода (см. главу 10, в ко­

торой говорится о сетевых функциях команды lsof)

 

Команда lsof сильно зависит от информации о ядре. Если вы обновляете ядро, но при этом нерегулярно обновляете все остальное, вам может потребоваться обновление команды lsof. Более того,

если вы применили обновление и для ядра, и для команды lsof, обновленная команда lsof может не

запускаться до тех пор, пока вы не перезагрузите систему с новым ядром.

 

Фильтры

Например, только tcp соединения

sudo lsof -P -iTCP -sTCP:LISTEN