控制器调用:
$config = [
'path' => ROOT_PATH . 'backup', //需要绝对地址
'part' => 20971520,
'compress' => 1, //1 = 压缩,0 = 不压缩
'level' => 9, //1-9, 数字越大,压缩比越高
];
//检查是否有正在执行的任务
$lock = "{$config['path']}backup.lock";
if (is_file($lock)) {
$this->error('有一个备份任务正在执行,请稍后再试!');
} else {
//创建锁文件
file_put_contents($lock, time());
}
//创建数据库备份
$Database = new \libs\Database($file, $config);
if (false == $Database->create()) {
$this->error('数据库备份创建失败!');
}
//备份表 (多个表循环)
$SuccessSum = 0;
$FailureNum = 0;
$strErrors = '';
$start = 0;
foreach ($ids as $id) {
//备份表
$status = $Database->backup($id, $start);
if (false === $status) { //出错
$FailureNum++;
continue;
} else {
$SuccessSum++;
}
}
//备份完成,清空缓存
unlink($lock);
if ($SuccessSum > 0) {
$this->success('备份成功!');
} else {
$this->error('备份失败!');
} 最佳答案