Hallo zusammen!
Ich hab hier ein Problem mit einem Perl-Skript und zwar nur dann, wenn es als Cron-Job aufgerufen wird:
Das Skript ueberprueft mittels dem Operator -w ob ein gegebenes Verzeichnis beschreibbar ist.
Wenn ich das Skript in der Shell haendisch aufrufe, dann liefert der Test, dass das Verzeichnis beschreibbar ist.
Wenn das Skript im Cron-Job gestartet wird, liefert der gleiche Test, dass das Verzeichnis nicht beschreibbar ist.
Ich habe mir auch schon mittels der Funktion stat() mal die Berechtigungen auf das Verzeichnis ausgeben lassen. Dort erhalte ich ein 775, was dem entspricht, was ich erwarte...
Es macht auch keinen Unterschied, wenn ich statt -w die Test -W benutze. In beiden Faellen sagt mir der Test im Cron-Job, dass das Verzeichnis nicht beschreibbar waere, in der Shell aufgerufen klappts dagegen...
Woran koennte das liegen? Ich bin im Moment echt ratlos...
Danke euch schon mal!
Ciao,
Nepos
Problem mit Perl-Skript als Cron-Job [geloest]
Problem mit Perl-Skript als Cron-Job [geloest]
Zuletzt geändert von nepos am 22.08.2006 13:02:27, insgesamt 1-mal geändert.
Hi,
solche Fehler deuten gewoehnlicherweise darauf hin, das das Environment deines Useres, und das des Cron Users nicht gleich sind.
solche Fehler deuten gewoehnlicherweise darauf hin, das das Environment deines Useres, und das des Cron Users nicht gleich sind.
Kann es sein das der Cron User nicht in der Gruppe ist, die erwartet wird?Wenn das Skript im Cron-Job gestartet wird, liefert der gleiche Test, dass das Verzeichnis nicht beschreibbar ist.
Ich habe mir auch schon mittels der Funktion stat() mal die Berechtigungen auf das Verzeichnis ausgeben lassen. Dort erhalte ich ein 775, was dem entspricht, was ich erwarte...
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
Ok, die Sache wird immer komischer. Folgender kleiner Code-Ausschnitt:
Wenn das Skript via root-Crontab aufgerufen wird, liefert die Ausgabe von Dumper:
Das heisst, der Test war erfolgreich, das Verzeichnis ist beschreibbar.
Gleichzeitig wird allerdings auch das warn() ausgefuehrt...
Starte ich das ganze als root auf der Konsole, dann kriege ich die gleiche Ausgabe von Dumper, allerdings springt das warn nicht an...
Ein liefert mir:
Das Verzeichnis befindet sich auf einem Mountpoint, der per Samba von einem anderen Server eingebunden wird. Dabei wird die fmask auf 0664, die dmask auf 0775 und die gid auf 101 (reporting) gesetzt. Sprich, alle Dateien und Verzeichnisse unter diesem Mountpoint haben die gleichen Berechtigungen und Besitzer/Gruppe.
@Roli: der Cron-User ist in diesem Fall root, da das Skript auch in der root-Crontab ausgefuehrt wird. Ich lasse mir nun auch Testweise die beiden Variablen $< und $> fuer die UID bzw. effektive UID ausgeben. Beiden sagen mir, dass ich als UID 0, also root unterwegs bin...
Code: Alles auswählen
my $test = -W "$INTRANETDIRPDF/$relativePath";
print "Test returned: ", Dumper(\$test),"\n" if $DEBUG;
warn BOLD, RED, "Verzeichnis \"$INTRANETDIRPDF/$relativePath\" nicht beschreibbar!", RESET unless ( $test );
Code: Alles auswählen
Test returned: $VAR1 = \'1';
Gleichzeitig wird allerdings auch das warn() ausgefuehrt...
Starte ich das ganze als root auf der Konsole, dann kriege ich die gleiche Ausgabe von Dumper, allerdings springt das warn nicht an...
Ein
Code: Alles auswählen
ls -la /Berichte/SLA-2.5/pdf/2006
Code: Alles auswählen
drwxrwxr-x 1 root reportin 4096 Aug 11 10:25 .
drwxrwxr-x 1 root reportin 4096 Feb 15 2006 ..
drwxrwxr-x 1 root reportin 4096 Apr 20 15:22 01
drwxrwxr-x 1 root reportin 4096 Mar 28 16:28 02
drwxrwxr-x 1 root reportin 4096 Apr 27 12:58 03
drwxrwxr-x 1 root reportin 4096 Jul 17 15:48 04
drwxrwxr-x 1 root reportin 4096 Aug 11 10:25 05
drwxrwxr-x 1 root reportin 4096 Jul 21 15:09 06
drwxrwxr-x 1 root reportin 4096 Aug 11 10:25 07
@Roli: der Cron-User ist in diesem Fall root, da das Skript auch in der root-Crontab ausgefuehrt wird. Ich lasse mir nun auch Testweise die beiden Variablen $< und $> fuer die UID bzw. effektive UID ausgeben. Beiden sagen mir, dass ich als UID 0, also root unterwegs bin...
Dann werde ich mal tief in mich gehen, vielleicht kommt ja noch die Erleuchtung, wobei ich im Moment auch ratlos bin 8-(
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
Brauchst du nicht, ein saubloeder Fehler ist da drin:
Steht im Skript. Es sollte allerdings: heissen, wie ich es gepostet hatte (da hab ichs ohne nachzudenken geaendert).
Manchmal sieht man den Wald vor lauter Baeumen eben nicht...
Danke dir trotzdem!
Code: Alles auswählen
warn BOLD, RED, "Verzeichnis \"$INTRANETDIRPDF/$relativePath\" nicht beschreibbar!" unless ( $test ), RESET;
Code: Alles auswählen
warn BOLD, RED, "Verzeichnis \"$INTRANETDIRPDF/$relativePath\" nicht beschreibbar!", RESET unless ( $test );
Manchmal sieht man den Wald vor lauter Baeumen eben nicht...
Danke dir trotzdem!
Prima, da ich auch gerade an was haenge, habe ich auch noch nicht damit angefangen ;-}nepos hat geschrieben:Brauchst du nicht
Hast du auch schon mal Fehler gemacht die nich "saubloed" sind, meine sind's eigentlich immer (ist nicht persoenlich gemeint). Entweder das ganze ist so simpel, das ich's haette sehen MUESSEN, oder so komplex, das ich's ueberaupt nicht wusste. Die Fehler die dazischen liegen kommen nur vor wenn Ostern und Neujahr auf einen Tag faellt.nepos hat geschrieben:ein saubloeder Fehler ist da drin
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"