meinen Respekt vor der hier (von allen) geleisteten Arbeit [ external image ](seriös gemeint).
Für die Dokumentation hätte ich ggf. noch 2 Scripts, die ich freundlicher Weise von cmb bekam.
Sie werden in der userfunctions.php eingetragen:
Code: Select all
function fullBackup()
{
global $pth, $o;
$archive = new ZipArchive();
$archive->open(
'../../../backup/Sicherung-' . date('Ymd'). '.zip',
ZipArchive::CREATE
);
$it = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($pth['folder']['base'])
);
$it->rewind();
while ($it->valid()) {
if (!$it->isDot() && $it->key() != $pth['folder']['base'] . 'backup.zip') {
$archive->addFile($it->key(), $it->getSubPathName());
}
$it->next();
}
$archive->close();
}
if (XH_ADM && isset($_GET['backup'])) {
fullBackup();
}
Code: Select all
function fullBackup()
{
global $pth, $o;
$maxsize = 64000000;
$part = 1;
$date = date('Y-m-d');
$archive = new ZipArchive();
$archive->open(
"../../Backup/Sicherung-{$date}_$part.zip",
ZipArchive::CREATE
);
$totalSize = 0;
$it = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($pth['folder']['base'])
);
$it->rewind();
while ($it->valid()) {
if (!$it->isDot() && $it->key() != $pth['folder']['base'] . 'backup.zip') {
$size = filesize($it->key());
if ($totalSize + $size > $maxsize) {
$archive->close();
$part++;
$archive->open(
"[color=#FF0000]../../Backup/Sicherung-[/color]{$date}_$part.zip",
ZipArchive::CREATE
);
$totalSize = 0;
}
$archive->addFile($it->key(), $it->getSubPathName());
$totalSize += $size;
}
$it->next();
}
$archive->close();
}
if (XH_ADM && isset($_GET['backup'])) {
fullBackup();
}
Der Aufruf erfolgt (nach Anmeldung ) mit "http://diedomain.tld/?backup"