noisiv 1
noisiv
Manwe Work 1
Manwe Work
Bvural41 1
Bvural41
R 1
Roksam
mavzermete 1
mavzermete
TuZaKK 1
TuZaKK
Reklam vermek için turkmmo@gmail.com

Otomatik Database Yedeği Almak (CRON,PHP)

  • Konuyu başlatan Konuyu başlatan Hiposentez
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 9
  • Görüntüleme Görüntüleme 1K
Konuya girmeden önce herkese yararlı olacak bu konunun adminler tarafından sabitlenmesini istiyorum ... hem web siteleri hem oyun sunucuları için sql belirttiğimiz zamanlarda sql yedeği alabilme ihtimali sağlayan kodlarımız ile artık kimse günlük sql yedekleme konusunda sıkıntı çekmiyecektir.​
db-backups-post-thumb.png

Hemen dosyaları vereyim sonrasında anlatıma başlayım... [ Anlatım tamamen bana aittir. ]


Not: Dosyaların içinde anlatım mevcuttur.

İndir:
<<örnek dosya yapısı>>

database_backup.png



CRON Ayarları

Sistemin otomatik olarak çalışması için CRON ayarlarına ihtiyacımız vardır .. anlatım sırasında ben günde bir kez yedeklemesini istedim..

Dipnot: CRON ayarlarına sitenizin cpanelinden ulaşabilirsiniz.

CRON ayarları {cpanel üzerinde}

Anlatım Cpanel üzerinden yapıcam arkadaşlar , plesk sunucum yok bilgim de yok :) :m08:

Yukarıda dediğim gibi günde birkez yedeklemesini istedim , saat 24.00 da yedeklememin sebebi sitede az kişi olması nedeniyle rahat çalışma olanağı vardır.

CRON Ayarları İçin Kullanıcağımız Komut
PHP:
wget -O /dev/null http://siteadresiniz.com/sql_yedek/sqlyedek.php


cron_cpanel_1.PNG


cron_cpanel_2.PNG


cron_cpanel_3.PNG


PHP Dosyamıza geldi sıra


ilk önce kodları vereyim ;

PHP:
<?php
backup_database_tables('localhost','KULLANİCİADİ','SİFRE','DATABASEADİ', '*');

// backup the db function
function backup_database_tables($host,$user,$pass,$name,$tables)
{

	$link = mysql_connect($host,$user,$pass);
	mysql_select_db($name,$link);

	//get all of the tables
	if($tables == '*')
	{
		$tables = array();
		$result = mysql_query('SHOW TABLES');
		while($row = mysql_fetch_row($result))
		{
			$tables[] = $row[0];
		}
	}
	else
	{
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}

	//cycle through each table and format the data
	foreach($tables as $table)
	{
		$result = mysql_query('SELECT * FROM '.$table);
		$num_fields = mysql_num_fields($result);

		$return.= 'DROP TABLE '.$table.';';
		$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
		$return.= "\n\n".$row2[1].";\n\n";

		for ($i = 0; $i < $num_fields; $i++)
		{
			while($row = mysql_fetch_row($result))
			{
				$return.= 'INSERT INTO '.$table.' VALUES(';
				for($j=0; $j<$num_fields; $j++)
				{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = ereg_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ");\n";
			}
		}
		$return.="\n\n\n";
	}

	//save the file
	$handle = fopen('sqlyedegi'.'.sql','w+');
	fwrite($handle,$return);
	fclose($handle);
}
?>

Dipnot:PHP Dosyamızın Adı İle Cron Komutundaki İsim Aynı Olmalı Bunu Unutmayın.

Bunları uyguladığınız zaman sorunsuz bir şekilde sql yedeği alabileceksiniz.:ka19:



Dosya içerisindeki anlatım daha detaylıdır arkadaşlar indiren arkadaşlardan bi teşekkürü çok görmemelerini rica ediyorum.

VirusTotal Tarama Sonucu :


Dipnot: Konuyu 2 yerde açmamın nedeni hem web kodlamasıyla ilgili hem oyun veritabanı ile ilgili olduğu için diğer arkadaşlar göremeyebilir düşüncesiyle açtım.



Herkese İyi Kodlamalar.:ka19: :l04:
 

En Çok Reaksiyon Alan Mesajlar

arkadaşım hergün oyunun yedeğini almak isteyen birçok kişi var , server ip sini ve şifresini girdiğiniz zaman otomatikman serverin yedeğini alabilirsiniz.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst