Ajuda com comando em Perl.

1. Ajuda com comando em Perl.

Joao Vitorino
Joao_Vitorino

(usa Red Hat)

Enviado em 04/11/2013 - 19:02h

Boa noite pessoal.

Entendo pouco de programação, trabalho com Infra, o máximo que faço é identificar algumas coisas em alguns scripts.

E por isso preciso da ajuda de vocês.


Tenho a seguinte linha em um script


echo '<OUTPUTSTRING>' > /mnt/nagios/nagios.cmd


Esse comando funciona bem quando executo o script no server localmente, mas gostaria de saber como faze-lo para executar em outro servidor.

Ou seja:
Quero que a saída do echo seja redirecionada para o arquivo /mnt/nagios/nagios.cmd em outra máquina.


  


2. Re: Ajuda com comando em Perl.

Daniel Vinciguerra
dvinciguerra

(usa Debian)

Enviado em 07/12/2013 - 23:13h

Vendo somente essa instrução me parece um shell script!


Como isso não é um problema especifico de Perl e sim de comunicação da sua aplicação com a maquina você tem algumas opções que são: modificar sua aplicação para que ela grave esta informação de saída em um host remoto dependendo de um parâmetro, por exemplo, o path do diretório, ou adicionar um comando, rsync por exemplo, que vá fazer o upload do arquivo caso o path seja remoto.

Optar pelo primeiro caso será mais complexo e como você disse que não tem grande experiência com desenvolvimento talvez seja desnecessário. Mas deixo aqui abaixo alguns modulos que podem lhe ajudar:

File::Rsync
https://metacpan.org/pod/File::Rsync

Zucchini::Rsync
https://metacpan.org/pod/release/CHISEL/Zucchini-0.0.17/lib/Zucchini/Rsync.pm

Net::SFTP
https://metacpan.org/pod/Net::SFTP


Optar pelo segundo pode bastar adicionar um rsync ou algo do gênero como:


echo '<OUTPUTSTRING>' > /mnt/nagios/nagios.cmd
rsync /mnt/nagios/nagios.cmd user@localhost:/mnt/nagios/nagios.cmd


Veja se isso lhe ajuda a clarear as ideias e caso precise de mais ajuda com código volte aqui com mais informações especificas sobre o problema.

Grande abraço e espero ter ajudado!


3. Re: Ajuda com comando em Perl.

Joao Vitorino
JoaoVitorino

(usa openSUSE)

Enviado em 09/12/2013 - 17:59h

dvinciguerra escreveu:

Vendo somente essa instrução me parece um shell script!


Como isso não é um problema especifico de Perl e sim de comunicação da sua aplicação com a maquina você tem algumas opções que são: modificar sua aplicação para que ela grave esta informação de saída em um host remoto dependendo de um parâmetro, por exemplo, o path do diretório, ou adicionar um comando, rsync por exemplo, que vá fazer o upload do arquivo caso o path seja remoto.

Optar pelo primeiro caso será mais complexo e como você disse que não tem grande experiência com desenvolvimento talvez seja desnecessário. Mas deixo aqui abaixo alguns modulos que podem lhe ajudar:

File::Rsync
https://metacpan.org/pod/File::Rsync

Zucchini::Rsync
https://metacpan.org/pod/release/CHISEL/Zucchini-0.0.17/lib/Zucchini/Rsync.pm

Net::SFTP
https://metacpan.org/pod/Net::SFTP


Optar pelo segundo pode bastar adicionar um rsync ou algo do gênero como:


echo '<OUTPUTSTRING>' > /mnt/nagios/nagios.cmd
rsync /mnt/nagios/nagios.cmd user@localhost:/mnt/nagios/nagios.cmd


Veja se isso lhe ajuda a clarear as ideias e caso precise de mais ajuda com código volte aqui com mais informações especificas sobre o problema.

Grande abraço e espero ter ajudado!

Obrigado pela ajuda mas já tentei dessa forma.
Mas não funciona por se tratar de um arquivo named pipe, a saida OUTPUTSTRING tem que ser gravada em um arquivo FIFO, e devido a trava que esse tipo de arquivo utilizada, ele só funciona em modo local.
Descobri que para funcionar pela rede, é necessário modificar todo o script para funcionar com sockets, mas isso está além dos meus conhecimentos. Portanto, deixei o projeto pra lá.
Mas obrigado pela ajuda de qualquer forma.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts