Backup des gesamten Webserverinhalts als *.zip gerunterladen
Backup des gesamten Webserverinhalts als *.zip gerunterladen
Hallo zusammen,
nach stundenlanger erfolgloser Suche frage ich nun die phpbb Community, wie ich folgendes lösen kann:
Ich möchte alle Dateien und Ordner des Webservers (alles was im htdocs Verzeichnis liegt) per php packen und wenn möglich gleich herunterladen oder in einem backup Ordner (z.b. htdocs/backup/backup.zip) ablegen. Denn eine gesamte Datei ist schneller heruntergeladen als viele kleine.
Gruß Falk
nach stundenlanger erfolgloser Suche frage ich nun die phpbb Community, wie ich folgendes lösen kann:
Ich möchte alle Dateien und Ordner des Webservers (alles was im htdocs Verzeichnis liegt) per php packen und wenn möglich gleich herunterladen oder in einem backup Ordner (z.b. htdocs/backup/backup.zip) ablegen. Denn eine gesamte Datei ist schneller heruntergeladen als viele kleine.
Gruß Falk
- canonknipser
- Ehemaliges Teammitglied
- Beiträge: 2053
- Registriert: 10.09.2011 11:14
- Kontaktdaten:
Re: Backup des gesamten Webserverinhalts als *.zip gerunterl
Muss das unbedingt per php sein?
Als Alternative Möglichkeit fallen mir spontan ein :
Als Alternative Möglichkeit fallen mir spontan ein :
- Dein Hoster hat eine entsprechende Funktion im Kontroll-Panel
- Du hast Shell-Zugang und kannst mittels tar o.ä. ein Archiv erstellen
- Du machst inkrementelle Backups mittels eines ftp-fähigen Backup-Programms (sinnvoll, wenn es nicht nur eine Einmal-Aktion, sondern eine regelmäßige Aktion sein soll, dann hast du immer aktuelle Stände, ohne jedesmal einen Komplett-Download zu machen)
base_extractor
im admin-backend includes/acp/acp_database.php
an, da findest du sicher Anregungen 
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived
- Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived

Kein Support via PN, nur im Board und (manchmal) im IRC
Re: Backup des gesamten Webserverinhalts als *.zip gerunterl
Möglich dürfte es sein falls DU SSH Zugang zu deinem Server hast z.B. mittels dem FTP client Transmit
http://www.jordanlloyd.com/blog/how-to- ... h-transmit
http://www.jordanlloyd.com/blog/how-to- ... h-transmit
Re: Backup des gesamten Webserverinhalts als *.zip gerunterl
Leider habe ich keinen SSH Zugriff.
Was zum entpacken habe ich bereits gefunden.
Was zum entpacken habe ich bereits gefunden.
Code: Alles auswählen
<?php
$zip = new ZipArchive;
$res = $zip->open('file.zip');
if ($res === TRUE) {
$zip->extractTo('./');
$zip->close();
echo 'ok';
} else {
$file = "file.zip";
exec("unzip $file 2>&1", $out);
print(implode("<br>", $out));
}
?>
- canonknipser
- Ehemaliges Teammitglied
- Beiträge: 2053
- Registriert: 10.09.2011 11:14
- Kontaktdaten:
Re: Backup des gesamten Webserverinhalts als *.zip gerunterl
Dann kennst du ja die php-Klasse. Die ist auch entsprechend dokumentiert:
http://php.net/manual/de/class.ziparchive.php
Und Beispiele gibt es da auch
http://php.net/manual/de/class.ziparchive.php
Und Beispiele gibt es da auch
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived
- Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived

Kein Support via PN, nur im Board und (manchmal) im IRC
Re: Backup des gesamten Webserverinhalts als *.zip gerunterl
Wer suchet der findet

Code: Alles auswählen
<?php
// Get real path for our folder
$rootPath = realpath('pfad-zum-Ordner');
// Initialize archive object
$zip = new ZipArchive();
$zip->open('file.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
// Create recursive directory iterator
/** @var SplFileInfo[] $files */
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootPath),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file)
{
// Skip directories (they would be added automatically)
if (!$file->isDir())
{
// Get real and relative path for current file
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($rootPath) + 1);
// Add current file to archive
$zip->addFile($filePath, $relativePath);
}
}
// Zip archive will be created only after closing object
$zip->close();
?>
Re: Backup des gesamten Webserverinhalts als *.zip gerunterl
Damit bekomme ich einen Server Fehler 500. Aber es wird ein File erstellt, habe es noch erweitert. Die Laufzeit erhöht und die Ausgabe das es fertiggestellt ist erscheint nun.juliokr hat geschrieben:Wer suchet der findet![]()
Code: Alles auswählen
<?php // Get real path for our folder $rootPath = realpath('pfad-zum-Ordner'); // Initialize archive object $zip = new ZipArchive(); $zip->open('file.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE); // Create recursive directory iterator /** @var SplFileInfo[] $files */ $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($rootPath), RecursiveIteratorIterator::LEAVES_ONLY ); foreach ($files as $name => $file) { // Skip directories (they would be added automatically) if (!$file->isDir()) { // Get real and relative path for current file $filePath = $file->getRealPath(); $relativePath = substr($filePath, strlen($rootPath) + 1); // Add current file to archive $zip->addFile($filePath, $relativePath); } } // Zip archive will be created only after closing object $zip->close(); ?>
Hier meine abgeänderte Version:
Code: Alles auswählen
<?php
// die maximale Ausführzeit erhöhen
ini_set("max_execution_time", 3000);
// Get real path for our folder
$rootPath = realpath('pfad-zum-Ordner');
// Initialize archive object
$zip = new ZipArchive();
$zip->open('backup.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
// Create recursive directory iterator
/** @var SplFileInfo[] $files */
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootPath),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file)
{
// Skip directories (they would be added automatically)
if (!$file->isDir())
{
// Get real and relative path for current file
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($rootPath) + 1);
// Add current file to archive
$zip->addFile($filePath, $relativePath);
}
}
// Zip archive will be created only after closing object
$zip->close();
echo "Archiv erfolgreich erstellt.";
?>
Gruß Falk
Re: Backup des gesamten Webserverinhalts als *.zip gerunterl
keine Ursache !
Kommt sicher auf die größe des Ordners und die Auslastung des Servers an !
Hab's gerade mit meinem kompletten phpBB Forum getestet, ist wirklich erstaunlich bei mir hat das erstellen des zip weniger 1 Minute gedauert und der download des zip wenige Sekunden
Kommt sicher auf die größe des Ordners und die Auslastung des Servers an !
Hab's gerade mit meinem kompletten phpBB Forum getestet, ist wirklich erstaunlich bei mir hat das erstellen des zip weniger 1 Minute gedauert und der download des zip wenige Sekunden
-
- Mitglied
- Beiträge: 438
- Registriert: 01.05.2015 23:37
Re: Backup des gesamten Webserverinhalts als *.zip gerunterl
Frage meinerseits. Wie führt / ruft man das ganze auf?
Danke euch.
Danke euch.
Re: Backup des gesamten Webserverinhalts als *.zip gerunterl
Thunder_one hat geschrieben:Frage meinerseits. Wie führt / ruft man das ganze auf?
Danke euch.
Ich habe den Code in eine zip.php gespeichert, diese dann auf den Server hochgeladen, dann die Datei im Browser ausgeführt. Anpassen der Verzeichnisse nicht vergessen.
Gruß Falk