Archiv verlassen und diese Seite im Standarddesign anzeigen : Tägliches Backup Script
Ich hab keine ahnung ob es sowas gibt zumal es ein recht hohes sicherheits risiko mit sich bringt.
Mich würd intressieren ob es ein script gibt das mir täglich ein backup meiner db macht ?
Das ganze sollte dann die backup files in ein von mir auszuwählendes verzeichnis hinterlegen so das ich es im endeffekt nur noch vom server ziehen muss.
Moin,
wenn du einen eigenen Server hast oder die Möglichkeit eines cronjobs, dann trage einfach den mysql dump befehl in einen cron ein und dann kannste das in dein verzeichnis deiner wahl speichern. Oder sogar direkt per ftp woanderst hin transferieren. Somit keine unnötigen scripte und risiken zu erwarten.
Nope leider derzeit noch kein Server. Muss noch auf space bleiben für ne weile.
Afterburner
23.10.2002, 19:17
wenn du ein dumpscript hat dann bitte PM an mich, trage dich dann bei mir im server ein wegen dem CronJob
ZeroCool
13.11.2002, 23:37
Original geschrieben von Afterburner
wenn du ein dumpscript hat dann bitte PM an mich, trage dich dann bei mir im server ein wegen dem CronJob
Also ich habe einen eigenen Server und arbeite auch mit einigen Cronjobs. Aber egal wie ich es versuche ich bekomm das in diesem Fall nicht hin. Kannst Du mal ein Beispiel posten?
THx Robby
Bierhasser
14.11.2002, 07:18
Momentan läuft bei mir folgendes Script:
#!/usr/bin/perl
@Wochentage = ("SO","MO","DI","MI","DO","FR","SA","SO");
@a = localtime();
$a = $Wochentage[$a[6]];
$Filename = "/home/board/backup_$a.sql";
`/mysqldump --all -e -l --add-drop-table --host=localhost --user=DB_BENUTZER --password=DB_PASSWORT DB_NAME | gzip --best - > $Filename.gz`;
`chmod 0640 $Filename.gz`;
print("Datenbankbackup in $Filename.gz erstellt.\n");
Als dbackup.pl abspeichern, CHMOD 755 und peer Cronjob eintragen.
ZeroCool
15.11.2002, 14:08
Original geschrieben von Bierhasser
Momentan läuft bei mir folgendes Script:
#!/usr/bin/perl
@Wochentage = ("SO","MO","DI","MI","DO","FR","SA","SO");
@a = localtime();
$a = $Wochentage[$a[6]];
$Filename = "/home/board/backup_$a.sql";
`/mysqldump --all -e -l --add-drop-table --host=localhost --user=DB_BENUTZER --password=DB_PASSWORT DB_NAME | gzip --best - > $Filename.gz`;
`chmod 0640 $Filename.gz`;
print("Datenbankbackup in $Filename.gz erstellt.\n");
Als dbackup.pl abspeichern, CHMOD 755 und peer Cronjob eintragen.
Klappt nicht :-( So langsam verzweifele ich. Muss ich noch irgendwas ändern oder so?
Oder poste mir mal Deinen Cronjob. THx
Gruss Robby
Bierhasser
15.11.2002, 17:08
Der Crontab macht nichts anderes als jeden Tag um 1Uhr die Datei aufzurufen. Und das funktioniert bestens.
Crontab: 0 1 * * * $HOME/dbbackup.pl
ZeroCool du musst natürlich die Pfade im Script anpassen
$Filename = "/home/board/backup_$a.sql";
und bei dem Befehl natürlich noch Deine DB_BENUTZER
Dein PASSWORT und Deine DATENBANK eintragen
ZeroCool
15.11.2002, 17:17
Original geschrieben von Bierhasser
Der Crontab macht nichts anderes als jeden Tag um 1Uhr die Datei aufzurufen. Und das funktioniert bestens.
Crontab: 0 1 * * * $HOME/dbbackup.pl
ZeroCool du musst natürlich die Pfade im Script anpassen
$Filename = "/home/board/backup_$a.sql";
und bei dem Befehl natürlich noch Deine DB_BENUTZER
Dein PASSWORT und Deine DATENBANK eintragen
Der Cronjob läuft, hab ich gerade getestet. Er packt das BackUp auch ins richtige Verzeichnis etc., aber die Datei ist leer.
Achja, Pfad, Benutzer, PW, DB hatte ich Alles geändert. Logischerweise im ASCII-Modus geupped, ChMod755, etc.
Woran kann´s noch liegen?
Gruss Robby
ZeroCool
15.11.2002, 23:26
So, da der Cronjob lief aber das Script nicht, hab ich mir ein neues Script geholt, und zwar Folgendes:
<?php
// Bitte hier Ihre Daten eintragen
$host= 'dbxx.puretec.de';
$user= 'dbxxxxxx';
$pass= 'xxxxxxxx';
$db= 'dbxxxxxxx';
// Befehl ausführen und in Zipfile speichern
system(sprintf(
'mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/dump.sql.gz',
$host,
$user,
$pass,
$db,
getenv('DOCUMENT_ROOT')
));
echo '+DONE';
?>
Kann man das jetzt noch jemand so umändern, dass die Datei fortlaufend numeriert wird?
THx im Vorab
Gruss Robby
Benutz doch einfach die date() Funktion, um dem Dateinamen noch ein Datum oder eine Uhrzeit zu geben.
Beispiele findest Du hier: http://www.php.net/manual/en/function.date.php
ZeroCool
15.11.2002, 23:44
Original geschrieben von pogo
Benutz doch einfach die date() Funktion, um dem Dateinamen noch ein Datum oder eine Uhrzeit zu geben.
Beispiele findest Du hier: http://www.php.net/manual/en/function.date.php
:-( Genau das will ich ja und hab ich auch schon mehrmals versucht umzusetzen, aber ich rall das heut nicht.
Gruss Robby
Versuchs mal so:
<?php
// Bitte hier Ihre Daten eintragen
$host= 'dbxx.puretec.de';
$user= 'dbxxxxxx';
$pass= 'xxxxxxxx';
$db= 'dbxxxxxxx';
$date= date('ymd');
// Befehl ausführen und in Zipfile speichern
system(sprintf(
'mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/dump%s.sql.gz',
$host,
$user,
$pass,
$db,
getenv('DOCUMENT_ROOT'),
$date
));
echo '+DONE';
?>
ZeroCool
16.11.2002, 00:21
Original geschrieben von pogo
Versuchs mal so:
<?php
// Bitte hier Ihre Daten eintragen
$host= 'dbxx.puretec.de';
$user= 'dbxxxxxx';
$pass= 'xxxxxxxx';
$db= 'dbxxxxxxx';
$date= date('ymd');
// Befehl ausführen und in Zipfile speichern
system(sprintf(
'mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/dump%s.sql.gz',
$host,
$user,
$pass,
$db,
getenv('DOCUMENT_ROOT'),
$date
));
echo '+DONE';
?>
Verwirrend, aber es funzt, THX. So ähnlich hatte ich das die ganze Zeit auch versucht, nur dass ich die Variable immer in den Dateinamen geschrieben habe, anstatt sie per %s aufzurufen.
Danke nochmal.
Gruss Robby
spammotel
20.11.2002, 22:37
@pogo
wie heißt dann die datei die rauskommt zum beispiel?
ZeroCool
20.11.2002, 22:47
Original geschrieben von spammotel
@pogo
wie heißt dann die datei die rauskommt zum beispiel?
dump201102.sql.gz
Gruss Robby
forumwurm
09.03.2007, 13:35
<?php
// Bitte hier Ihre Daten eintragen
$host= 'dbxx.puretec.de';
$user= 'dbxxxxxx';
$pass= 'xxxxxxxx';
$db= 'dbxxxxxxx';
$date= date('ymd');
// Befehl ausführen und in Zipfile speichern
system(sprintf(
'mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/dump%s.sql.gz',
$host,
$user,
$pass,
$db,
getenv('DOCUMENT_ROOT'),
$date
));
echo '+DONE';
?> ich suche eigentlich sowas in der art, aber als shellscript (cronjob), wer kann einem newbe weiterhelfen.
ich möchte verschiedene datenbanken von einem mysql-server sichern
die sollen nachher (wenn möglich) in einer zip (gz, bz, was auchimmer) datei gepackt sein.
diese datei sollte mit dem datum versehen werden.
und schlussendlich solls als cronjob laufen.
gruss und dank fw
http://www.vbulletin-germany.com/forum/showthread.php?t=22889
bitte sehr
Powered by vBulletin® Version 4.1.12 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.