mysql自动备份的实现方法
2010.07.19 请收藏本站地址:geekfei.cn
文/蒹葭苍苍整理
让服务器每天备份一次 mysql 数据库并自动打包,同时删除 30 天前的备份文件。
1. 环境: Windows + Apache + PHP + MySQL
2. 假设 PHP 安装目录为 D:/php,MySQL 安装目录为 D:/mysql
3. 在 D:/php 下建立目录 WinRAR, 把你 winrar 安装目录下的 WinRAR.exe 和 Rarreg.key 复制到 D:/php/WinRAR
4. D:/php 下建立文件 mysql_backup.php
5. D:/php 下建立文件 mysql_backup.bat,内容只有一句
php.exe mysql_backup.php
6. 双击该 bat 文件运行,如果能备份了,下一步添加任务计划
7. 把 D:/php/mysql_backup.bat 添加到任务计划,时间自己定吧
mysql_backup.php 文件代码如下:
<?
function copyDir($dirFrom,$dirTo) {
//如果遇到同名文件无法复制,则直接退出
if(is_file($dirTo)){
echo(“无法建立目录 $dirTo\n”);
}
//如果目录不存在,则建立之
if(!file_exists($dirTo)){
mkdir($dirTo);
}
$handle = opendir($dirFrom);
//打开当前目录
readdir($handle); //排除”.”
readdir($handle); //排除 “..”
//循环读取文件
while (false !== ($file = readdir($handle))) {
//生成源文件名
$fileFrom = $dirFrom . DIRECTORY_SEPARATOR .$file;
//生成目标文件名
$fileTo = $dirTo .DIRECTORY_SEPARATOR .$file;
if(is_dir($fileFrom)){
//如果是子目录,则进行递归操作
copyDir($fileFrom,$fileTo);
}
else {
//如果是文件,则直接用copy函数复制
@copy($fileFrom,$fileTo);
}
}
}
//保存目录,路径要用反斜杠.您需要手动建立它.
//$store_folder = dirname(__FILE__).’\autobackup’;
$store_folder = ‘D:\MysqlAutoBakup’;
//用户名和密码
//该帐号须有操作[所有]的数据库及FILE的权限
//否则有些数据库不能备份.
$db_username = “root”;
$db_password = “”;
$time=time();
$nowdir = “$store_folder\\”.date(“Ymd”,$time).””;
if(is_dir($nowdir)) @rmdir($nowdir);//die(“directory exists.\n”);
if(file_exists(“$nowdir.rar”)) @unlink(“$nowdir.rar”);//die(“file exists.\n”);
@mkdir($nowdir);
$result_link=mysql_connect(“localhost”,”$db_username”,”$db_password”);
$query=mysql_list_dbs();
while($result=mysql_fetch_array($query)){
echo “dumping database `$result[Database]`,wait for a minute please…\n”;
system (dirname(__FILE__).’\..\mysql\bin\mysqldump –opt ‘.”$result[Database] -u{$db_username} “.($db_password?”-p{$db_password}”:””).” > $nowdir\\$result[Database].sql”);
}
echo “\npackage database files right now ,please wait…\n”;
system( dirname(__FILE__).”\\WinRAR\\WinRAR.exe a -ep1 -r -o+ -m5 -df \”$nowdir.rar\” \”$nowdir\” ” );
//删除 30 天前的文件
@unlink(“$store_folder\\”.date(“Ymd”,$time-86400*30).”.rar”);
echo “\nOK!\n”;
?>
免费杀毒软件似乎成为一个趋势,也相信在未来,会有越来越多的安全产品商加入免费的阵列。虽然免费产品较专业的高端产品有一段的差距,但是不可否认地世界上也存在很多需要免费产品的用户。免费成为必然,免费与收费共存更是必然。更有可能的是,未来公司企业、专业用户用的还会是付费的专业高端版本,而家庭普通消费者可能有更多的选择,比如下面十个免费杀毒软件,其中有些就已经很优秀的了。
1.Fortinet 4.1.0
杀毒软件Fortinet,中国用户称之为“飞塔”,来自美国加州Sunnyvale。Fortinet具有多层网络威胁防御体系,在监控水平和查杀能力上,并不逊于大家常用的其它免费杀毒软件。在如今杀毒软件“免费”大潮的冲击下,“飞塔”也推出了Forti Client免费版,无需任何序列号即可安装并享用全功能:防病毒、防火墙、网页过滤、广域网优化等。现提供Fortinet最新版本V 4.1.2.138多国语言版(含简体中文)下载如下——
我自己已经测试成功了的。