Home | Downloads | Fórums | Notícias | Preferências | Galeria | Cadastro | Wiki-BR
 

[ Comunidade Fedora Brasil ]: Forums



Comunidade Fedora Brasil :: Exibir tópico - programação em perl
 FAQFAQ   PesquisarPesquisar   GruposGrupos   PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   LoginLogin 

programação em perl

 
Novo Tópico   Responder Mensagem    Comunidade Fedora Brasil - Índice do Fórum -> Desenvolvimento
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
ricardobertulli
Usuário
Usuário


Registrado em: Jan 31, 2006
Mensagens: 110

MensagemEnviada: Ter Jun 20, 2006 3:03 pm    Assunto: programação em perl Responder com Citação

galera estou com um problema aki e naum consigo descobrir a solução, espero que alguem possa me ajudar....construi um script em perl para coletar informações de mibs de swithches...porem quando vou rodar esse script na maquina que deve ficar o arquivo vem a seguinte mensagem : bad interpreter: No such file or directory, já verifiquei e o perl esta instalado na maquina...alguem pode me ajduar???....obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email
tosta
Administrador
Administrador


Registrado em: Feb 22, 2005
Mensagens: 686
Localização: Sete Lagoas - MG

MensagemEnviada: Ter Jun 20, 2006 3:26 pm    Assunto: Responder com Citação

Por favor posta o script ou parte dele para a gente analisar.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
ricardobertulli
Usuário
Usuário


Registrado em: Jan 31, 2006
Mensagens: 110

MensagemEnviada: Qua Jun 21, 2006 9:08 am    Assunto: Responder com Citação

tosta ai esta o script.....e ja verifiquei o caminho /usr/lib/perl5/... e o caminho /usr/bin/perl.....agradeço a ajuda...abraços

