Вход Регистрация
Файл: sys/fnc/backup.php
Строк: 90
<?

if (!isset($hard_process)){

    
$q=mysql_query("SELECT * FROM `cron` WHERE `id` = 'backup_mysql'");

    if (
mysql_num_rows($q)==0)mysql_query("INSERT INTO `cron` (`id`, `time`) VALUES ('backup_mysql', '".time()."')");

    
$backup mysql_fetch_assoc($q);

    if (
preg_match('#^[^@]*@[^@]*.[^@]*$#iu',$set['mail_backup']) && ($backup['time']==NULL || $backup['time']<time()-60*60*24)){

        
mysql_query("UPDATE `cron` SET `time` = '".time()."' WHERE `id` = 'backup_mysql'");

        
$hard_process=true;

        if (
function_exists('set_time_limit'))@set_time_limit(600); // Ставим ограничение на 10 минут



        
@unlink(H."sys/tmp/MySQL.sql.gz");

        
$list_tables=NULL;

        
$tab=mysql_list_tables($set['mysql_db_name']);







        for(
$i=0;$i<mysql_num_rows($tab);$i++)

        {

            
$sql=NULL;

            
$table=mysql_tablename($tab,$i);



            
$sql.="DROP TABLE IF EXISTS `$table`;rn";

            
$res=@mysql_query("SHOW CREATE TABLE `$table`");

            
$row=@mysql_fetch_row($res);

            
$sql.=$row[1].";rnrn";

            
$res = @mysql_query("SELECT * FROM `$table`");

            if (@
mysql_num_rows($res) > 0) {

                while ((
$row = @mysql_fetch_assoc($res))) {

                    
$keys = @implode("`, `", @array_keys($row));

                    
$values = @array_values($row);

                    foreach(
$values as $k=>$v) {



                        
$values[$k] = my_esc($v);

                        
$values[$k]=ereg_replace("(n|r){1,}"'n'$values[$k]);



                    }

                    
$values2 = @implode("', '"$values);

                    
$values2 "'".$values2."'";

                    
$values2str_replace("''""null"$values2);



                    
$sql .= "INSERT INTO `$table` (`$keys`) VALUES ($values2);rn";

                }



                
$sql .= "rnrn";

            }

            
$fopen_mysql=fopen(H."sys/tmp/MySQL.sql.gz",'a');

            if (
strlen($sql)<5*1024*1024)

            
fwrite($fopen_mysqlgzencode($sql,9));

            
fclose($fopen_mysql);

        }



        
$EOL="rn";

        
$subj='BackUp DCMS-Social';

        
$bound "--".md5(uniqid(time()));



        
$headers="From: "BackUP@$_SERVER[HTTP_HOST]" <BackUp@$_SERVER[HTTP_HOST]>$EOL";

        
$headers.="To: $set[mail_backup]$EOL";

        
$headers.="Subject: $subj$EOL";

        
$headers.="Mime-Version: 1.0$EOL";

        
$headers.="Content-Type: multipart/mixed; boundary="$bound"$EOL";



        
$body="--$bound$EOL";

        
$body.="Content-Type: text/plain; charset="utf-8"$EOL";

        
$body.="Content-Transfer-Encoding: 8bit$EOL";

        
$body.=$EOL;

        
$body.="Автоматическая отправка BackUp базы данных";



        
$body.="$EOL--$bound$EOL";



        
$body.="Content-Type: application/x-gzip; name="MySQL.sql.gz"$EOL";

        
$body.="Content-Disposition: attachment; filename="MySQL.sql.gz"$EOL";

        
$body.="Content-Transfer-Encoding: Base64$EOL";

        
$body.=$EOL;

        
$body.=chunk_split(base64_encode(file_get_contents(H."sys/tmp/MySQL.sql.gz")));



        
$body.="$EOL--$bound$EOL";

        
$body.="Content-Type: text/plain; name="settings_6.2.dat"$EOL";

        
$body.="Content-Disposition: attachment; filename="settings_6.2.dat"$EOL";

        
$body.="Content-Transfer-Encoding: Base64$EOL";

        
$body.=$EOL;

        
$body.=chunk_split(base64_encode(file_get_contents(H."sys/dat/settings_6.2.dat")));



        
$body.="$EOL--$bound--$EOL";



        
mail("$set[mail_backup]"'=?utf-8?B?'.base64_encode($subj).'?='$body$headers);

        
unlink(H."sys/tmp/MySQL.sql.gz");



    }

}

?>
Онлайн: 0
Реклама