PDA

View Full Version : سوال: بک اپ گرفتن از دیتابیس



masiha68
جمعه 19 مهر 1392, 09:54 صبح
سلام مجدد :)
کسی از دوستان کد رو بلده که از سایت بک اپ بگره .... منظورم از تمام اطلاعات دیتابیسه

plague
جمعه 19 مهر 1392, 18:16 عصر
چرا از توی phpmyadmi نمیری export کنی ؟

masiha68
جمعه 19 مهر 1392, 19:14 عصر
من می تونم این کارو بکنم ولی مشتر که نمی تونه بره :)



یعنی تا حالا کسی یه سیستم بک اپ و ریستور واسه وبش نذاشته !!!! یا دوستان دارن کم لطفی می کنن ؟؟؟؟

.fatemeh
جمعه 19 مهر 1392, 19:55 عصر
من خودم اینکارو انجام ندادم .
ولی توی همین سایت دومورد export کردن به شکل اتوماتیک کدهایی رو دیده بودم.
فکر میکنم اگه توی گوگل یا برنامه نویس کد export رو جستجو کنی به نتیجه برسی.

masiha68
جمعه 19 مهر 1392, 20:04 عصر
من قبلا گشتم و به نتیجه نرسیدم و بازم گشت و نتایج تکرار شد.. همه دارن فقط اموزش اکپورت کردن رو توی phpmyadmin توضیح میدن !!!

plague
جمعه 19 مهر 1392, 20:05 عصر
این کار وظیفه برنامه نویس نیست و من هرچی سیستم کار کردم از طریق پنل هاست/سرور بکاپ گیری رو خودشون انجام میدن

masiha68
جمعه 19 مهر 1392, 20:10 عصر
این کار واسه خود برنامه نویس بهتره ... حداقل اگه فردا سیستم از کار افتاد می تونه بگه که اطلاعات رو باید بک اپ می گرفتین و از این جور بهونه های بنی اسرائلیی :)
در کل وقتی کد رو نمی دی دست مشتری پس هاست هم دست خودته و نمی شه ازش بخوای خودش بک اپ بگیره و حالا اگه خودت صد سایت ساخته باشی :)) باید هر ماه بری و از همه شون بک اپ بگیری .... تازه ... با همین یه گزینه ی بک اپ کلی کلاس سایتت می ره بالا ( البته اینا محض خنده بود ) ولی در کل بهتره بک اپ گیری رو بدیم دست مشتری تا اینجوری کار ما راحت تر بشه

shahriyar3
جمعه 19 مهر 1392, 20:12 عصر
من به جای شما سرچ کردم


http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/using-php-to-backup-mysql-databases.aspx
http://snipplr.com/view/173/mysql-dump/

.fatemeh
جمعه 19 مهر 1392, 20:13 عصر
این لینک ها رو ببینید شاید به درد خورد.
بکاپ گرفتن توسط کاربر (http://barnamenevis.org/showthread.php?336458-%D8%A8%DA%A9-%D8%A2%D9%BE-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%AA%D9%88%D8%B3%D8%B7-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1&highlight=%DA%A9%D8%AF+export)
نصب خودکار ... (http://barnamenevis.org/showthread.php?382450-%D9%86%D8%B5%D8%A8-%D8%AE%D9%88%D8%AF%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7%D9%86%DA%A9-%D9%88-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%AF%D8%B1-%D9%87%D8%A7%D8%B3%D8%AA-%28%D8%AD%D9%84-%D8%B4%D8%AF%29&highlight=%DA%A9%D8%AF+exporthttp://)

plague
جمعه 19 مهر 1392, 20:43 عصر
این کار واسه خود برنامه نویس بهتره ... حداقل اگه فردا سیستم از کار افتاد می تونه بگه که اطلاعات رو باید بک اپ می گرفتین و از این جور بهونه های بنی اسرائلیی :)
در کل وقتی کد رو نمی دی دست مشتری پس هاست هم دست خودته و نمی شه ازش بخوای خودش بک اپ بگیره و حالا اگه خودت صد سایت ساخته باشی :)) باید هر ماه بری و از همه شون بک اپ بگیری .... تازه ... با همین یه گزینه ی بک اپ کلی کلاس سایتت می ره بالا ( البته اینا محض خنده بود ) ولی در کل بهتره بک اپ گیری رو بدیم دست مشتری تا اینجوری کار ما راحت تر بشه

مسئله وقت و هزینه ایه که برنامه نویس باید بزاره برای کار نسبتا سنگینی که به راحتی از تو پنل هاست قابل انجامه در حالی که میشه خیلی بهتر استفاده برد از این وقت

masiha68
جمعه 19 مهر 1392, 22:08 عصر
ممنون .fatemeh و همچنین اقا شهریار(عکس جدید هم مبارک :) )

masiha68
جمعه 19 مهر 1392, 22:09 عصر
مسئله وقت و هزینه ایه که برنامه نویس باید بزاره برای کار نسبتا سنگینی که به راحتی از تو پنل هاست قابل انجامه در حالی که میشه خیلی بهتر استفاده برد از این وقت
به نظرت منطقیه ادم صدتا وب سایت رو ماهیانه بک اپ بگیره ....!!!!! در حالی که می تونه با نوشتن یه کلاس بک اپ خودشو واسه همیشه راحت کنه

