Erro no shell script [RESOLVIDO]

1. Erro no shell script [RESOLVIDO]

Bruno Augusto Lobo Soares
brunols

(usa Slackware)

Enviado em 04/08/2017 - 16:37h


Fiz o script abaixo:

#!/bin/bash -x

# Author: Bruno Augusto
# 04-Ago-17

ECHO=/bin/echo
CAT=/bin/cat
WHICH=/usr/bin/which
SSH=/usr/bin/ssh
PATCH=/home/baugusto/Scripts/sniffers_csirt/UnixTI-R1.txt
CMD:"which tshark ethereal wireshark | hostname" > sniffers.txt

for FILE1 in `$CAT ${PATH}`;
do
$ECHO 'Servidor '${FILE1}
$SSH -p 16 usuario@${FILE1} ${CMD}


done


E está apresentando o seguinte erro:

./sniffer.sh
+ ECHO=/bin/echo
+ CAT=/bin/cat
+ WHICH=/usr/bin/which
+ SSH=/usr/bin/ssh
+ PATCH=/home/baugusto/Scripts/sniffers_csirt/UnixTI-R1.txt
+ 'CMD:which tshark ethereal wireshark | hostname'
./sniffer.sh: line 11: CMD:which tshark ethereal wireshark | hostname: command not found
++ /bin/cat /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/baugusto/bin
/bin/cat: /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/baugusto/bin: No such file or directory

Alguém poderia auxiliar no erro ?


  


