[Cascavel-pm] Zipando arquivos no servidor.
Luis Campos de Carvalho
monsieur_champs em yahoo.com.br
Sexta Outubro 22 09:46:45 CDT 2004
----- Original Message -----
From: "João Gabriel" <jamorreu em gmail.com>
Sent: Monday, October 18, 2004 5:43 PM
> Fala pessoal!
>
> Me passaram esse código para zipar arquivos no servidor:
>
> TAR:
> tar -cvzf nome.tar.gz pastas arquivos etc
>
> ZIP:
> zip -r nome.zip arquivos pastas etc
>
> Logo, usei o comando system para executados, e fiz o seguinte teste:
>
> Para zipar como tar usei:
> (vai zipar a pasta fórum e esse arquivo tera o nome de teste.tar.gz)
> >>> system("tar -cvzf teste.tar.gz forum")
>
> Para zipar como zip usei:
> (vai zipar a pasta fórum e esse arquivo tera o nome de teste.zip)
> >>> system("tar -cvzf teste.zip forum")
>
> Porém nenhum dos códigos funcionaram e a página não deu erro.
> Alguém sabe o porque do código não ter funcionado?
>
JG, você deve preferir as bibliotecas de criação em Perl.
Já as indiquei no post anterior.
Se você roda o comando system, deve se lembrar de verificar erros,
através de $?, que contém o status do último comando executado
(lembre-se de que comandos unix executados com sucesso retornam "0", que
é FALSO para o Perl!!!)
Isto deve funcionar para você:
#
# run_command( $programa, @argumentos )
#
sub run_command{
# coleta argumentos
my $program = shift;
my @args = @_;
# Executa programa
system $program, @args;
# Verifica status de saída, reporta erros
if ($? == -1) {
print "Execução falhou: $!\n";
} elsif ($? & 127) {
printf "Processo morreu com sinal %d, %s coredump\n",
($? & 127), ($? & 128) ? 'with' : 'without';
} else {
printf "Processo saiu com valor %d\n", $? >> 8;
}
}
Espero que isso te ajude.
Putamplexos!
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Luis Campos de Carvalho is BSc in Comp Science,
PerlMonk [SiteDocClan], Cascavel-pm Moderator,
Unix Sys Admin && Certified Oracle DBA
http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mais detalhes sobre a lista de discussão Cascavel-pm