Descrição
Script em Perl que move arquivos acima de 1Mb para outro diretorio. Esse script foi feito por mim para uma funcionalidade especifica ,
no entanto, ele pode ser usado como um exemplo para seu uso.
[ Download:
move.pl ]
[
Enviar nova versão ]
[ Esconder código-fonte ]
#!/usr/bin/perl
# Script que move arquivos maiores que 1 Mb
# para outro diretorio.
#
# move.pl
# carlos_lnx@ibest.com.br
#
use strict;
# Verifica se PID existe:
if (-e "/tmp/PID-longa") {
my $pidi = `/bin/cat /tmp/PID-longa`;
print("O programa nao pode ser executado, ja esta rodando com a PID = $pidi\n");
print("Deseja matar o processo numero $pidi ? [s/n] ");
my $proc = <STDIN>;
chop $proc;
if ($proc eq "s") {
system("/bin/kill -9 $pidi");
unlink("/tmp/PID-longa");
print("Killed!\n");
}
exit(1);
}
# Vai pra background:
print ("Estou em background...\n");
fork and exit;
# Cria arquivo com a PID do processo para futura verificacao:
my $child = $$;
open(FIL, ">/tmp/PID-longa") or die "NAO FOI POSSIVEL ESCREVER NO DIRETORIO /tmp, $!";
print(FIL "$child");
close(FIL);
while (true) {
# Recebe listagem de /u1/titan-prt/prt_laser_1:
my @arquivos = `/bin/ls /u1/titan-prt/prt_laser_1` ;
foreach (@arquivos) {
# Retira ultimo caractere (enter):
chop $_;
# Verifica tamanho do arquivo com precisao:
my $size = -s "/u1/titan-prt/prt_laser_1/$_";
# Move arquivo caso ele seja >= 1048576, 1 MegaByte senao imprime:
if ($size >= 1048576) {
system("/bin/mv /u1/titan-prt/prt_laser_1/$_ /u1/titan-prt/prt_longa/")
}
else {
system("/etc/lprint /u1/titan-prt/prt_laser_1/$_");
unlink("/u1/titan-prt/prt_laser_1/$_") or die "$!";
}
}
# Dorme por um segundo:
sleep(1);
}
#EOF
Scripts recomendados
Journaling de arquivos
Usando ARGV como login
Script para adicionar e remover usuários no IMSPECTOR
Adiciona-Altera senhas/usuarios no sistema
Conversão de textos UTF-8 para ISO8859-1
Comentários
| Nenhum comentário foi encontrado. |