Hallo!
habe nun Danke der Hilfe von karl-150 ein Skript, das bestimmte Dateien vom FTP sichert.
Nun kommt aber folgende Meldung, wenn ich es ausführe:
Diese functions_packer.php beinhaltet eine Klasse mit tar-, zip- und gzip-Funktionen, welche ich von hier habe:
http://www.php-resource.de/forum/sho...threadid=15186
Das Skript funktioniert, da ich es vorher mit anderen, zu sichernden Ordnern getestet hatte. Aber sobald ich mehr Ordner packen will, dann kommt diese Meldung.
zuerst hatte ich es so eingestellt, daß jeder gewünschte Ordner einzeln in eine TAR gepackt wird und am Ende dann erst eine tar.gz daraus gemacht wird. Da kam auch die Meldung.
OK, dachte ich. Mach ich halt pro Ordner eine tar.gz. Also habe ich die gzip-funktion in die Schleife eingefügt, aber die Meldung kommt dennoch.
Einzeln funzt es ja, aber wenn ich mehrere Ordner einzeln(!) packe und als gzip speichere, dann zählt der die trotzdem irgendwie zusammen, obwohl ja die ersten paar tar.gz-Dateien auf dem FTP landen.
Wo habe ich hier den Denkfehler oder ist das normal?
Den verfügbaren Speicher kann wohl nur der Provider erhöhen, oder? (habe nur einen Webspace, keinen Server)
Hier der Code meines Skriptes:
und hier noch ein Link zu der functions_packer.php:
http://www.gumfuzi.com/diverses/func...packer.php.txt
Danke für eure Tipps!
habe nun Danke der Hilfe von karl-150 ein Skript, das bestimmte Dateien vom FTP sichert.
Nun kommt aber folgende Meldung, wenn ich es ausführe:
Fatal error: Allowed memory size of 26214400 bytes exhausted (tried to allocate 6236457 bytes) in /www/htdocs/xxxxx/phpBB2/includes/functions_packer.php on line 316
http://www.php-resource.de/forum/sho...threadid=15186
Das Skript funktioniert, da ich es vorher mit anderen, zu sichernden Ordnern getestet hatte. Aber sobald ich mehr Ordner packen will, dann kommt diese Meldung.
zuerst hatte ich es so eingestellt, daß jeder gewünschte Ordner einzeln in eine TAR gepackt wird und am Ende dann erst eine tar.gz daraus gemacht wird. Da kam auch die Meldung.
OK, dachte ich. Mach ich halt pro Ordner eine tar.gz. Also habe ich die gzip-funktion in die Schleife eingefügt, aber die Meldung kommt dennoch.
Einzeln funzt es ja, aber wenn ich mehrere Ordner einzeln(!) packe und als gzip speichere, dann zählt der die trotzdem irgendwie zusammen, obwohl ja die ersten paar tar.gz-Dateien auf dem FTP landen.
Wo habe ich hier den Denkfehler oder ist das normal?
Den verfügbaren Speicher kann wohl nur der Provider erhöhen, oder? (habe nur einen Webspace, keinen Server)
Hier der Code meines Skriptes:
Code:
<?php define('IN_PHPBB', true); $phpbb_root_path = './../../phpBB2/'; include($phpbb_root_path . 'extension.inc'); include($phpbb_root_path . 'common.'.$phpEx); $userdata = session_pagestart($user_ip, PAGE_INDEX); init_userprefs($userdata); $page_title = 'Backup-Zentrale'; include($phpbb_root_path . 'includes/page_header.'.$phpEx); include($phpbb_root_path . 'includes/functions_packer.'.$phpEx); #if( ($userdata['session_logged_in']) and ($userdata['user_level'] == ADMIN) ) #{ if ( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) ) { $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode']; $mode = htmlspecialchars($mode); } else { $mode = ''; } # Ordner auslesen function show_all_files($path = '.', $sub = FALSE) { static $folder; $files = glob($path.'/*', GLOB_ONLYDIR); if (is_array($files)) { foreach ($files as $file) { $folder[] = $file; if ($sub) show_all_files($file, TRUE); } return $folder; } return FALSE; } # allgemein if ($mode == "") { echo "Allgemein"; } # mode = 1 (alle Dateien in /phpBB2/) if ($mode == 1) { $folder = show_all_files($phpbb_root_path,TRUE); $count = count($folder); $suche = array('phpBB2'); $flags['recursed']=0; $backup = new tarfile($_SERVER['DOCUMENT_ROOT'],$flags); $c = 0; $a = 0; while ($c < $count) { $folder[$c] = "phpBB2/" . str_replace("./../../phpBB2//", "", $folder[$c]); $co = count($suche); $x = 0; while ($x < $co) { $pos = strpos ($folder[$c], $suche[$x]); if ($pos === false) { } elseif ($pos == 0) { $a++; $filelist = array($folder[$c]); echo "verarbeite " . $folder[$c]; $backup->adddirectories($filelist); $backup_zip = new gzfile($_SERVER['DOCUMENT_ROOT'].'_backup/zentrale/',$flags); $backup_zip->addfile($backup->getdata(),'backup.tar'); $backup_zip->filewrite('backup_'.date('d_m_Y_H_i_s',time()).'__'.$a.'.tar.gz',0755); echo " - fertig! "; } $x++; } $c++; } } #$template->set_filenames(array('body' => 'admin/backupzentrale.tpl')); #$template->pparse('body'); #} include($phpbb_root_path . 'includes/page_tail.'.$phpEx); ?>
http://www.gumfuzi.com/diverses/func...packer.php.txt
Danke für eure Tipps!
Kommentar