我正在为我的项目创建一个备份脚本,该脚本将通过 cron 执行。
现在我正在使用:
<?php
include("config.php");
/* Misc */
$pathtobackup = realpath('.');
$backupfolder = realpath("backup");
$sqlfilename = "SQLDUMP-".date("d-m-Y--H-i").".sql";
$backupfilename = "BACKUP-".date("d-m-Y--H-i").".zip";
$backupfilepath = $backupfolder."/".$backupfilename;
/* Systemcall */
exec("/usr/bin/mysqldump -u{$mysqluser} -p{$mysqlpw} -h {$mysqlserver} {$mysqldb}", $sqldata, $fp);
$sqldump = implode("\n", $sqldata);
if ($fp!=0){
die("could not create mysql dump\n");
}
/* Create Zip */
$zip = new ZipArchive();
if ($zip->open($backupfilepath, ZIPARCHIVE::CREATE)!==TRUE) {
die("cannot open <{$backupfilepath}>\n");
}
$path = realpath('.');
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathtobackup, FilesystemIterator::SKIP_DOTS));
foreach($iterator as $name=>$object){
$zip->addFile($name);
}
$zip->addFromString($sqlfilename, $sqldump);
if ($zip->close()!==TRUE) {
die("cannot write <{$backupfilepath}>\n");
}
?>
但我想用纯 PHP 创建 MySQL Dump 以使其更兼容并能够在其他服务器上使用它,而其他服务器无法使用system
和mysqldump
.
我希望您知道不使用 150 文件库的解决方案 :)
问候,弗雷德里克