Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: TUDO AZUL....
Por ZIPPO
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Carlos Carvalho em 14/07/2004    [ 3066 hits ]

Login: h4sh, 100066 pontos

   


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
   Script Linux recomendado Journaling de arquivos
   Script Linux recomendado Usando ARGV como login
   Script Linux recomendado Script para adicionar e remover usuários no IMSPECTOR
   Script Linux recomendado Adiciona-Altera senhas/usuarios no sistema
   Script Linux recomendado Conversão de textos UTF-8 para ISO8859-1

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.