shahriyar3
جمعه 19 مهر 1392, 22:35 عصر
همچنین اقا شهریار(عکس جدید هم مبارک :) )
:قهقهه: مرسی

plague
جمعه 19 مهر 1392, 23:32 عصر
به نظرت منطقیه ادم صدتا وب سایت رو ماهیانه بک اپ بگیره ....!!!!! در حالی که می تونه با نوشتن یه کلاس بک اپ خودشو واسه همیشه راحت کنه
بحث رو ادامه نمیدم چون فایده ای نداره
فقط 2 نکته :
1 - شما کلاست رو هم که بنویسی نمیتونی از یکجا آپلودش کنی و بکاپ بگیری از اونجا برای 100 تا وبسایتت باید برای هر 100 تا جدا آپلود کنی و جدا بکاپ بگیری
2 - وقتی شروع کردین به انجام متوجه صحبت های من میشید

موفق باشید

masiha68
جمعه 19 مهر 1392, 23:51 عصر
والا الان من موندم مشکل چیه !!!! به هر حال میشه واسه هر سایت یه کلاس جداگانه نوشت و اون رو توی وب گذاشت و هر بار کارابر به صورت ماهانه یا خودمون به صورت ماهانه با کرون جاب یا هر چیز دیگه ای اتومات بک اپ بگیریم ... من اینو از اونجایی می گم که مثلا واسه وردپرس یه پلاگین دادن که ماهانه از دیتابیس بک اپ می گیره و اون واستون می فرسته ... حالا من می خوام همون افزونه رو به صورت یه کلاس بنویسم ... البته شما هم تجربه تون از من بیشتره و اگه دارم یه کار بیهوده می کنم همین الان بگید که وقتم رو هدر ندم و یه تجربه رو تجربه نکنم .... بحث هم بی فایده نیست . من خودم کلی گشتم و چیز زیادی در مورد بک اپ پیدا نکردم (دو دلیل داره یا کسی نمی خواد این قسمت رو به اشتراک بذاره یا نه کلا این کاری که من می خوام انجام بدم شدنی نیست !!! )... از دید من این کاری که می کنم منطقیه ولی خب تجربه ثابت کرده که منطقی تر اینه که از تجربه های دیگران استفاده کنی
ممنون

as13851365
شنبه 20 مهر 1392, 09:12 صبح
این کد رو توی یک فایل ذخیره کنید و کرانجاب رو روی بازه های زمانی دلخواه برای این فایل تنظیم کنید تا این فایل رو اجرا کنه


با این کد بعد از ساختن بک آب اونو هم فشرده میکنه و اگر خواستید میتونید قسمت ایمیل رو هم برای این فایل تنظیم کنید که بعد از ساخت بک آب اونو ایمیل هم بکنه


<?php

function Create_zip($source, $destination,$overwrite='')
{
$zip = new ZipArchive();
if($zip->open($destination,$overwrite? ZIPARCHIVE::OVERWRITE:ZIPARCHIVE::CREATE)===TRUE)
{
$zip->addFile($source,basename($source));// Add the files to the .zip file
$zip->close(); // Closing the zip file
}
}

function backup_db($host, $user, $pass, $name, $tables = '*'){
date_default_timezone_set('Asia/Tehran');

$return = '';

mysql_connect($host,$user,$pass) or die('Connection error');
mysql_select_db($name) or die('Database error');


mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');

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

foreach($tables as $table) {
$result = mysql_query('SELECT * FROM `'.$table.'`');
$num_fields = mysql_num_fields($result);
$return .= 'DROP TABLE IF EXISTS `'.$table.'`;'.PHP_EOL.PHP_EOL;
$row = mysql_fetch_row(mysql_query('SHOW CREATE TABLE `'.$table.'`'));
$return .= $row[1].';'.PHP_EOL.PHP_EOL;

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] = str_replace('\n', '\\n', $row[$j]);
if (isset($row[$j])) {
$return .= '\''.$row[$j].'\'';
}
else {
$return .= '\'\'';
}
if ($j < ($num_fields - 1)) {
$return .= ',';
}
}
$return .= ');'.PHP_EOL;
}
}
$return .= PHP_EOL.PHP_EOL.PHP_EOL;
}
$my_file='db-'.date('Y,m,d-H,i,s');
$my_path=dirname(__FILE__).'/backup/';

$handle = fopen($my_path.$my_file.".sql",'w');

fwrite($handle, $return);
fclose($handle);

Create_zip($my_path.$my_file.".sql",$my_path.$my_file.".zip");

unlink($my_path.$my_file.".sql");

}

backup_db('host', 'username', 'pass', 'db_name');


?>

masiha68
شنبه 20 مهر 1392, 20:09 عصر
توی کد شما که قسمتیش هم واسه اقای شهرکیه یه کلاس زیپ فراخوانی شده !!!! اون کلاس رو هم اگه اتچ کنین ممنون میشم