Carrear
Erfahrenes Mitglied
Hi Leute,
ich werte meine Besucherzahlen mittels dem Tool Piwik aus. Leider passierte es mir in letzter Zeit des öfteren, dass die dazugehörigen Datenbanken gecrasht sind. Deshalb möchte ich diese mittels PHP regelmäßig sichern. Dazu habe ich schon eine Routine:
Wie ihr seht enthält der Name der Backup Datei auch das Datum. Ich möchte dieses Script einmal pro Tag per Cronejob laufen lassen. Da ich allerdings nicht manuell die Menge der Backups kontrollieren möchte habe ich mir folgendes gedacht. Der Crone job soll täglich laufen.
Es sollen dann folgende Dateien auf dem Server liegen:
Die Backups der letzten 7 Tage UND aus den 21 Tagen zuvor jeweils das 1., das 8. und das 15. Sprich aus einem Zyklus von 28 Tagen (4 Wochen) soll jeweils das erste Backup einer jeden Woche bleiben, und jedes Backup der letzten Woche. Das ganze soll auch fortlaufend funktionieren - also in der 5. Woche soll es dann das übrige Backup der 1. Woche löschen, die letzten 6. Backups der 4. Woche löschen (das erste muss ja bleiben) und dann für den kommenden 7-Tage-Zyklus wieder nach und nach 7 Backups erstellen bis es in die nächste Woche geht. Also liegen auf dem Server nie mehr als 10 Backups.
Ich weiß nicht wie ich das angehen soll. Ich weiß nicht wie ich mit dem Datum umgehen soll, oder ob ich die Entscheidung, ob ein Backup bleibt oder gelöscht wird anhand von einem internen Zähler mache.
VG
ich werte meine Besucherzahlen mittels dem Tool Piwik aus. Leider passierte es mir in letzter Zeit des öfteren, dass die dazugehörigen Datenbanken gecrasht sind. Deshalb möchte ich diese mittels PHP regelmäßig sichern. Dazu habe ich schon eine Routine:
PHP:
<?php
$db_name = "LOGINNAME";
$db_passwort = "PASSWORT";
$sql_file = "dump_" . $db_name . "_" . date('Ymd_Hi') . ".sql";
exec("mysqldump -u $db_name -p'$db_passwort' --allow-keywords --add-drop-table --complete-insert --quote-names $db_name > $sql_file");
exec("gzip $sql_file");
$backupdatei = $sql_file . ".gz";
$host = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$host = str_replace(basename(__FILE__),$backupdatei,$host);
echo "Backup Datei downloaden: <a href='" . $host . "'>" . $backupdatei . "</a>";
?>
Wie ihr seht enthält der Name der Backup Datei auch das Datum. Ich möchte dieses Script einmal pro Tag per Cronejob laufen lassen. Da ich allerdings nicht manuell die Menge der Backups kontrollieren möchte habe ich mir folgendes gedacht. Der Crone job soll täglich laufen.
Es sollen dann folgende Dateien auf dem Server liegen:
Die Backups der letzten 7 Tage UND aus den 21 Tagen zuvor jeweils das 1., das 8. und das 15. Sprich aus einem Zyklus von 28 Tagen (4 Wochen) soll jeweils das erste Backup einer jeden Woche bleiben, und jedes Backup der letzten Woche. Das ganze soll auch fortlaufend funktionieren - also in der 5. Woche soll es dann das übrige Backup der 1. Woche löschen, die letzten 6. Backups der 4. Woche löschen (das erste muss ja bleiben) und dann für den kommenden 7-Tage-Zyklus wieder nach und nach 7 Backups erstellen bis es in die nächste Woche geht. Also liegen auf dem Server nie mehr als 10 Backups.
Ich weiß nicht wie ich das angehen soll. Ich weiß nicht wie ich mit dem Datum umgehen soll, oder ob ich die Entscheidung, ob ein Backup bleibt oder gelöscht wird anhand von einem internen Zähler mache.
VG