Pular para o conteúdo

Erro no shell script [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar
01 02

1. Erro no shell script [RESOLVIDO]

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 ?

Responder tópico

2. Re: Erro no shell script [RESOLVIDO]

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

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]

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

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]

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]

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]

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

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]

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..

12. Re: Erro no shell script [RESOLVIDO]

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

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder