[gelöst] Problem mit Backup Script und Cron

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
WinMaik
Beiträge: 330
Registriert: 22.03.2008 10:38:00

[gelöst] Problem mit Backup Script und Cron

Beitrag von WinMaik » 06.01.2012 23:34:03

Ich habe seit langem ein eigenes Backup Script in cron.daily, cron.weekly und cron.monthly, sie unterscheiden sich nur in einer Zeile:
zyklus="xyz"
Wobei xyz for daily, weekly oder monthly steht.

Ich wollte das Script jetzt so abändern, dass ich diese Unterscheidung nicht mehr machen muss, also habe ich folgendes Probiert:
zyklus=`pwd|awk '{print substr($0,index($0,".")+1)}'`
Dann habe ich in /etc/cron.daily ein ./backup abgesetzt und war froh, das alles lief.

Am nächsten Tage wollte ich mir dir Log Datei vom automatischen Backup anschauen, jedoch wurde keins angelegt und ein Backup wurde auch nicht gefahren.
Ich vermute jetzt, das pwd nicht den Pfad liefert, den ich mir erhofft habe, wenn das Script durch Cron gestartet wird.
Ist das korrekt? Wie löse ich das Problem?

Vielen Dank!
Zuletzt geändert von WinMaik am 07.01.2012 22:53:02, insgesamt 1-mal geändert.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Problem mit Backup Script und Cron

Beitrag von rendegast » 07.01.2012 08:28:42

Dann habe ich in /etc/cron.daily ein ./backup abgesetzt und war froh, das alles lief.
Du arbeitest wohl u.a. mit einem anderen Environment als cron.

Dazu vielleicht mal mit sowas die Variablen ausgeben lassen

Code: Alles auswählen

echo "0 $0 A $@" >> /tmp/log
set >> /tmp/log
ZBsp. 'setenv -e' läßt das Script bei Problemen abbrechen.
Vielleicht sowas gesetzt?


-------------------------------
zyklus="$(pwd | awk)"
ginge auch mit Variablen-Substitution?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
WinMaik
Beiträge: 330
Registriert: 22.03.2008 10:38:00

Re: Problem mit Backup Script und Cron

Beitrag von WinMaik » 07.01.2012 15:58:07

Hier das Ergebnis: NoPaste-Eintrag36155
Ich habe run-parts /etc/cron.daily aus dem Ordner /tmp ausgeführt.
Also kann ich pwd vergessen, korrekt?

Mein nächster Versuch war jetzt zyklus=`set|grep BASH_SOURCE|awk '{print substr($0,index($0,".")+1)}'`, was schon wesentlich besser aussieht, jedoch steht dann in $zyklus daily/backup") und mit awk habe ich mich noch nicht wirklich anfreunden können.

Ist der Ansatz soweit okay oder sollte ich das lieber anders machen?
Es wäre schön, wenn mir jemand noch schnell den awk Teil so erweitern würde, dass das /backup noch abgeschnitten wird :hail:

Edit:
zyklus=`set|grep BASH_SOURCE | awk '{print substr($0,index($0,".")+1)}' | awk '{print substr($0,0,index($0,"/"))}'`
so geht es, aber das geht sicher schöner, oder?

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Problem mit Backup Script und Cron

Beitrag von rendegast » 07.01.2012 18:19:27

Hier das Ergebnis: NoPaste-Eintrag 36155
Ich habe run-parts /etc/cron.daily aus dem Ordner /tmp ausgeführt.
Nein,
es muß von cron ausgeführt werden.

ZBsp. kopiere es nach cron.hourly/ und füge nach der Variablenermittlung ein 'exit 0' zum Abbrechen ein.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
WinMaik
Beiträge: 330
Registriert: 22.03.2008 10:38:00

Re: Problem mit Backup Script und Cron

Beitrag von WinMaik » 07.01.2012 22:52:43

Dieses mal wurde das Script von Cron gestartet und /tmp/log sieht ähnlich aus wie das, das ich händisch mit run-parts generiert habe.
BASH_SOURCE ist auf jeden Fall weiterhin /etc/cron.hourly/backup und mehr brauche ich ja nicht.
Meine awk Verschachtelung liefert auch noch das richtige Ergebnis, somit wurde mein Problem gelöst!

Vielen Dank noch mal!

Antworten