Tüm sistemi başka bir sunucuya yedeklemeniz için PERL script.. Çok işinize yarıyacak
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='sizinmailiniz@google.com';
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'web@adresiniz.com'" or dienice("sendmai calismadi $!");
print MAIL "To: $ton";
print MAIL 'Reply-To: web@adresiniz.com';
print MAIL "Subject: $baslik";
print MAIL $sebep;
close MAIL or die("Sendmail hatasi var: $!");
}
print "Yedekleme Bitti ;)";
