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!
[gelöst] Problem mit Backup Script und Cron
[gelöst] Problem mit Backup Script und Cron
Zuletzt geändert von WinMaik am 07.01.2012 22:53:02, insgesamt 1-mal geändert.
Re: Problem mit Backup Script und Cron
Du arbeitest wohl u.a. mit einem anderen Environment als cron.Dann habe ich in /etc/cron.daily ein ./backup abgesetzt und war froh, das alles lief.
Dazu vielleicht mal mit sowas die Variablen ausgeben lassen
Code: Alles auswählen
echo "0 $0 A $@" >> /tmp/log
set >> /tmp/log
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")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Problem mit Backup Script und Cron
Hier das Ergebnis: 36155
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
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?
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
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?
Re: Problem mit Backup Script und Cron
Nein,Hier das Ergebnis: NoPaste-Eintrag 36155
Ich habe run-parts /etc/cron.daily aus dem Ordner /tmp ausgeführt.
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")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Problem mit Backup Script und Cron
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!
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!