Kayıt: Mar 16, 2006 Mesajlar: 1640 Konum: Bende Bilmiyorum !
Tarih: 2006-08-29, 23:00:28 Mesaj konusu: Mysql yedegını 5 Günde Bir Aldırıp Otomatik Emailime gonder
BEN ŞU KODLA MYSLQ ' UN YEDEGINI ALMAK VE MESELA 5 GÜNDE 1 OTOMATİK MAİLİME YOLLAMAK ISTIYORUM YANI 5 GUNDE BİR KENDI KENDINE YEDEK ALSIN VE MAİLİME YOLLASIN ! BU MÜMKÜN MÜ ACABA ?
Kod:
<?php
// Ayarlar
$saatfarki = 0;
$tarihsaat = date("d-m-Y H:i:s",(time()+3600*$saatfarki));
$tarih=date("dmY",(time()+3600*$saatfarki));
$site="site"; //site adı
$cpanel_user="site.net"; //site user name (cpanel kullanıcı adı)
$dizin="/home/httpd/vhosts/$cpanel_user/private"; // yedek alınacak dizinin adı
$yedek_dosya='backup-'.$tarih.'sql.gz'; // yedek dosyasının adı
$dosya_sil='evet'; // yedek oluşturulduktan sonra eski yedek dosyaları silinsin mi?
$yedek_sil='hayır'; // oluşturulan yedek dosyası silinsin mi?
$email_gonder='evet'; // yedek alındığında e-mail gönderilsin mi?
$dosya_gonder='evet'; // yedek, emaile gönderilsin mi?
$dbuser='user_user'; // veritabanı kullanıcı adı
$dbpass='user_pass'; // veritabanı kullanıcı şifresi
$dbname='user_db'; // veritabanı adı
$dosya_adres="$dizin/$yedek_dosya";
// yedeğin alındığını bildiren email gönder
if ($email_gonder=='evet') {
$headers="MIME-Version: 1.0\n";
$headers.="Content-type: text/html; charset=iso-8859-9\n";
$headers.="X-Mailer: PHP\n";
$headers.="X-Sender: <PHP>\n";
$headers.="From: <$kimden>\n";
$headers.="Return-Path: <$kimden>\n";
$mesaj=$gonderme_tarihi.' tarhinde alınan '.$site.' MySQL veritabanı yedeği '.$dizin.' dizini içindeki '.$yedek_dosya.' dosyasıdır.';
mail($kime,$baslik,$mesaj,$headers);
}
// eski yedek dosyalarını sil
if ($dosya_sil=='evet') {
chdir($dizin);
$link=@opendir($dizin);
if(!$link){
echo 'Belirtilen isimde bir klasör bulunamadı veya belirtilen yol yanlış!';die();
}
else {
while($dosya=readdir($link)){
if ($dosya!='.' && $dosya!='..' && $dosya!=$yedek_dosya && is_file($dosya)){
unlink($dosya);
}
}
closedir($link);
}
}
// yedek dosyasını e-maile gönder
if ($dosya_gonder=='evet') {
$TEXT="";
$HTML='<b>'.$gonderme_tarihi.'</b> tarhinde alınan<b> '.$site.'</b> MySQL veritabanı yedeği<br><b> '.$dizin.'</b> dizini içindeki <b>'.$yedek_dosya.' </b>dosyasıdır.';
#$ATTM=array("/home/myself/test/go.jpg", "/home/myself/test/SomeDoc.pdf");
$ATTM=array($dosya_adres);
SendMail( "$kimden","$kimden_isim", "$kime","$kime_isim",$baslik,$TEXT,$HTML,$ATTM);
//echo $HTML;
}
// yedek dosyasını sil
if ($yedek_sil=='evet') {
chdir($dizin);
$link=@opendir($dizin);
if(!$link){ echo 'Belirtilen isimde bir klasör bulunamadı veya belirtilen yol yanlış!';die(); }
else { unlink($yedek_dosya); }
closedir($link);
}
/*
This might be some useful stuff to send out emails in either text
or html or multipart version, and attach one or more files or even
none to it. Inspired by Kieran's msg above, I thought it might be
useful to have a complete function for doing this, so it can be used
wherever it's needed. Anyway I am not too sure how this script will
behave under Windows.
{br} represent the HTML-tag for line break and should be replaced,
but I did not know how to not get the original tag parsed here.
function SendMail($From, $FromName, $To, $ToName, $Subject, $Text, $Html, $AttmFiles)
$From ... sender mail address like "my@address.com"
$FromName ... sender name like "My Name"
$To ... recipient mail address like "your@address.com"
$ToName ... recipients name like "Your Name"
$Subject ... subject of the mail like "This is my first testmail"
$Text ... text version of the mail
$Html ... html version of the mail
$AttmFiles ... array containing the filenames to attach like array("file1","file2")
*/
function SendMail($From,$FromName,$To,$ToName,$Subject,$Text,$Html,$AttmFiles){
$OB="----=_OuterBoundary_000";
$IB="----=_InnerBoundery_001";
$Html=$Html?$Html:preg_replace("/\n/","{br}",$Text)
or die("neither text nor html part present.");
$Text=$Text?$Text:"Sorry, but you need an html mailer to read this mail.";
$From or die("sender address missing");
$To or die("recipient address missing");
//Messages start with text/html alternatives in OB
$Msg ="This is a multi-part message in MIME format.\n";
$Msg.="\n--".$OB."\n";
$Msg.="Content-Type: multipart/alternative;\n\tboundary=\"".$IB."\"\n\n";
// html section
$Msg.="\n--".$IB."\n";
$Msg.="Content-Type: text/html;\n\tcharset=\"iso-8859-1\"\n";
$Msg.="Content-Transfer-Encoding: base64\n\n";
// html goes here
$Msg.=chunk_split(base64_encode($Html))."\n\n";
Bununla ilgili bir Addon olması gerek şu an dosyalar bölümünde var mı bilmiyorum.Dur bi bakalım...Orda yokmuş bende elimde olanı yükledim..Yanlız denemedim nasıl çalışıyor diye söyleyim.
Deneyen arkadaşlar varsa yorum yazabilirlermi?
Bu arada mail ile yollanacak sql dosyanın da fazla büyük olması sorun yaratmaz mı arkadaşlar? Tabii ona göre de mail free kota lazım
arkadaslar bunun icin mysqldumper iisimli program var bunun sayesinde her saat db ni kopyaliyor ve ftp ye atiyor tabi istiyorsan emaile de gönderiyor google de aratin
yaa arkdaşım o proğramda ben otomatik göndermeyi açamadım yaaa bulamadım nerden yapacağımı kendim yedek aldığımda mailime gönderdi ama otomatik yedek alması için bi yerde ayar göremedim bana yardımcı olurmusun
Tarih: 2007-04-01, 18:36:03 Mesaj konusu: Re: Mysql yedegını 5 Günde Bir Aldırıp Otomatik Emailime gon
1.mysqldumper sayfasina gir
2.menüden backup tikla daha sonra backup perl tikla
3.absolute_path_of_configdir altindakini kopyala
4.crondump.pl dosyasini ac
5.ara my $absolute_path_of_configdir="";
6."" bunun arasina3 te kopyaladigini buraya yapistir
7.kayit et
8.crondump.pl ve kasördeki diger dosyalari cgi-bin klasörüne ascii-modunda gönder
9.tüm dosyalari chmod 755 yap
10.mysqldumper sayfasina git ayarlar/cronscript perlscript in alanina /cgi-bin/ yaz kayit et
11.backup sayfasina git backup perl tikla perlscript test tikla hersey tamam olmasi lazim eger hata verirse ayarlarda yanlis yapmisindir kontrol et
bunu otomatik yapalim hostunuzda cronjob servisi varsa ordan ayarlari yapin nezaman kac satte gün vs ve yukardaki linki verin eger cronjob servisiniz yoksa googlede yazin bu servisi sunan birsürü site var
kolay gelsin
çok sağol arkadaşım ben sorunu az önce burayı okumadan önce çözdüm yaptım tam buraya yazacaktım yinede çok teşekkürler ilgilendiğin için başka arkadaşlara büyük yararı oalcaktır
Bu forumda yeni başlıklar açamazsınız Bu forumdaki başlıklara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız