日期:2014-03-08  浏览次数:20448 次

一般来说虚拟主机备份数据库是一件比较麻烦的事情。为了方便,我自己写了一个简单的办法用于备份MYSQL的数据库。
PHP代码:

<?
/**
* 虚拟主机备份程序
* 编程:Boban<boban@21php.com>
* 讨论:<a href="http://www.21php.com/forums/" target="_blank">http://www.21php.com/forums/</a>
* 更新:2004-02-02
* 使用说明
* 1. 更改MYSQL连接的参数,$dbuser,$dbpass,$dbname
* 2. 用FTP登录,建立一个备份数据的专用目录,更改属性为777
* 3. 通过浏览器访问这个程序,如果mysqldump的路径不对,请自行更改(默认:/usr/bin/mysqldump)
* */

set_time_limit(900);
$today = date("_Y_m_d");
$dbuser = "root";
$dbpass = "";
$dbname = "www_21php_com";

$servername = $_SERVER['SERVER_NAME'];
$servername = str_replace('.','_',$servername);
//echo $servername;
$docroot = getcwd();

echo system("locate mysqldump");
echo "<br>";

// 删除备份文件
system("rm ./*.gz");
system("rm ./*.sql");

// 开始备份
system("/usr/bin/mysqldump --opt $dbname --user='$dbuser' --password='$dbpass' >'./$servername$today.sql'",$r1);
if($r1==0) echo "MYSQL数据备份成功<br>";
else echo "备份失败<br>";
system("gzip ./$servername$today.sql",$r2);
if($r2==0) echo "MYSQL数据压缩成功<br>";
else echo "备份失败<br>";
system("tar -czf './$servername$today.tar.gz' '$docroot/../'",$r3);
if($r3==0) echo "网站($docroot)备份成功<br>";
else echo "备份($docroot)失败<br>";
?>