Prosty backup plików i folderów na e-mail w PERL-u

Z Podręcznik Administratora by OPZ SGU
Przejdź do nawigacji Przejdź do wyszukiwania

Skrypt pakujący wskazany folder wraz ze wszystkimi podfolderami do archiwum zip a następnie wysyłający całość na e-mail.

Plik zapisać jako backup.pl

<source lang="perl">


  1. data

use DateTime; my $aktualna_data = DateTime->now();

  1. data
    1. archiwum

$temp="/tmp/temp.zip"; $zbackupuj="/home/xxx/moje_wazne_dane/";

  1. sprzątam

unlink( "$temp" );

  1. sprzatam
  # Create a Zip file
  use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
  my $zip = Archive::Zip->new();

$zip->addTree( $zbackupuj );


  # Save the Zip file
  unless ( $zip->writeToFileNamed($temp) == AZ_OK ) {
      die 'write error';
  }
  
    1. archiwum

use MIME::Lite;

my $msg = MIME::Lite->new(

   From    => 'admin@xxxx.example.com',
   To      => 'admin@xxxx.example.com',
   Subject => "backup... $aktualna_data",
   Type    => 'multipart/mixed',

);

$msg->attach(

   Type     => 'TEXT',
   Data     => "backup... $aktualna_data",

);

$msg->attach(

   Type     => 'application/zip',
   Path     => $temp,
   Filename => 'backup.zip',

);

$msg->send;

Obsługa

perl backup.pl