Hallo allerseits,
vorab möcht ich noch erwähnen, dass ich seit zwei Tagen über Google und
über die Suche der jeweiligen "PHP-Foren" schon recht viel gefunden habe,
aber leider hat mir das meiste nicht weitergeholfen obwohl ich - wie ich annehme -
ein relativ kleines Problem habe...
Ich wollte Folgendes über cronjobs auf einem all-inkl webspace "laufen
lassen":
1 - mySQL-backup per gzip in ein bestimmtes Verzeichnis archivieren wo
max. 10 Kopien liegen sollen
2 - Verzeichnis-backup per tar gzip oder zip in ein bestimmtes Verzeichnis
archivieren wo max. 3 Kopien liegen sollen
3 - server-seitiges FTP-upload eines bestimmten Verzeichnises(.gz)
Bisher habe ich nur für das mySQL-Backup ne Lösung:
Wenn mir jetzt jemand bei 2 und/oder 3 helfen könnt, würde ich unmengen an Zeit einsparen und meine nerven schonen
Ich hoffe auf Antwort
MfG n_joy
vorab möcht ich noch erwähnen, dass ich seit zwei Tagen über Google und
über die Suche der jeweiligen "PHP-Foren" schon recht viel gefunden habe,
aber leider hat mir das meiste nicht weitergeholfen obwohl ich - wie ich annehme -
ein relativ kleines Problem habe...
Ich wollte Folgendes über cronjobs auf einem all-inkl webspace "laufen
lassen":
1 - mySQL-backup per gzip in ein bestimmtes Verzeichnis archivieren wo
max. 10 Kopien liegen sollen
2 - Verzeichnis-backup per tar gzip oder zip in ein bestimmtes Verzeichnis
archivieren wo max. 3 Kopien liegen sollen
3 - server-seitiges FTP-upload eines bestimmten Verzeichnises(.gz)
Bisher habe ich nur für das mySQL-Backup ne Lösung:
PHP-Code:
// mySQL-Backup OHNE Dateibeschränkung (AutoDelete)
exec("mysqldump -u USER -p PASSWORD --add-drop-table DATABASE >dump " .date(dmY) . ".sql");
PHP-Code:
// mySQL-Backup MIT Dateibeschränkung (AutoDelete)
// ###############################
// ### (c) by Protecus.de ########
// ###############################
// Updates: [url]http://board.protecus.de/showtopic.php?threadid=9581[/url]
$user = 'xxx'; // Name
$pass = 'yyy'; // Passwort
$database = 'zzz'; // zu sichernde Datenbank
$path = '/www/absoluter_zielpfad/'; // Backup Ordner
$number_of_files = '10'; // wenn mehr als x Dateien, dann löschen (Autodelete)
// checke Backupordnergrösse
function dirsize($dir)
{
$dirsize=0;
$handle=opendir ($dir);
while (false !== ($file = readdir ($handle)))
{
$dirsize+=filesize($dir.$file);
}
closedir($handle);
return $dirsize;
}
// Starte Output
echo '<html>
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<title>MySQL Backup</title>
<style type=\'text/css\'>
<!--
h1 { font-family: verdana, arial;}
body,p,td,a { font-family: verdana, arial; font-size: 8pt;}
//-->
</style>
</head>
<body>
<h1>MySQL Backup</h1>
<b><u>Konfiguration:</u></b>
<br /><b>Sicherung Datenbank:</b> '. $database .'<br />
<b>Auto-Löschen aktiviert:</b> +'.$number_of_files.' Dateien<br />
<b>GZip-Komprimierung:</b> aktiv<br />
<b>Backups gesamt:</b> '.round(dirsize("$path")/(1024*1024),2).' MB<br /><br />
<p><b>Backup wird ausgeführt...</b><br /><br /><span style="color:darkblue; font-weight:bold" id="dspan">|</span></p>
<script type="text/javascript"><!--
function js_dots()
{
dspan.innerText = dspan.innerText + "|";
jstimer = setTimeout("js_dots();", 200);
}
if (document.all)
{
js_dots();
}
//--></script>';
// Backupverzeichnis
$dh = opendir($path);
while (false !== ($filename = readdir($dh)))
{
if ($filename != "." && $filename != "..") $files_unlink[] = $filename;
}
@rsort($files_unlink);
if (sizeof($files_unlink) >= $number_of_files)
{
for($n=sizeof($files_unlink)-1; $n>=$number_of_files; $n--)
{
unlink($path.$files_unlink[$n]);
}
}
// Backup erstellen
$datei = date("d\.m\.Y\_H",time())."_Uhr_".date("i",time()); // Dateiname aus Datum und Uhrzeit bilden
$datei .= ".gz";
if (file_exists($datei)) unlink($datei);
$path = str_replace(".", "", $path);
// system("mysqldump -u $user -p $pass -h localhost $database | gzip > ".dirname(__FILE__)."$path/$datei", $fp);
// exec("mysqldump -u $user -p $pass -h localhost $database | gzip > ".dirname(__FILE__)."$path/$datei", $fp);
exec("mysqldump -a -c -q -Q -f --add-drop-table --allow-keywords --user=$user --password=$pass -h localhost $database | gzip -c > $path/"."$database"."_$(date \"+%d.%m.%y(%H-%M)\").sql.gz", $fp);
if ($fp==0) $meldung = "Backup erfolgreich!"; else $meldung = "Es ist ein Fehler aufgetreten!";
// und Meldung, dass fertig!
echo '
<script type="text/javascript"><!--
if (document.all)
{
clearTimeout(jstimer);
}
//--></script>
<p>'.$meldung.'</p>
<p><blink><b>Fertig!</b></blink></p>
</html>
</head>';
Ich hoffe auf Antwort
MfG n_joy
Kommentar