backupdb.pl – effettua dump database (server con shell)

#!/usr/bin/perl

use strict;
use warnings; # replaces -w, but much better
use Net::FTP;

# Time vars per impostare ora del dump
my @timevars = localtime();

# Variabili per connessione FTP al server madre
my $server=”ftp.******”;
my $user=”*****”;
my $password=”*****”;
my $dir=”www.***.***/backup”;
my $db=”/home/**********/<dir_application>/tmp/<name_application>$timevars[6]_$timevars[2].sql.gz”;
my $success=”true”;
my $db_tran=”true”;

#This dumps the mysql tables for backup
`/usr/bin/mysqldump -u<user> -p<password> –opt <nome_db> | gzip > /home/**********/<dir_application>/tmp/<name_application>$timevars[6]_$timevars[2].sql.gz`;

my $ftp=Net::FTP->new($server) or $success=”false”;

$ftp->login($user, $password) or $success=”false”;
$ftp->pasv() or $success=”false”;
$ftp->binary() or $success=”false”;
$ftp->cwd($dir) or $success=’false’;
$ftp->put($db) or $db_tran=”false”;
$ftp->quit;

my $reason;
my $test=”true”;

if ($success eq “false”){$reason .=”Unsuccessful login\n\n”;
$test=”false”;}
if ($db_tran eq “false”){$reason .=”Unsuccessful file transfer db\n\n”;
$test=”false”;}

if ($test eq “false”) {
my $subject=”Backup on <nome_server> Failed !”;
my $to=’******@******.**’;

BEGIN {
$ENV{PATH}=”/bin:/usr/bin”;
delete @ENV{qw(IFS CDPATH ENV BASH_ENV) };
}
open MAIL,”| /usr/lib/sendmail -t -i -F’<dominio_server>‘ -f’HostingLinux\@<dominio_server>‘” or dienice(“Couldn’t open sendmail $!”);
print MAIL “To: $to\n”;
print MAIL “Reply-To: HostingLinux\@<dominio_server>\n”;
print MAIL “Subject: $subject\n\n”;
print MAIL $reason;
close MAIL or die(“Error closing sendmail: $!”);
}

Lascia un commento