move.pl
Publicado por Carlos Carvalho 14/07/2004
[ Hits: 5.640 ]
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.
#!/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
Eliminando caracteres indesejados
Conversão de textos UTF-8 para ISO8859-1
Script que procura uma palavra em um arquivo.
Inserindo sites em Lista do Squid
Nenhum comentário foi encontrado.
librePods: liberte seus AirPods em 2026
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Configurar aviso da temperatura da CPU no Conky
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Conky não mostra temperaturas da CPU no notebook (14)
Registro do 'last&qu... errado [RESOLVIDO] (9)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (2)









