Cronjob startet mehrmals dasselbe Script

Bash, Shell, PHP, Python, Perl, CGI
netzstecker
Posts: 6
Joined: 2003-07-17 08:47

Cronjob startet mehrmals dasselbe Script

Post by netzstecker »

Hallo

Ich habe ein backupscript erstellt welches mir verzeichnisse aus dem homeverzeichniss in ein tmp verzeichniss kopiert und dort dann aus diesen verzeichnissen tar archive erstellt. Wenn ich das script per hand aufrufe funktioniert alles tadellos. wenn dieses script jedoch per Cron aufgerufen wird sehe ich in der prozessliste das das script mehrfach aufgerufen wird und die tmp verzeichnisse bleiben leer. leer deshalb weil am anfang vom script die tmp verzeichnisse des vortages gelöscht werden.

die crontab.txt schaut folgendermasen aus:

Code: Select all

* 5 * * * /verzeichniss/backup.sh
der eintrag in crontab erfolgt so: crontab crontab.txt

mittels crontab -l seh ich auch das der cronjob ordentlich eingetragen ist.

das backup script hat in etwa diese struktur:

Code: Select all

#!/bin/bash
## alte arbeitsverzeichnisse löschen
rm -R $tmp_dir

## Homeverzeichnisse kopieren
cp -Rpd $dir

## Archive erstellen
tar -czf $dir/$(date +%Y%m%d%H%M)_$archiv.tgz $tmp_dir
weis irgendjemand woran das liegen könnte?

mfg netzstecker

PS: ein anderes Script welches nur die mysqldump funktion beinhaltet funktioniert wunderbar per cronjob[/code]
olaf.dietsche
Posts: 401
Joined: 2002-12-19 02:06
Location: Siegburg

Re: Cronjob startet mehrmals dasselbe Script

Post by olaf.dietsche »

Du mußt noch einen Wert für die Minute eintragen. Dein Eintrag wird zwischen fünf und sechs Uhr jede Minute einmal gestartet. Also, z.B.

Code: Select all

17 5 * * * /verzeichniss/backup.sh
netzstecker
Posts: 6
Joined: 2003-07-17 08:47

Re: Cronjob startet mehrmals dasselbe Script

Post by netzstecker »

Hallo

Danke für die antwort, aber irgendwas stimmt da immer noch nicht.
ich habe jetzt folgendes im crontab stehen:

Code: Select all

0 5 * * * /verzeichniss/backup.sh
nur wird das script jetzt gar nich ausgeführt.
Verwunderlich ist auch das bei dem script für das datenbankbackup vorne für die minute ebenfalls ein stern stand aber das script ordentlich ausgeführt wurde. Dies hab ich gleich mitgeändert und nun wird dieses script ebenfalls nicht ausgeführt.
Wenn ich jedoch beide Scripte per Hand starte dann funktionieren diese tadellos.
Also nochmal kurz etwas sortiert :) :

Vorher

Code: Select all

* 4 * * * /verzeichniss/db_backup.sh
* 5 * * * /verzeichniss/backup.sh
db_backup.sh wird anständig ausgeführt. backup.sh wird zwischen 5 und 6 Uhr mehrmals gestartet.

Nachher

Code: Select all

1 4 * * * /verzeichniss/db_backup.sh
1 5 * * * /verzeichniss/backup.sh
Beide Scripte werden nich ausgeführt.

Beide Scripte laufen fehlerfrei wenn man diese von Hand startet.
Was mich aber noch gewundert hatt ist folgender umstand:
bei dem Eintrag * 5 * * * /verzeichniss/backup.sh wird das script zwar gestartet aber nie bis zum ende ausgeführt, sonst müsste ja der durchlauf der um 5:59 beginnt zumindest einmal durchlaufen. die anderen Durchläufe können ja nicht bis zum schluss durchlaufen da der nachfolgende prozess die arbeitsverzeichnisse ja löscht noch bevor der tar abschnitt beginnt. aber der letzte Durchlauf sollte zumindest bis zu ende laufen oder?

MfG netzstecker
Anonymous

Re: Cronjob startet mehrmals dasselbe Script

Post by Anonymous »

Poste mal dein komplettes Backup-Skript *und* verrate uns, als welcher User dies ausgeführt wird.

Typische Fehler:
- cron als User, dem die nötigen Rechte für Verzeichnisse/Dateien fehlen
- variablen (wie zum Beispiel $dir), die im Skript nicht bekannt sind, weil sie bei manueller Ausführung ausserhalb des Skripts gesetzt wurden


Carsten
netzstecker
Posts: 6
Joined: 2003-07-17 08:47

Re: Cronjob startet mehrmals dasselbe Script

Post by netzstecker »

das komplette script kann ich leider nicht posten aber script sollte es nicht liegen weil
a) dort keine Variablen drinne vorkommen (ich hatte diese hier nur als beispiel gebracht
b) der cron läuft als root, weil nur root die rechte auf die zu sichernden homeverzeichnisse hatt bzw. bestandteile der Homeverzeichnisse.

Die pfadangaben im script hab ich absolut gewählt weil ich da auch schon befürchtete das es daran liegen könnte aber das wars auch nicht

nfg netzstecker
Anonymous

Re: Cronjob startet mehrmals dasselbe Script

Post by Anonymous »

Lass Dein Skript doch einfach mal mitloggen, was es tut.
Zum Beispiel so:

echo "Phase 1"
.
.
echo "Phase 2"
.
.


Dann häng mal folgendes an Deinen Cron-Eintrag ran:

1>skript.out 2>&1

Dann werden alle Ausgaben UND Fehlermeldungen in "skript.out" geschrieben.
So kannst Du herausfinden, wo (und vielleicht auch warum) der Fehler auftritt.


Carsten


PS: An die MODS: Das gehört hier wohl eher ins n00b-Forum :-P