Script wird von cronjob nicht korrekt ausgeführt - Centos 5
Hallo,
Ich habe ein Problem mit meinem Sicherungsserver:
ich möchte zur täglichen inkrimentellen Sicherung (Centos 5 Sicherungsserver) meiner Daten ein Script, angestoßen durch einen cronjob, ausführen welches Hardlinks anlegt welche dann über Nacht durch rsync von meinem Arbeitsrechner (ebenfalls Centos 5) aktualisiert werden.
Dies hat auch jahrelang funktioniert, leider treten seit kurzem Fehler in der Ausführung des Scriptes auf, wenn diese per cronjob gestartet wird. Bei einem händischen Ausführen läuft das Script perfekt durch. Ein Vergleich der beiden Verzeichnisse per diff -r ergibt keine Abweichungen.
Leider kann ich keinen genauen Zeitpunkt ausmachen seitdem der Fehler aufgetreten ist bzw. eine Änderung an meiner Konfiguration der dies ausgelöst haben kann.
das Script heißt hardlinks.sh und sieht wie folgt aus:
Der mv Befehl wird anstandslos ausgeführt, sprich aus "Daten" wird "Daten.Datum-von-gestern".
Der cp Befehl wird nicht korrekt ausgeführt, hier bricht das Script das Kopieren der Hardlinks von "Daten.Datum-von-gestern" nach "Daten" einfach irgendwann ab, so dass nicht von allen Verzeichnissen und Dateien Hardlinks angelegt werden.
Hat eventuell jemand eine Vorstellung woran das liegen kann.
Der cronjob wird als root mit folgendem Befehl aufgerufen:
/bin/bash /root/hardlinks.sh
Für eure Unterstützung möchte ich mich bereits im Voraus bedanken.
Gruß Dominique
Ich habe ein Problem mit meinem Sicherungsserver:
ich möchte zur täglichen inkrimentellen Sicherung (Centos 5 Sicherungsserver) meiner Daten ein Script, angestoßen durch einen cronjob, ausführen welches Hardlinks anlegt welche dann über Nacht durch rsync von meinem Arbeitsrechner (ebenfalls Centos 5) aktualisiert werden.
Dies hat auch jahrelang funktioniert, leider treten seit kurzem Fehler in der Ausführung des Scriptes auf, wenn diese per cronjob gestartet wird. Bei einem händischen Ausführen läuft das Script perfekt durch. Ein Vergleich der beiden Verzeichnisse per diff -r ergibt keine Abweichungen.
Leider kann ich keinen genauen Zeitpunkt ausmachen seitdem der Fehler aufgetreten ist bzw. eine Änderung an meiner Konfiguration der dies ausgelöst haben kann.
das Script heißt hardlinks.sh und sieht wie folgt aus:
#!/bin/sh
mv /Sicherung/Daten /Sicherung/Daten.`date -d '1 day ago' +%Y%m%d`
cp -alv /Sicherung/Daten.`date -d '1 day ago' +%Y%m%d` /Sicherung/Daten
Der mv Befehl wird anstandslos ausgeführt, sprich aus "Daten" wird "Daten.Datum-von-gestern".
Der cp Befehl wird nicht korrekt ausgeführt, hier bricht das Script das Kopieren der Hardlinks von "Daten.Datum-von-gestern" nach "Daten" einfach irgendwann ab, so dass nicht von allen Verzeichnissen und Dateien Hardlinks angelegt werden.
Hat eventuell jemand eine Vorstellung woran das liegen kann.
Der cronjob wird als root mit folgendem Befehl aufgerufen:
/bin/bash /root/hardlinks.sh
Für eure Unterstützung möchte ich mich bereits im Voraus bedanken.
Gruß Dominique
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 171930
Url: https://administrator.de/contentid/171930
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
4 Kommentare
Neuester Kommentar
probiere den Spaß mal mit einer anderen Shebang.
Was sagt das Skript in Bash?
date -d '1 day ago' +%Y%m%d`'
-bash: `ago +%Y%m%d`': not a valid identifier
was mir sagt das bei date sich die daylight dingens in der syntax geändert hat!
probiere es doch erstmal mit
date +%Y%m%d
Leerzeilen sollte man aus Anstand am Ende auch immer entfernen.
Dann würde ich mit Variablen arbeiten.
DATUM="`date +%Y%m%d`"
PATH="/Sicherung/Daten"
BACKUP="$PATH-$DATUM"
mv $PATH $BACKUP
etc, etc, etc....
Was sagt das Skript in Bash?
date -d '1 day ago' +%Y%m%d`'
-bash: `ago +%Y%m%d`': not a valid identifier
was mir sagt das bei date sich die daylight dingens in der syntax geändert hat!
probiere es doch erstmal mit
date +%Y%m%d
Leerzeilen sollte man aus Anstand am Ende auch immer entfernen.
Dann würde ich mit Variablen arbeiten.
DATUM="`date +%Y%m%d`"
PATH="/Sicherung/Daten"
BACKUP="$PATH-$DATUM"
mv $PATH $BACKUP
etc, etc, etc....