Não sou engenheiro de sistema ou especialista em rede (sou mais desenvolvedor de software) e tenho o seguinte problema que preciso resolver.
Estou trabalhando em uma máquina Oracle Linux (basicamente deve ser baseada em RedHat).
Eu tenho que verificar em quais instâncias de rede o SSH está escutando nesta VM. Eu estava usando este link como referência: https://access.redhat.com/solutions/260463
Ele mostra como usar este comando (este é o exemplo do site anterior):
$ grep sshd netstat
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 12412 3522/sshd off (0.00/0/0)
O problema é que se tento replicar o mesmo comando na minha máquina obtenho esta mensagem de erro:
[root@zabbix-db ~]# grep sshd netstat
grep: netstat: No such file or directory
Por que? O que está errado? o que estou perdendo? Como posso corrigir esta verificação? e qual é o significado exato desse erro (ele fala sobre um arquivo que não existe, mas, pelo que entendi, estou grepping na saída do netstat e não em um arquivo)
Não, na verdade você está grepando um arquivo chamado
netstat
.Para realmente executar "netstat" como um comando, alimentando sua saída para grep, você precisaria usar:
Observe que a saída padrão do netstat não mostrará realmente os soquetes de escuta - você precisa especificar
-l
para incluí-los na saída. Além disso, ele não mencionará o nome do programa por padrão; essa coluna é adicionada pela-p
opção. O mesmo se aplica aoss
, que algumas distribuições do Linux agora oferecem como uma alternativa mais moderna ao netstat.¹ Então você provavelmente deseja-ltpn
:…para mostrar apenas os soquetes TCP de escuta com seus nomes de programa.
¹ Não há nada particularmente errado com netstat, mas ele vem como parte do pacote "net-tools", que em si não é mantido e suas outras ferramentas, como ifconfig, têm sérios problemas.
A sintaxe geral para o comando grep é:
então o grep não está encontrando um arquivo chamado 'netstat' - o que não é surpreendente, pois é um comando.
Existem algumas maneiras de conseguir o que você deseja; por exemplo, você pode executar o netstat com algumas elaborações de comando e enviar a saída por meio do grep para retornar apenas correspondências para 'sshd':
No meu servidor (Debian), isso dá: