que tal:
lsof | awk '$5 !~ /IPv[46]/{print}'
A execução de lsof -i
(sem argumentos para -i) "seleciona a listagem de todos os arquivos de rede da Internet e x.25 (HP-UX)." Eu estou procurando uma maneira confiável de fazer o inverso: mostrar uma lista de tudo, exceto arquivos da Internet. Por confiável, quero dizer uma maneira que exigiria que o lsof seja executado uma vez . Duas execuções subseqüentes (ou seja, um% normallsof
seguido por um lsof -i
para comparar) não são confiáveis devido à strong possibilidade de rotatividade.
Obrigado antecipadamente!
sudo lsof | grep -v IPv4 | grep -v IPv6
isso funcionaria para você? isso excluiria apenas o que -i listas.
Eu rapidamente passei por isso juntos, então a qualidade pode não ser igual.
Este script Python lê cada linha retornada do comando "lsof" e verifica se a coluna "TYPE" não inclui especificamente "IPv4" ou "IPv6".
#!/usr/bin/env python
from sys import stdin
from re import search
def main():
lsof = stdin.read().strip()
final_files = [lsof.split('\n')[0]]
for line in lsof.split('\n')[1:]:
if not search(r'.*(IPv4|IPv6).*', line.split()[4]):
final_files.append(line)
print '\n'.join(final_files)
if __name__ == '__main__':
main()
Você pode executá-lo da seguinte forma:
lsof | ./inverse_lsof.py
Tags linux