Tüm sistemi başka bir sunucuya yedeklemeniz için PERL script.. Çok işinize yarıyacak

Yorumlar · 565 Görüntüler

Tüm sistemi başka bir sunucuya yedeklemek PERL script.

Bu perl script ne yapar ?

 

* Veritabanınızı ve belirttiğiniz dosyaları , klasörleri sıkıştırıp başka bir sunucuya yedekler.. Bir sorun olduğunda ise sizi mail ile uyarır. 

Kırmızı ile belirtilmiş alnaları değiştirmeniz halinde sorunsuz çalışacaktır.

 

#!/usr/bin/perl -w

use strict;

use Net::FTP;

my $server="yedekalinacakserver.com";

my $user="ftpkullanici";

my $password="ftpsifreniz";

my $dir="";

my $file="/tmp/yedek.tar.gz";

my $success="true";

my $filetran="true";

print "Yedekleme basladi.. Bekleyiniz..";

#Bu satirda tablolaru mysqldump ile aliyoz

`/bin/mysqldump -h veritabanihost -u veritabanı_kullanici_adi -pŞifre -Aal /etc/veritabani_yedek.sql`;

# Önemli klasorlerinizi birden fazla belirtip tmp klasörüne paketliyoruz.

`tar cvf /tmp/yedek.tar /etc  /home/resimler /home/www/html /home/www/ornek; gzip --force --best /tmp/yedek.tar`;

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($file) or $filetran="false";

$ftp-quit;

my $sebep;

my $test="true";

if ($success eq "false"){$sebep .="Başarısız ftp girişn.";

       $test="false";}

if ($filetran eq "false"){$sebep .="Başarısızız dosya transferin.";

       $test="false";}

if ($test eq "false") {

       my $baslik="Server Yedekleme Hatası !";

       my $to='[email protected]';

       BEGIN {

               $ENV{PATH}="/bin:/usr/bin";

               delete @ENV{qw(IFS CDPATH ENV BASH_ENV) };

               }

       open MAIL,"| /usr/lib/sendmail -t -i -F'adresiniz.com' -f'[email protected]'" or dienice("sendmai calismadi $!");

       print MAIL "To: $ton";

       print MAIL 'Reply-To: [email protected]';

       print MAIL "Subject: $baslik";

       print MAIL $sebep;

       close MAIL or die("Sendmail hatasi var: $!");

}

print "Yedekleme Bitti ;)";

 

 

 

Yorumlar