
Ich führe derzeit alle paar Tage ein Skript in Leopard aus, um sicherzustellen, dass ich meine Daten auf einem Remote-Server gesichert habe, und zwar mit:
#!/bin/bash
rsync -avvz ~/Documents ~/Workspace -e ssh [email protected]:~/Backup/
Diese Methode hat Einschränkungen, d. h. ich kann keine Dateien ansehen, die vor einigen Backups gelöscht wurden. Wie kann ich diesen Vorgang am besten automatisieren?
Antwort1
Können Sie in Leopard einen Cron-Job einrichten?
Die Beispieloptionen von rsync (-avvz) löschen keine Dateien im Verzeichnis „remote“, die seit einer früheren Sicherung aus dem lokalen Verzeichnis entfernt wurden. Sie sollten sich noch immer im Remote-Verzeichnis befinden.
Aber Ihr Beispiel ist verwirrend: Kopieren Sie Dateien von ~/Documents nach ~/Workspace oder nach ~/Backup/ auf myhost.com
Dies ist möglicherweise eine Eigenart von Leopard, aber es sieht so aus, als würden Sie nur von ~/Documents nach ~/Workspace kopieren. In diesem Fall wird der Rest der Zeile möglicherweise ignoriert (und Sie müssen SSH nicht aufrufen).
Sie sollten auch erwägen, die Quellverzeichnisspezifikation mit einem / zu beenden
Ich stimme mit Peter überein, dass rotierende Backups gut sind – sofern Sie über den entsprechenden Speicherplatz verfügen.
Antwort2
Du schaust nachRdiff-Sicherung. Es ist sehr, sehr gut.
Antwort3
Ich finde das Paket rsnapshot sehr gut, es ist in allen Distributionen verfügbar und ich habe es gerade auf meinem Mac installiert.
Es handelt sich um einen Wrapper für rsync, der sich um inkrementelle Backups kümmert, einschließlich stündlicher, täglicher, wöchentlicher und monatlicher Backups.
Antwort4
Ich führe diesen Cronjob jeden Tag um 5:30 Uhr aus:
#! /bin/bash
echo -n "cleaning remote database...";
ssh wf ./bin/mysql-clean;
echo "Done";
echo -n "running remote backup script...";
ssh wf ./bin/mysql-backup;
echo "Done";
scp wf:~/mysql-`date +%Y-%m-%d`.sql.bz2 /storage/mysql/;
Auf meinem Webhost habe ich dann ein Skript namens mysql-clean, das meine Datenbank säubert und allen Müll entfernt. mysql-backup ist im Grunde nur mysqldump, das durch bzip2 geleitet und dann nach Datum benannt wird. Ich habe auch ein Skript, das die neueste Sicherungsdatei nimmt, sie entpackt, die lokale MySQL-Datenbank löscht und dann alle Daten aus der Sicherungsdatei einfügt.