#!/usr/bin/perl
#
#
require "/usr/lib/perl5/5.8.0/ctime.pl";
sub defrede
{
print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
print "Nome da Rede: ";
chomp($rede=<STDIN>);
exit(0) if ($rede eq "");
$dir = "/aplic/bin/$rede";
if (($result = mkdir ($dir)) == 0)
{
print "Rede $rede ja existe ... Deseja sobrescrever ? (s/n)";
chomp ($a=<STDIN>);
exit (0) if ($a eq "n");
exec ("rm -rf /aplic/bin/$rede/$_GET[file] ; rm -rf /aplic/coletamib/$rede/$_GET[file] ; ./coleta") if ($a eq "s");
}
else
{
# print "Diretorio $dir criado...ok\n";
}
return $rede;
}
sub defdircol
{
$dircol = "/aplic/coletamib/$rede";
if (($result = mkdir ($dircol)) == 0)
{
# print "Diretorio de coleta $dircol ja existe ... ok ... continuando...\n";
}
else
{
# print "Diretorio de coleta $dircol criado...ok\n";
}
}
############################################################################################
sub mkexec
{
$cp01="#!/usr/bin/perl";
$cp02="\$data=`(date '+%B %c')`\;";
$cp03="\@str01 = split(\" \"\, \$data)\;";
for ($x = 0; $x < @str01; $x++)
{
print "@str01[$x]\n";
}
$cp04="\$len=length(\$str01[2])\;";
$cp05="\$dia=\$str01[2]\;";
$cp06="if(\$len == 1)";
$cp07="{";
$cp08=" \@str01[2]=\"0\$dia\"\;";
$cp09="}";
$cp10="\$dircol=\"/aplic/coletamib/\"\;";
$cp11="\$nomedisp=\"$_[1]\";\$ip=\"$_[2]\";\$porta=\"$_[5]\";\$community=\"$_[4]\";\$subdircol=\"$_[0]\"\;";
$cp12="\$workdir=\"\$dircol\$subdircol\"\;";
$cp13="\$_=\$ip\;";
$cp14="\@chars = split ( /[\.]+/ )\;";
$cp15="\$nomearq=join(\"_\",\@chars)\;";
$cp16="\$arqexec=\"\$nomedisp_\$nomearq_\$porta\"\;";
$cp17="\$arqcol=\"\$nomedisp\\_\$nomearq\\_\$porta\.log\"\;";
$cp18="\$sysname=\"sysName\.0\"\;";
$cp19="\$ifinoctets=\"ifInOctets\.\$porta\"\;";
$cp20="\$ifoutoctets=\"ifOutOctets\.\$porta\"\;";
$cp21="\$ifinnucastPkts=\"ifInNUcastPkts\.\$porta\"\;";
$cp22="\$ifoutnucastPkts=\"ifOutNUcastPkts\.\$porta\"\;";
$cp23="\$ifindiscards=\"ifInDiscards\.\$porta\"\;";
$cp24="\$ifoutdiscards=\"ifOutDiscards\.\$porta\"\;";
$cp25="\$ifinerrors=\"ifInErrors\.\$porta\"\;";
$cp26="\$ifouterrors=\"ifOutErrors\.\$porta\"\;";
$cp27="\$ifinunknownprotos=\"ifInUnknownProtos\.\$porta\"\;";
$cp28="\$ifspeed=\"ifSpeed\.\$porta\"\;";
$cp29="\$ifinucastpkts=\"ifInUcastPkts\.\$porta\"\;";
$cp30="\$ifoutucastpkts=\"ifOutUcastPkts\.\$porta\"\;";
$cp31="\$pktsbroadcast=\"mib-2\.16\.1\.1\.1\.6\.\$porta\"\;";
$cp32="\$erroscrc=\"mib-2\.16\.1\.1\.1\.8\.\$porta\"\;";
$cp33="\$colisao=\"mib-2\.16\.1\.1\.1\.13\.\$porta\"\;";
$cp34="\$str02=`snmpget \$ip -c \$community -v 1 \$sysname`\;";
$cp35="\$str03=`snmpget \$ip -c \$community -v 1 \$ifinoctets`\;";
$cp36="\$str04=`snmpget \$ip -c \$community -v 1 \$ifoutoctets`\;";
$cp37="\$str05=`snmpget \$ip -c \$community -v 1 \$ifinnucastPkts`\;";
$cp38="\$str06=`snmpget \$ip -c \$community -v 1 \$ifoutnucastPkts`\;";
$cp39="\$str07=`snmpget \$ip -c \$community -v 1 \$ifindiscards`\;";
$cp40="\$str08=`snmpget \$ip -c \$community -v 1 \$ifoutdiscards`\;";
$cp41="\$str09=`snmpget \$ip -c \$community -v 1 \$ifinerrors`\;";
$cp42="\$str10=`snmpget \$ip -c \$community -v 1 \$ifouterrors`\;";
$cp43="\$str11=`snmpget \$ip -c \$community -v 1 \$ifinunknownprotos`\;";
$cp44="\$str12=`snmpget \$ip -c \$community -v 1 \$ifspeed`\;";
$cp45="\$str13=`snmpget \$ip -c \$community -v 1 \$ifinucastpkts`\;";
$cp46="\$str14=`snmpget \$ip -c \$community -v 1 \$ifoutucastpkts`\;";
$cp47="\$str15=`snmpget \$ip -c \$community -v 1 \$pktsbroadcast`\;";
$cp48="\$str16=`snmpget \$ip -c \$community -v 1 \$erroscrc`\;";
$cp49="\$str17=`snmpget \$ip -c \$community -v 1 \$colisao`\;";
$cp50="\$workdirarqcol=\"\$workdir/\$arqcol\"\;";
$cp51="open(OUTPUT,\">> \$workdirarqcol\")\;";
$cp52="\$proarq = \"\@str01\\n\$str02\$str03\$str04\$str05\$str06\$str07\$str08\$str09\$str10\$str11\$str12\$str13\$str14\$str15\$str16\$str17\$ip\\n\$porta\\n\$ip\n\"\;";
$cp53="print OUTPUT \"\$proarq\"\;";
############################################################################################
$direxec="/aplic/bin/";
$workdir="$direxec$_[0]";
$nomearq="\_$_[3]\_";
$arqexec="$workdir/$_[1]$nomearq$_[5]";
open(OUTPUT,"> $arqexec");
print OUTPUT "$cp01\n$cp02\n$cp03\n$cp04\n$cp05\n$cp06\n$cp07\n$cp08\n$cp09\n$cp10\n$cp11\n$cp12\n$cp13\n";
print OUTPUT "$cp14\n$cp15\n$cp16\n$cp17\n$cp18\n$cp19\n$cp20\n$cp21\n$cp22\n$cp23\n$cp24\n$cp25\n$cp26\n";
print OUTPUT "$cp27\n$cp28\n$cp29\n$cp30\n$cp31\n$cp32\n$cp33\n$cp34\n$cp35\n$cp36\n$cp37\n$cp38\n$cp39\n";
print OUTPUT "$cp40\n$cp41\n$cp42\n$cp43\n$cp44\n$cp45\n$cp46\n$cp47\n$cp48\n$cp49\n$cp50\n$cp51\n$cp52\n$cp53";
system("chmod 755 $arqexec");
############################################################################################
print "@_\n";

open(COLETA,">> /aplic/bin/$rede/coleta");
@coleta = ("$arqexec");
foreach $i (@coleta)
{
print COLETA $coleta [$i], "\n";
}
close(COLETA);

open(COLETATESTE, "> /aplic/bin/$rede/coletateste");
@coletateste = ("$arqexec");
foreach $i (@coletateste)
{
print COLETATESTE $coletateste [$i], "\n";
}
close(COLETATESTE);
}
defrede;
defdircol;
{
open(CRONTAB,">>/var/spool/cron/root");
@crontab = ("# Coleta MIB da rede $rede
45 * * * * /aplic/bin/$rede/coleta");
foreach $i (@crontab)
{
print CRONTAB $crontab [$i], "\n";
}
close(CRONTAB);

print "Endereco IP: ";
chomp($ip=<STDIN>);
last if ($ip eq "");
exit(0) if ($ip eq "sai");
if ($ip eq "v")
{
defrede;
next;
}
@numip = split("\.", $ip);
$a=substr($ip,0,3);
$b="10\.";
if ($a ne $b)
{
print "Endereco de rede invalido\n";
print "Precione qualquer tecla para Reiniciar: ";
chomp($reinicia=<STDIN>);
exec ("./coleta");
next;
}
$_=$ip;
@chars = split ( /[.]+/ );
$ip_=join("_",@chars);
print "Nome do Dispositivo: ";
chomp($nomedisp=<STDIN>);
next if ($nomedisp eq "");
exit(0) if ($nomedisp eq "sai");
print "Entre com a Community: ";
chomp($community=<STDIN>);
next if ($community eq "");
exit(0) if ($commynity eq "sai");

print "Numero de Portas: ";
chomp ($n=<STDIN>);
$m=1;
while ($m<=$n)
{
#print "Entre com a porta: ";
#chomp($porta=<STDIN>);
chomp($porta=$m);
next if ($porta eq "");
exit(0) if ($porta eq "sai");
@dados=($rede,$nomedisp,$ip,$ip_,$community,$porta);
mkexec (@dados);
$m=$m+1;
}

print "...........................................................\n\n";
print "Concluindo o Processo Aguarde..............................\n\n";
print "...........................................................\n";


exec ("chmod -R 777 /aplic/bin/$rede/* ; /aplic/bin/$rede/coletateste ; rm -rf /aplic/bin/$rede/coletateste ; clear");
}
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email
ricardobertulli
Usuário
Usuário


Registrado em: Jan 31, 2006
Mensagens: 110

MensagemEnviada: Sex Jul 07, 2006 2:47 pm    Assunto: Responder com Citação

algeum tem alguma dica???????????????
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email
jasonn
Administrador
Administrador


Registrado em: Oct 22, 2004
Mensagens: 2143
Localização: Salvador - Bahia

MensagemEnviada: Sex Jul 07, 2006 2:57 pm    Assunto: Responder com Citação

Me desculpe não sou muito bem entendidod de perl não mais essa linha aqui esta realmente correta???
$cp01="#!/usr/bin/perl";

Por que vc esta colocando sempre o perl?

e tambem no inicio.

#!/usr/bin/perl
_________________
Cristiano Furtado dos Santos
Gerente de Projetos de SL
Embaixador do Projeto Fedora Brasil.
Pagina Pessoal: http://jasonnfedora.eti.br
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email Visitar a homepage do Usuário Yahoo Messenger MSN Messenger
ricardobertulli
Usuário
Usuário


Registrado em: Jan 31, 2006
Mensagens: 110

MensagemEnviada: Seg Jul 10, 2006 8:51 am    Assunto: Responder com Citação

jasson é o seguinte....a rotina sub mkexec para baixo é a rotina do script que gerará outros arquivos que eu preciso, que também são em perl....o cp1 é aprimeira linha do arquivo, ocp2 a segunda e assim por diante...entao nesse caso meu arquivo gerado será:
#!/usr/bin/perl";
$data=`(date '+%B %c')`\;";
e assim por diante.....o que estou achando muito estranho é...que aqui no meu servidor funciona...em todos que eu testei funciona...mas nesse onde estou tentando expecificamente não esta funcionando.....mas valew por analisar para mim e espero mais ajuda...obrigado novamente
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    Comunidade Fedora Brasil - Índice do Fórum -> Desenvolvimento Todos os horários são GMT - 3 Hours
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.

Powered by phpBB © 2001, 2005 phpBB Group

Forums ©
_