2. Re: Erro no shell script [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 04/08/2017 - 17:28h

brunols escreveu:


Fiz o script abaixo:

#!/bin/bash -x

# Author: Bruno Augusto
# 04-Ago-17

ECHO=/bin/echo
CAT=/bin/cat
WHICH=/usr/bin/which
SSH=/usr/bin/ssh
PATCH=/home/baugusto/Scripts/sniffers_csirt/UnixTI-R1.txt
CMD:"which tshark ethereal wireshark | hostname" > sniffers.txt

for FILE1 in `$CAT ${PATH}`;
do
$ECHO 'Servidor '${FILE1}
$SSH -p 16 usuario@${FILE1} ${CMD}


done


E está apresentando o seguinte erro:

./sniffer.sh
+ ECHO=/bin/echo
+ CAT=/bin/cat
+ WHICH=/usr/bin/which
+ SSH=/usr/bin/ssh
+ PATCH=/home/baugusto/Scripts/sniffers_csirt/UnixTI-R1.txt
+ 'CMD:which tshark ethereal wireshark | hostname'
./sniffer.sh: line 11: CMD:which tshark ethereal wireshark | hostname: command not found
++ /bin/cat /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/baugusto/bin
/bin/cat: /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/baugusto/bin: No such file or directory

Alguém poderia auxiliar no erro ?


velho ... na boa .. o q vc quer fazer ??? eu não estou conseguindo decifrar sua intenção só lendo seu script !!!


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



3. Re: Erro no shell script

Jose Renan Assis
JoseRenan

(usa Ubuntu)

Enviado em 04/08/2017 - 17:29h

Vc tá rodando o comando which tshark ethereal wireshark | hostname > sniffers.txt para cada servidor listado, né?

Essa linha
CMD:"which tshark ethereal wireshark | hostname" > sniffers.txt
que está dando erro.
Vc quer a saída do comando para ser escrito no arquivo, isso?

Tenta jogar o comando

which tshark ethereal wireshark | hostname

no lugar da variável CMD no while.



4. Re: Erro no shell script [RESOLVIDO]

Bruno Augusto Lobo Soares
brunols

(usa Slackware)

Enviado em 07/08/2017 - 12:23h

JoseRenan escreveu:

Vc tá rodando o comando which tshark ethereal wireshark | hostname > sniffers.txt para cada servidor listado, né?

Essa linha
CMD:"which tshark ethereal wireshark | hostname" > sniffers.txt
que está dando erro.
Vc quer a saída do comando para ser escrito no arquivo, isso?

Tenta jogar o comando

which tshark ethereal wireshark | hostname

no lugar da variável CMD no while.


Boa tarde galera,
Então fiz um bem básico mesmo... Eu jogo o script para cada servidor, executo lá e depois pego o arquivo txt..
Porém não está apresentando o resultado do comando which (abaixo):
./sniffer_padrao_sh
++ /bin/date +%y%m%d-%Y_%H%M
+ data=170807-2017_1221
+ which tshark ethereal wireshark
which: no tshark in (/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/sham6001/bin)
which: no ethereal in (/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/sham6001/bin)
which: no wireshark in (/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/sham6001/bin)
+ hostname

Segue o script:
#!/bin/bash -x
data=`/bin/date +%y%m%d-%Y_%H%M`
which tshark ethereal wireshark | hostname >>coleta_sniffer.${data}.txt



5. Re: Erro no shell script

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 07/08/2017 - 12:55h

O comando which está dizendo que não está encontrando os termos solicitados (tshark ethereal wireshark) dentro dos caminhos especificados na variável PATH.
Engraçado que vc deu um valor para uma variável PATCH...por acaso vc queria se referir a PATH e errou a digitação?



6. Re: Erro no shell script [RESOLVIDO]

Bruno Augusto Lobo Soares
brunols

(usa Slackware)

Enviado em 07/08/2017 - 12:58h

patrickpcs escreveu:

O comando which está dizendo que não está encontrando os termos solicitados dentro dos caminhos especificados na variável PATH.



Acho que minha expressão foi errônea. Vou explicar melhor.
Eu preciso pegar a informação do resultado do comando (abaixo):

/usr/bin/which: no tshark in
/usr/bin/which: no ethereal in
/usr/bin/which: no wireshark in

Essa sáida tem que entrar em um arquivo .txt


7. Re: Erro no shell script [RESOLVIDO]

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 07/08/2017 - 13:04h

Mensagens de erros são geralmente enviadas para o stderr, use 2>> para redirecionar para um arquivo as mensagens de erro.

Use &>> para redirecionar tanto o stdout e stderr.



8. Re: Erro no shell script [RESOLVIDO]

Bruno Augusto Lobo Soares
brunols

(usa Slackware)

Enviado em 07/08/2017 - 13:14h

patrickpcs escreveu:

Mensagens de erros são geralmente enviadas para o stderr, use 2>> para redirecionar para um arquivo as mensagens de erro.

Use &>> para redirecionar tanto o stdout e stderr.


Não funcionou

which tshark ethereal wireshark | hostname 2>> coleta_sniffer.${data}.txt

O arquivo gerado fica vazio..

#!/bin/bash -x
data=`/bin/date +%y%m%d-%Y_%H%M`
which tshark ethereal wireshark | hostname 2>> coleta_sniffer.${data}.txt



9. Re: Erro no shell script

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 07/08/2017 - 13:17h

O erro é no comando which....não no hostname....
Se o comando hostname sequer recebe dados de entrada.

Acho que no caso do pipe é 2| ou &|....estou longe do PC no momento pra testar.



10. Re: Erro no shell script [RESOLVIDO]

Bruno Augusto Lobo Soares
brunols

(usa Slackware)

Enviado em 07/08/2017 - 13:23h

patrickpcs escreveu:

O erro é no comando which....não no hostname....
Se o comando hostname sequer recebe dados de entrada.

Acho que no caso do pipe é 2| ou &|....estou longe do PC no momento pra testar.


Colocando o 2| ele somente continua trazendo o hostname, sem a informação de error..
Colocando o &| da erro de sintax..



11. Re: Erro no shell script

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 07/08/2017 - 13:27h

Perdão, achei no glorioso stackoverflow..

https://stackoverflow.com/questions/2342826/how-to-pipe-stderr-and-not-stdout


Vc vai redirecionar o stderr para o stdout...dessa forma o pipe será capaz de encaminhar as mensagens de erro para o comando hostname.

which termoA termoB 2>&1 | hostname ...........




12. Re: Erro no shell script [RESOLVIDO]

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 07/08/2017 - 13:29h

Mas é provável que o comando hostname intérprete todas as mensagens do comando which como um único argumento.
Acho que seria interessante vc usar o xargs nessa situação.





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts