Created
January 15, 2011 00:26
-
-
Save flaviolopes/780559 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl | |
use strict; | |
use warnings; | |
use 5.010; | |
use Archive::Tar; | |
use File::Find; | |
use Date::Simple (':all'); | |
# Define quais diretorios entrarao no backup: | |
my @diretorios = qw{ | |
/home/flavio/temp | |
/home/flavio/Documentos | |
}; | |
# Define a data de geracao do backup e sua formatacao | |
my $date = Date::Simple->new(today); | |
my $data_backup = $date->format("%d-%m-%Y"); | |
my $dia_da_semana = $date->day_of_week(); | |
if ( $dia_da_semana == 0 ) | |
{ # Se o dia da semana for ZERO (Domingo), então faz o Full | |
## Define as variáveis do Backup Full: | |
# Define qual o destino do backup FULL | |
my $destino = "/home/flavio/destino_full/"; | |
# Define o prefixo do nome | |
my $prefixo = "Imagens-Full_"; | |
# Concatena as variaves | |
my $backup_nome = "$destino" . "$prefixo" . "$data_backup" . ".tar.bz2"; | |
## Remove Backups antigos antes de gerar o novo backup | |
find( \&remove_bkp_antigo, $destino ); | |
## Gera o Backup FULL | |
my $tar = Archive::Tar->new; | |
$tar->add_files(@diretorios); | |
$tar->write( "$backup_nome", COMPRESS_BZIP ); # compressao em bzip2 | |
} | |
else { # Caso contrario faz o Incremental | |
find( \&busca, @diretorios ); | |
my @arquivos; | |
sub busca { | |
if ( -f $File::Find::name ) { | |
push( @arquivos, $File::Find::name ) if 1.0 > -M; | |
# Aqui o "1.0" representa o número de dias | |
# Por exemplo se fossemos buscar dos últmos 2 dias: "2.0" | |
} | |
} | |
## Define as variáveis do Backup Incremental: | |
# Define qual o destino do backup INCREMENTAL | |
my $destino = "/home/flavio/destino_incremental/"; | |
# Define o prefixo do nome | |
my $prefixo = "Imagens-Incremental_"; | |
# Concatena as variáveis | |
my $backup_nome = "$destino" . "$prefixo" . "$data_backup" . ".tar.bz2"; | |
## Remove Backups antigos antes de gerar o novo backup | |
find( \&remove_bkp_antigo, $destino ); | |
## Gera o Backup INCREMENTAL | |
my $tar = Archive::Tar->new; | |
$tar->add_files(@arquivos); | |
$tar->write( "$backup_nome", COMPRESS_BZIP ); # compressao em bzip2 | |
} | |
### Sub que remove backups antigos | |
sub remove_bkp_antigo { | |
if ( -f $File::Find::name ) { | |
unlink $_ if 8.0 > -M; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment