ThinkPHP定时自动备份数据库(被动式计划任务)
1.在Common模块下新建以下文件
Conf ->tags.php
<?php return array( 'app_end' => array ('Behavior\CronRunBehavior'), );
Conf ->crons.php
<?php return array( 'cronname' => array('DbBak', 1, 60), ); ?>
Cron->DbBak.php
<?php import("Common.Cron.DbBackup"); //------1. 数据库备份(导出)------------------------------------------------------------ //分别是主机,用户名,密码,数据库名,数据库编码 $db = new DbBackup(C('DB_HOST'), C('DB_USER'), C('DB_PWD'), C('DB_NAME'), 'utf8'); // 参数:备份哪个表(可选),备份目录(可选,默认为backup),分卷大小(可选,默认2048,即2M) $db->showInfo = false; $result = $db->backup('', '', ''); file_put_contents('./backup/log/' . time() . '.json', json_encode($result));
Cron->DbManage.class.php
2.在根目录下新建 backup/log(可写权限)
3.根目录下新建.htaccess或在.htaccess文件后追加
<Files ~ "\.sql$"> Order allow,deny Deny from all </Files>
源码下载