Jump to content


Photo

Ao Gravar Saida Para Arquivo Ele Da Espaço


  • Faça o login para participar
9 replies to this topic

#1 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 31/01/2006, 18:10

To fazendo um programinha pra configurar o clamav (anti-virus) no linux (até a instalação e configuração manual blz ....), só que no perl eu fiz assim:


#!/usr/bin/perl

print "Configurando clamav (Anti-virus):";

if(! -e '/etc/clamd.conf.wbk'){ system("cp -rf /etc/clamd.conf /etc/clamd.conf.wbk"); }

open(CLAMD,"/etc/clamd.conf");
@CLAMD=<CLAMD>;
close(CLAMD);

foreach $line(@CLAMD) {
	$line =~ s/Example/\#Example/ig;
	$line =~ s/\#LogFile \/tmp\/clamd.log/LogFile \/tmp\/clamd.log/ig;
	$line =~ s/\#LogFileMaxSize 2M/LogFileMaxSize 5M/ig;
	$line =~ s/\#LogTime/LogTime/ig;
	$line =~ s/\#LogVerbose/LogVerbose/ig;
	$line =~ s/\#User clamav/User qscand/ig;
	$line =~ s/\#ScanMail/ScanMail/ig;
	$line =~ s/\#DatabaseDirectory \/var\/lib\/clamav/DatabaseDirectory \/usr\/share\/clamav/ig;
}

open(NCLAMD, ">/etc/clamd.conf");
print NCLAMD qq~@CLAMD~;
close(NCLAMD);

print "Concluido!\n";



Ai se eu editar o arquivo /etc/clamd.conf você nota que ele colocou um espaço quando não deveria ter, por exemplo:


# -> Correto (como deve ficar o conteúdo do arquivo)
_# -> Incorreto (Como fica ao executar o código acima no shell)


Obs.: Coloquei o "_" pq o forum nõa aceita espaço no começo dos parágrafos, mas no caso ele coloca como ESPAÇO no arquivo

Ele tem que ficar sem espaço no começo das variáveis pra poder funcionar ...

Alguem sabe o que pode estar errado no código ou o que pode estar faltando?

Valeu!

#2 jgcl

jgcl

    João Gabriel C. Laass, Serra/ES

  • Usuários
  • 559 posts
  • Sexo:Não informado
  • Localidade:Serra / ES
  • Interesses:Tudo!

Posted 31/01/2006, 23:39

Tente tirar a barra (\) que vem antes do #...

Ou então, coloque outra barra... (/) antes do #...

*futuque*... heheh
João Gabriel
Site >> joaogabriel.org
CGiClube.net >> http://www.cgiclube.net
Vitória Perl Mongers >> http://vitoria.pm.org

#3 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 01/02/2006, 00:59

# = Comentário no meio do código ...

Não funcionou não (em algumas situações dava erro no shell) ... continuou com os espaços na hora de gravar as alterações de volta pro arquivo original

o ruim é que não da pra usar $line =~ s/ //ig; pra poder tirar os espaços ... que ai o programa para de conhecer as variaveis dele ...

#4 prix

prix

    Duracell: E Duram, Duram, Duram...

  • Usuários
  • 562 posts
  • Sexo:Não informado
  • Interesses:keep walking ...
    jonny walker

Posted 01/02/2006, 06:23

da sim $line =~ s/^ //ig;

^ pega so o que começa com algo.

http://en.wikipedia....ession_examples

So para informar acho q os espaços estão vindo por falta de chomp tenta fazer isso usando chomp... no foreach, e depois adicionando \n se preciso

Edição feita por: prix, 01/02/2006, 06:26.

print join'',(reverse  map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;


E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.

#5 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 01/02/2006, 10:47

hehe, até com chomp não vai ...

Seria isso né?

	open(CLAMD,"/etc/clamd.conf");
	@CLAMD=<CLAMD>;
	close(CLAMD);
	
	foreach $line(@CLAMD) {
  chomp;
  $line =~ s/Example/\#Example/ig;
  $line =~ s/\#LogFile \/tmp\/clamd.log/LogFile \/tmp\/clamd.log/ig;
  $line =~ s/\#LogFileMaxSize 2M/LogFileMaxSize 5M/ig;
  $line =~ s/\#LogTime/LogTime/ig;
  $line =~ s/\#LogVerbose/LogVerbose/ig;
  $line =~ s/\#User clamav/User qscand/ig;
  $line =~ s/\#ScanMail/ScanMail/ig;
  $line =~ s/\#DatabaseDirectory \/var\/lib\/clamav/DatabaseDirectory \/usr\/share\/clamav/ig;
  $line =~ s/^ //ig;
	}
	
	open(NCLAMD, ">/etc/clamd.conf");
	print NCLAMD "@CLAMD";
	close(NCLAMD);


To quase apelando pra comando shell ...

Tem mais alguma ideia do que possa ser?

#6 prix

prix

    Duracell: E Duram, Duram, Duram...

  • Usuários
  • 562 posts
  • Sexo:Não informado
  • Interesses:keep walking ...
    jonny walker

Posted 01/02/2006, 11:59

chomp $line;

seria so chomp se tivesse sido um while indefinido

print join'',(reverse  map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;


E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.

#7 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 01/02/2006, 12:35

He has a small problem ...

Agora colocou tudo numa só linha ... haha

### Seila #### Algo ### Variavel ...

Adicionei o \n na hora de gravar, mas não resolveu não ...

Outra sugestão?

=D

#8 ScriptsNan

ScriptsNan

    Turista

  • Usuários
  • 45 posts
  • Sexo:Não informado
  • Localidade:Brasilia DF

Posted 01/02/2006, 15:28

He has a small problem ...

Agora colocou tudo numa só linha ... haha

### Seila #### Algo ### Variavel ...

Adicionei o \n na hora de gravar, mas não resolveu não ...

Outra sugestão?

=D

open(CLAMD,"/etc/clamd.conf");
@CLAMD=<CLAMD>;
close(CLAMD);

foreach $line(@CLAMD) {
chomp($line);
$line =~ s/Example/\#Example/ig;
$line =~ s/\#LogFile \/tmp\/clamd.log/LogFile \/tmp\/clamd.log/ig;
$line =~ s/\#LogFileMaxSize 2M/LogFileMaxSize 5M/ig;
$line =~ s/\#LogTime/LogTime/ig;
$line =~ s/\#LogVerbose/LogVerbose/ig;
$line =~ s/\#User clamav/User qscand/ig;
$line =~ s/\#ScanMail/ScanMail/ig;
$line =~ s/\#DatabaseDirectory \/var\/lib\/clamav/DatabaseDirectory \/usr\/share\/clamav/ig;
$line =~ s/^ //ig;
$linhax .= "$line\n";
}

open(NCLAMD, ">/etc/clamd.conf");
print NCLAMD "$linhax";
close(NCLAMD);

#9 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 01/02/2006, 16:33

po, valeu mesmo, agora sim

#10 ScriptsNan

ScriptsNan

    Turista

  • Usuários
  • 45 posts
  • Sexo:Não informado
  • Localidade:Brasilia DF

Posted 01/02/2006, 16:41

po, valeu mesmo, agora sim

nada mid ;)
qq coisa msn!

ReNaN




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq