$dump = '/*' . PHP_EOL; $dump .= 'Warning: Do not change the comments!!!' . PHP_EOL . PHP_EOL; $dump .= 'Tieba-Cloud-Sign Database Backup' . PHP_EOL; $dump .= 'Tieba-Cloud-Sign Version : ' . SYSTEM_VER . PHP_EOL; $dump .= 'Tieba-Cloud-Sign Name : ' . SYSTEM_NAME . PHP_EOL; $dump .= 'MySQL Server Version : ' . $m->getMysqlVersion() . PHP_EOL; $dump .= 'Date: ' . date('Y-m-d H:i:s') . PHP_EOL; $dump .= '*/' . PHP_EOL . PHP_EOL; $dump .= '-------------- Start --------------' . PHP_EOL . PHP_EOL; $dump .= 'SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";' . PHP_EOL; $dump .= 'SET FOREIGN_KEY_CHECKS=0;' . PHP_EOL; $dump .= 'SET time_zone = "+8:00";' . PHP_EOL . PHP_EOL; while ($v = $m->fetch_array($e)) { $list = $v; foreach ($list as $table) { $dump .= dataBak($table); } } $dump .= PHP_EOL . '-------------- End --------------'; $title = SYSTEM_NAME . " " . date('Y-m-d') . " 数据库备份"; $x = misc::mail($email, $title, "备份文件已附上,请查看附件", array('backup-' . date('Ymd') . '.sql' => $dump)); if ($x != true) { option::set('dl_backup_log', date('Y-m-d H:i:s') . ' 数据库备份邮件发送失败!'); ReDirect(SYSTEM_URL . 'index.php?mod=admin:setplug&plug=dl_backup&wrong'); } else { option::set('dl_backup_log', date('Y-m-d H:i:s') . ' 数据库备份邮件发送成功!'); ReDirect(SYSTEM_URL . 'index.php?mod=admin:setplug&plug=dl_backup&success'); } } } ?>
doAction('data_prebakup'); $filename = $defname . '.sql'; $fso = fopen('kl_auto_backup_and_mail_config.php', 'r'); //获取配置文件内容 $config = fread($fso, filesize('kl_auto_backup_and_mail_config.php')); fclose($fso); $patt = array("/define\\('KL_AUTO_BACKUP_AND_MAIL_LAST_BACKUP_FILE',(.*)\\)/"); $replace = array("define('KL_AUTO_BACKUP_AND_MAIL_LAST_BACKUP_FILE','" . $filename . "')"); $new_config = preg_replace($patt, $replace, $config); $fso = fopen('kl_auto_backup_and_mail_config.php', 'w'); //写入替换后的配置文件 fwrite($fso, $new_config); fclose($fso); $sqldump = ''; foreach ($tables as $table) { $sqldump .= dataBak(DB_PREFIX . $table); } $dumpfile = '#version:emlog ' . Option::EMLOG_VERSION . "\n"; $dumpfile .= '#date:' . gmdate('Y-m-d H:i', time() + $timezone * 3600) . "\n"; $dumpfile .= '#tableprefix:' . DB_PREFIX . "\n"; $dumpfile .= $sqldump; $dumpfile .= "\n#the end of backup"; @($fp = fopen($filename, 'w+')); if ($fp) { @flock($fp, 3); if (@(!fwrite($fp, $dumpfile))) { @fclose($fp); } else { @fclose($fp); kl_auto_backup_and_mail_mail_to(KL_AUTO_BACKUP_AND_MAIL_SMTP, KL_AUTO_BACKUP_AND_MAIL_PORT, KL_AUTO_BACKUP_AND_MAIL_SENDEMAIL, KL_AUTO_BACKUP_AND_MAIL_PASSWORD, KL_AUTO_BACKUP_AND_MAIL_TOEMAIL, '您的博客自动备份数据', '附件中为您的博客' . $blogname . '的自动备份数据 :)', $blogname, $filename); }