Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

19.06.2006, 17:46

wöchentliches Serverbackup

Hallo Linux Gemeinde.

Nach dem ich Billy Gates für IMMER den Rücken gekehrt habe, muss ich mich nun durch die Linux-Welt arbeiten.

Ich habe einen Fileserver mit Debian und möchte nun einen Cronjob mit crontab schreiben, der wöchentliches Backup des home-Verzeichnisses durchführen soll. Dabei soll im Backup-Verzeichnis jedes Mal, wenn ein Backup erstellt wird, einen Ordner erstellen, der "Backup+Datum" zB. "Backup060618" heißt. In diesen Ordner soll er dann das Backup des homeverzeichnisses schreiben. In der nächsten Woche heißtb der Ordner dann "Backup060625".

Ziel dieser Sicherungen ist, dass ich jede Woche ein vollständiges Backup erstelle, welches nicht überschrieben werden soll. Auch sollen die Backups nicht "ge-TAR-t" werden, sondern möchte ich genau das gleiche Dateiformat in dem Backup haben, wie es in der Quelldatei ist.

Ich habe viele Foren nach dieser Thematik durchsucht, aber noch keine Lösung gefunden. Vielleicht könnt ihr mir helfen.

Vielen Dank für Eure Hilfe
caesar

2

19.06.2006, 18:01

RE: wöchentliches Serverbackup

Quellcode

1
cp -r /home/benutzername /backup/verzeichnis/Backup`date +%Y%m%d`/

oder

Quellcode

1
rsync /home/benutzername /backup/verzeichnis/Backup`date +%Y%m%d`/


Das Verzeichnis fürs Backup solltest Du vorher erstellen..
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

Wer sucht der findet..

3

19.06.2006, 19:11

Vielen Dank für die schnell Infos.

Das bedeutet also, wenn ich das gesamte home Verzeichnis sichern möchte, landet dieses in dem Ordner backup/backup060619/home ??


Dafür würde ich Deine Befehlszeile
cp -r /home/benutzername /backup/verzeichnis/Backup`date +%Y%m%d`/

in diese anpassen
cp -r /home /backup/Backup`date +%Y%m%d`/


Eine weitere Frage ist, ob Linux den Ordner "Backup`date +%Y%m%d`/" selbstständig erstellt oder ist vorher ein "mkdir Backup`date +%Y%m%d`/" notwendig ??

Schönen Abend wünscht
caesar

4

20.06.2006, 00:34

Zitat

Original von caesar1232001
Eine weitere Frage ist, ob Linux den Ordner "Backup`date +%Y%m%d`/" selbstständig erstellt oder ist vorher ein "mkdir Backup`date +%Y%m%d`/" notwendig ??

Wie wärs, wenn Du's ausprobierst, wenn Du schon meinen Beitrag nicht bis zu Eende liest..
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

Wer sucht der findet..

5

22.06.2006, 15:43

mein Cronjob sieht derzeit so aus:

#! /bin/bash
* * * * 3 mkdir /backup/Backup`date +%Y%m%d`/
* * * * 3 cp -r /home /backup/Backup`date +%Y%m%d`/

Wenn ich einen Festen Verzeichnisnamen benutze, dann läuft es, aber mein server will keinen mit Datum generieren.

Keine Ahnung, woran das liegen könnte.
Kann mir vielleicht hier jemand weiterhelfen ??

6

22.06.2006, 16:02

Du solltest das ganze auch nicht einfach so übernehmen, sondern n kleines Script schreiben, daß die nötigen Schritte unternimmt. Dieses läßt Du dann von cron aufrufen.. Innerhalb von Cron werden die Befehle zur Datenerzeugung nicht aufgerufen..
Nur die beiden Befehle in den cron zu hauen sind irgendwie nicht unbedingt guter Stil..
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

Wer sucht der findet..

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

7

22.06.2006, 16:09

Zitat

Original von caesar1232001
mein Cronjob sieht derzeit so aus:

#! /bin/bash
* * * * 3 mkdir /backup/Backup`date +%Y%m%d`/
* * * * 3 cp -r /home /backup/Backup`date +%Y%m%d`/
Wenn ich einen Festen Verzeichnisnamen benutze, dann läuft es, aber mein server will keinen mit Datum generieren.
Keine Ahnung, woran das liegen könnte.
Kann mir vielleicht hier jemand weiterhelfen ??

es ist unsinnig, das ganze auf zwei zeilen zu verteilen, stelle alles auf eine zeile oder schreibe ein kleines backupscript und trage das in den cronjob ein.
das hat den vorteil, das das verzeichnis wirklich vor dem kopieren angelegt wird und das die backupanweisungen leichter zu ändern sind.
da das script(genau wie die anweisungen in crontab) NICHT in einer interaktiven shell laufen, ist das verhalten der shell anders.
benutze deshalb für die kommandos den vollen pfad.

und chieps war wieder schneller!
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

8

22.06.2006, 16:18

#! /bin/bash
* * * * 3 mkdir /backup/Backup`date +%Y%m%d`/

Ihr habt ja Recht, aber warum wird auch nur bei dieser Zeile kein Verzeichnis mit dem Datum erstellt ??
Ist da ein Syntaxfehler drin, oder läuft das nur als Script ?? Der Pfad ist absolut.

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

9

22.06.2006, 16:27

aber zu den kommandos gibt es keine pfade und genau das ist das problem.
date zb muss doch durch die shell gefunden werden, die standardsuchpfade werden beim start der shell mit initialisiert (zb in der /etc/profile). das gilt aber nur für eine interaktive shell in einem terminal. die shell, in der crond die kommandos ausführt, wird anders gestartet (siehe man crond / man sh / man bash abschitt INVOCATION).
dh wenn du die zeile in einem terminal eingibst, dann funktioniert sie und im crond nicht.
mach ein script draus und trage die kommandos mit dem vollen pfadnamen ein, dann klappt es auch.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

10

22.06.2006, 16:40

noch etwas,
ich habe noch einmal nachgeschaut, die kommandos werden mit sh -c befehl gestartet und die nicht interaktive shell durchläuft die /etc/profile, die pfade sollten also gefunden werden.
hast du den crond nach der änderung neu gestartet?

es bleibt aber dabei, mach das mit einem kleinen script, ist einfach besser.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

11

22.06.2006, 16:43

Packe die befehle in ein Script!

Rufe dieses Script mit komplettem Pfad per Cron auf.

und bearbeite die crontab über crontab -e
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

Wer sucht der findet..

12

22.06.2006, 16:58

Hintergrund:
Ich schreibe gerade meine Diplomarbeit, die ich nächste Woche abgeben muss
--> Stress --> keine Zeit jetzt tiefer in Linux einzusteigen

Server läuft als Fileserver, der wohl nur diesen einen cronjob erledigen soll

Was muss ich in die crontab schreiben ??

Ich verstehe nur Bahnhof.... :-((
Kein Shell, kein Script, nur crontab.... :-((

13

22.06.2006, 17:07

Quellcode

1
2
3
4
5
6
7
#!/bin/sh

mkdir -p /Pfad/zu/BackupDir`date +%Y%m%d`

cp -r /Pfad/zu/QuellDir /Pfad/zu/BackupDir`date +%Y%m%d`/

exit 0

Das iss das script.

Das speicherst Du ab und machst es mit chmod +x ausführbar

crontab -e:

Quellcode

1
* * * * 3 /Pfad/zu/Script/Scriptname
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

Wer sucht der findet..

Thema bewerten