تبلیغات در اینترنت

تبلیغات در اینترنتگیفت کارت گوگل پلی
نمایش نتایج: از 1 به 7 از 7

مقاله: بکاپ گیری با زمانبندی از دیتابیس و ارسال فایل بکاپ ب ایمیل شما ;)

    1. بکاپ گیری با زمانبندی از دیتابیس و ارسال فایل بکاپ ب ایمیل شما ;) »

      بکاپ گیری با زمانبندی از دیتابیس و ارسال فایل بکاپ ب ایمیل شما ;)

      نگارش: , by (مدیر بازنشسته)
      2014/08/08 11:29 PM
      امتیاز: 

      سلام ...

      یک فایل با نام دلخواه و پسوند .php ایجاد کنید و کد زیر رو درونش قرار بدید .

      مشخصات دیتابیس رو قرار بدید و ب جای آدرس ایمیل من ، ایمیل خودتون رو بزارید ...

      میتونید با استفاده از کنترل پنل هاست یک cronjob هم تعریف کنید ک مثلا هر ۲۴ ساعت یکبار این فایل اجرا شه ...

      در هر بار اجرا ، یک بکاپ از دیتابیس ب ایمیلی ک وارد کردید ارسال میشه ...

      کد PHP:
      <?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 "[email protected]";
      $my_subject "Email Subject ";
      $my_message "Refer the attached file.";
      $to_email="[email protected]";
        
      mail_attachment($my_file$my_path$to_email$my_mail$my_name$my_subject$my_message);
      unlink('db_backup.sql');
      ?>

      نکته (۱) : اگر میخواید بصورت cron اجرا کنید ب جای get یا php از دستور curl استفاده کنید .

      نکته (۲) : این روش برای دیتابیس های حجیم اصلا توصیه نمیشه و اگر حجم دیتابیس شما بالاست از پنل هاست برای بکاپ گیری استفاده کنید .


      با تشکر ...
  1. Top | #2
    کاربر سایت

    ورژن ویبولتین
    4.2.0
    نوشته ها
    769
    میزان امتیاز
    98

    پیش فرض

    ممنون
    دستوری که باید در cron jobz در سی پنل تایپ بشه رو برای ما مبتدی ها قرار بدید لطفا !

    این که میگید از curl استفاده کنید به طور مثال فقط کافیه در کرون جابز کد زیر رو بزنیم یا دستور شامل پارامتر های دیگری هم هست ؟

    کد:
    curl public_html/backup/backup.php

  2. Top | #3
    مدیر بازنشته

    ورژن ویبولتین
    4.x
    نوشته ها
    3,437
    میزان امتیاز
    446

    پیش فرض

    نقل قول نوشته اصلی توسط viiictor نمایش پست ها
    ممنون
    دستوری که باید در cron jobz در سی پنل تایپ بشه رو برای ما مبتدی ها قرار بدید لطفا !

    این که میگید از curl استفاده کنید به طور مثال فقط کافیه در کرون جابز کد زیر رو بزنیم یا دستور شامل پارامتر های دیگری هم هست ؟

    کد:
    curl public_html/backup/backup.php
    اگر اسم فایل شما backup.php باشد ، فرم کلی ب شکل زیر خواهد بود :

    کد:
    php -q /your_abolute_path/backup.php
    کد:
    wget http://your_domain_com/backup.php
    کد:
    curl http://your_domain_com/backup.php

    2 تشکر توسط:


  3. Top | #4
    کاربر سایت

    ورژن ویبولتین
    4.2.0
    نوشته ها
    769
    میزان امتیاز
    98

    پیش فرض

    در کرون از curl و اگر بخوایم توسط یک فایل php دیگه اجرا کنیم از get و php
    درسته آیا ؟

    ممنون آموزش مفیدی هست

  4. Top | #5
    مدیر بازنشته

    ورژن ویبولتین
    4.x
    نوشته ها
    3,437
    میزان امتیاز
    446

    پیش فرض

    نقل قول نوشته اصلی توسط viiictor نمایش پست ها
    در کرون از curl و اگر بخوایم توسط یک فایل php دیگه اجرا کنیم از get و php
    درسته آیا ؟

    ممنون آموزش مفیدی هست
    در wget و curl شما باید لینک فایل رو بزارید و در php -q باید مسیر فایل رو سرور رو مشخص کنید .

  5. Top | #6
    کاربر سایت

    ورژن ویبولتین
    4.2.2
    نوشته ها
    928
    میزان امتیاز
    99

    پیش فرض

    نقل قول نوشته اصلی توسط OmidX نمایش پست ها
    سلام ...

    یک فایل با نام دلخواه و پسوند .php ایجاد کنید و کد زیر رو درونش قرار بدید .

    مشخصات دیتابیس رو قرار بدید و ب جای آدرس ایمیل من ، ایمیل خودتون رو بزارید ...

    میتونید با استفاده از کنترل پنل هاست یک cronjob هم تعریف کنید ک مثلا هر ۲۴ ساعت یکبار این فایل اجرا شه ...

    در هر بار اجرا ، یک بکاپ از دیتابیس ب ایمیلی ک وارد کردید ارسال میشه ...

    کد PHP:
    <?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 "[email protected]";
    $my_subject "Email Subject ";
    $my_message "Refer the attached file.";
    $to_email="[email protected]";
      
    mail_attachment($my_file$my_path$to_email$my_mail$my_name$my_subject$my_message);
    unlink('db_backup.sql');
    ?>

    نکته (۱) : اگر میخواید بصورت cron اجرا کنید ب جای get یا php از دستور curl استفاده کنید .

    نکته (۲) : این روش برای دیتابیس های حجیم اصلا توصیه نمیشه و اگر حجم دیتابیس شما بالاست از پنل هاست برای بکاپ گیری استفاده کنید .


    با تشکر ...

    omid جان ممنون از اموزش خوبتون. نشد امیاز بدم بهتون. فقط کاش یکبارم کل کد رو مشکی و جاهایی که باید عوض شه به رنگ قرمز بزارید که ما تازه کارها اشتباه نریم مسیر رو. ممنون ازت

  6. Top | #7
    کاربر سایت

    ورژن ویبولتین
    3
    نوشته ها
    2
    میزان امتیاز
    0

    پیش فرض

    واقعا ممنونم من خیلی وقت بود دنبال همچین چیزی بودم

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کسانی که این مقاله را دیده اند از این مقاله ها نیز بازدید کرده اند

  1. پاسخ: 13
    آخرين نوشته: 2015/07/05, 02:43 PM
  2. پاسخ: 33
    آخرين نوشته: 2014/01/15, 11:39 AM
  3. مشکل دیتا بیس ارور پس از تغییر collition در دیتابیس
    توسط ortegoli2010 در انجمن پرسش و پاسخ
    پاسخ: 8
    آخرين نوشته: 2013/10/30, 10:14 PM
  4. پاسخ: 7
    آخرين نوشته: 2013/10/19, 03:41 PM
  5. پاسخ: 1
    آخرين نوشته: 2012/08/21, 08:15 AM

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •