-
ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
کد:
<?php
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;
}
file_put_contents('db_backup.sql',$return);
}
backup_db('localhost', '*****', '*******', '******');
function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $subject, $message) {
$file = $path.$filename;
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$name = basename($file);
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$from_mail."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$header .= $content."\r\n\r\n";
$header .= "--".$uid."--";
if (mail($mailto, $subject, "", $header)) {
echo "mail send ... OK"; // or use booleans here
} else {
echo "mail send ... ERROR!";
}
}
$my_file = "db_backup.sql";
$my_path = $_SERVER['DOCUMENT_ROOT']."/";
$my_name = "raj";
$my_mail = "info@domain.com";
$my_subject = "Email Subject ";
$my_message = "Refer the attached file.";
$to_email="civilparto@yahoo.com";
mail_attachment($my_file, $my_path, $to_email, $my_mail, $my_name, $my_subject, $my_message);
unlink('db_backup.sql');
?>
دوستان وقتی فایل مربوطه رو اجرا میکنیم فایل بک اپ دیتابیس به راحتی ایمیل میشه و به صورت صحیح
اما وقتی تو کرون جاب اجراش میکنیم فایل رو خالی میفرسته .
اگر دوستان میتونن کمک کنن ممنون میشم
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
سلام، سطح دسترسی فایلتون رو بررسی کنید. عموما این مشکل از این مورد هست.
در صورتی که برطرف نشد، از wget یا curl استفاده کنید.
موفق باشید.
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
دوست عزیز دستور کرون جاب رو که صحیح کار کرد رو برای منم بفرست بی زحمت.ممنونم.
- - - Updated - - -
الان خود فایل رو هم که اجرا میکنیم باز خالی هست داخل ایمیل.دلیلش چی هست؟
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
backup_db('localhost', '*****', '*******', '******');
مشخصات دیتابیس رو وارد کردید ؟
curl http://wwwdomain.com/file.php
این هم دستور
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
بله اطلاعات دیتابیس رو وارد کردم.اما اجرا که میکنم ایمیل میکنه ولی داخل فایل db_backup.sql خالی هست!!
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
من فایلم رو در روت قرار دادم
$my_path = $_SERVER['DOCUMENT_ROOT']."/";
اگر شما تو پوشه قرار دادید مسیر درست بهش بدید
الان من دقیقا همین فانکشن ها رو استفاده میکنم و خیلی تمییز دیتابیس رو بهم میده
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
جناب فایل من داخل روت نیستش.داخل فولدر file/host قرار دادم.چطوری باید آدرس دهی کنم؟
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
خدمت شما
نقل قول:
$my_path = $_SERVER['DOCUMENT_ROOT']."/file/host";
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
نقل قول:
نوشته اصلی توسط
ruhy
خدمت شما
مسیردهی اشتباه هست دوست عزیز.فایل درست کار میکنه ها.چون تو روت میزارم درست میفرسته ایمیل رو.اما مجبورم نزارم تو روت باشه.میخوام داخل فایل فوق باشه.الان مثل دستور شما قرار دادم.اما خالیه بازم فاایلی که ارسال میکنه.
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
دوست عزیز یک آموزش می دهید کلا برای این کار!؟
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
یه دونه اسلش در اخر مسیر به ادرس اضافه کنید
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
دوست عزیز امتحان کردین که درست ایمپورت میشه دیتابیسی که بکاپ میده؟چون باید درست ایمپورت بشه خروجی که ارسال میکنه برای ما.
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
برای من که کاملا درست کار میکنه هم از نظر ایمپورت هم از نظر بکاپ
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
دوستانی که موفق شدن امکان قراردادن آموزش هست آیا ؟
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
متن کد بالا رو تو یه فایل php ذخیره کنید و ادرس ایمیل و دیگر موارد خواسته شده رو من جمله ادرس پوشه فایل رو بهش بدید و در قسمت کرون جاب هاستتون نمونه ادرس داده شده رو قرار بدید
به هر میزان فایل اجرا بشه بک اپ دیتابیس از هاستتون گرفته و به ایمیلتون ارسال میشه
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
یوزر نیم و پس دیتابیس و اینا رو کجا باید زد؟
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
مشخصات دیتابیس در اینجا:
backup_db('localhost', '*****', '*******', '******');
مشخصات ارسال ایمیل :
$my_path = $_SERVER['DOCUMENT_ROOT']."/";
$my_name = "raj";
$my_mail = "info@domain.com";
$my_subject = "Email Subject ";
$my_message = "Refer the attached file.";
$to_email="civilparto@yahoo.com";
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
نقل قول:
نوشته اصلی توسط
ruhy
مشخصات دیتابیس در اینجا:
Backup_db('localhost', '*****', '*******', '******');
مشخصات ارسال ایمیل :
$my_path = $_server['document_root']."/";
$my_name = "raj";
$my_mail = "info@domain.com";
$my_subject = "email subject ";
$my_message = "refer the attached file.";
$to_email="civilparto@yahoo.com";
یوزر و پس و اسم دیتابیس دققیا کجا باید باش.... :d
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
نقل قول:
نوشته اصلی توسط
bidari
یوزر و پس و اسم دیتابیس دققیا کجا باید باش.... :d
کد PHP:
backup_db($host, $user, $pass, $name, $tables = '*')
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
برای من هم جواب داد درست کار می کنه
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
برای من درست کار نکرد حتی اصلا ارسال نکرد
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
باید ایمیل رو سرور و همچنین توابع مربوطه فعال باشند
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
تابع mail
باید ارسال ایمیل در سرور هم فعال باشه
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
اون که فعاله
اما فک می کنم مشکل از حجم دیتابیس باشه
چون دیتابیسم بیش از 1 گیگ حجم داره
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
پیوست ایمیل نباید بیشتر از 25 مگ باشه
-
پاسخ : ارسال بک اپ دیتابیس به ایمیل توسط کرون جاب
نقل قول:
نوشته اصلی توسط
ahmad19
اون که فعاله
اما فک می کنم مشکل از حجم دیتابیس باشه
چون دیتابیسم بیش از 1 گیگ حجم داره
از remote upload در سرور دیگه استفاده کنید