Hallo, kann mir einer von Euch Bash Profis helfen. Ich wollte mir ein kinit.sh bauen das geht aber nicht also #!/bin/sh Path: ......... export PATH /usr/bin/sleep 20 /usr/bin/kinit -k ....... wenn ich es per hand starte funktionirt das Teil Wenn ich es per crontab starte leider nicht. was mit nicht eingeht das Teil wird ausgeführt warum nicht auch die Befehle? also die Echos werden geschrieben echo ............... > /tmp/test.txt /usr/bin/sleep 20 echo ...............> /tmp/test1.txt /usr/bin/kinit -k ....... echo ...............> /tmp/test2.txt aber die Programme werden nicht gestartet kann mir da jemand weiterhelfen. -- mit freundlichen Grüßen / best Regards, Günther J. Niederwimmer -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
On Sat, Sep 20, 2014 at 05:23:30PM +0200, Günther J. Niederwimmer wrote:
Ich wollte mir ein kinit.sh bauen das geht aber nicht
also #!/bin/sh
Path: ......... export PATH
/usr/bin/sleep 20 /usr/bin/kinit -k .......
wenn ich es per hand starte funktionirt das Teil Wenn ich es per crontab starte leider nicht.
was mit nicht eingeht das Teil wird ausgeführt warum nicht auch die Befehle?
also die Echos werden geschrieben
echo ............... > /tmp/test.txt /usr/bin/sleep 20 echo ...............> /tmp/test1.txt /usr/bin/kinit -k ....... echo ...............> /tmp/test2.txt
aber die Programme werden nicht gestartet
kann mir da jemand weiterhelfen.
Ich habe lediglich rudimentäre Bash-Kenntnisse, aber: cron startet als anderer user als du per Hand? Dann dürften dir unterschiedliches Environment (also anders gesetzte Variablen) reinspielen. Oder das Programm läßt sich nicht von jedem User aus starten und der von cron darf nicht... flo -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Nachtrag: wie rufst du das Script auf? Wo trägst du den Aufruf ein? flo -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 20.09.2014 um 22:02 schrieb Florian Groß:
On Sat, Sep 20, 2014 at 05:23:30PM +0200, Günther J. Niederwimmer wrote:
Ich wollte mir ein kinit.sh bauen das geht aber nicht
also #!/bin/sh
Path: ......... export PATH
/usr/bin/sleep 20 /usr/bin/kinit -k .......
wenn ich es per hand starte funktionirt das Teil Wenn ich es per crontab starte leider nicht.
was mit nicht eingeht das Teil wird ausgeführt warum nicht auch die Befehle?
also die Echos werden geschrieben
echo ............... > /tmp/test.txt /usr/bin/sleep 20 echo ...............> /tmp/test1.txt /usr/bin/kinit -k ....... echo ...............> /tmp/test2.txt
aber die Programme werden nicht gestartet
kann mir da jemand weiterhelfen. Ich habe lediglich rudimentäre Bash-Kenntnisse, aber: cron startet als anderer user als du per Hand? Dann dürften dir unterschiedliches Environment (also anders gesetzte Variablen) reinspielen. Oder das Programm läßt sich nicht von jedem User aus starten und der von cron darf nicht...
flo
hi ;-) ich hatte auch mal des genau gleiche problem. per hand liefs and per cronjob dann nicht mehr. es war dann so wie der flo schreibt, fuehrt man des als cron aus, dann gibt es ein anderes enviroment. ich glaube ich hab dann echo PATH ins script geschrieben und dann sieht man, dass der PATH zum command garnet vorhanden ist. welchen man ja dann via PATH hinzufuegen kann ... so oder so aehnlich war des. hab gerade gesucht, doch finde leider des script nicht mehr :-( hoffe des hilft weiter? greetings becki -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
On Sun, Sep 21, 2014 at 10:12:09AM +0200, Administrator Beckspaced.com wrote:
Am 20.09.2014 um 22:02 schrieb Florian Groß:
On Sat, Sep 20, 2014 at 05:23:30PM +0200, Günther J. Niederwimmer wrote:
Wenn ich es per crontab starte leider nicht. Ich habe lediglich rudimentäre Bash-Kenntnisse, aber: cron startet als anderer user als du per Hand? Dann dürften dir unterschiedliches Environment (also anders gesetzte Variablen) reinspielen. Oder das Programm läßt sich nicht von jedem User aus starten und der von cron darf nicht...
ich hatte auch mal des genau gleiche problem. per hand liefs and per cronjob dann nicht mehr.
es war dann so wie der flo schreibt, fuehrt man des als cron aus, dann gibt es ein anderes enviroment. ich glaube ich hab dann echo PATH ins script geschrieben und dann sieht man, dass der PATH zum command garnet vorhanden ist. welchen man ja dann via PATH hinzufuegen kann ...
Um es noch ein bissl verwirrender zu gestalten: Wo ist der Aufruf eingetragen? Als User mit crontab -e? Irgendwo in cron.daily oder cron.hourly? Je nachdem wird das Script als User, als root oder evtl. sogar als nobody aufgerufen -> andere Rechte, andere Environments und damit es spannend bleibt, hast beim Aufruf über cron unabhängig vom user gern mal ein anderes Environment... Bekommst du von cron keine mails, wenn jobs fehlgeschlagen sind? Darin könnte sich eine Fehlermeldung verbergen, die weiterhilft. flo -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Günther J. Niederwimmer schrieb:
Hallo, kann mir einer von Euch Bash Profis helfen.
Ich wollte mir ein kinit.sh bauen das geht aber nicht
also #!/bin/sh
hi
Path: ......... ^^^^^^^^^^ Was ist das? Wenn Du den PATH setzen willst: PATH=DeinPfad export PATH
/usr/bin/sleep 20 /usr/bin/kinit -k .......
wenn ich es per hand starte funktionirt das Teil Wenn ich es per crontab starte leider nicht.
Wie sieht der Aufruf aus? Poste mal die Zeile aus crontab -- Gruss Bernd -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Samstag, 20. September 2014, 22:18:29 schrieb Bernd Obermayr:
Günther J. Niederwimmer schrieb:
Hallo, kann mir einer von Euch Bash Profis helfen.
Ich wollte mir ein kinit.sh bauen das geht aber nicht
also #!/bin/sh
hi
Path: .........
^^^^^^^^^^ Was ist das? Wenn Du den PATH setzen willst: PATH=DeinPfad
Ist natürlich PATH=....
export PATH
/usr/bin/sleep 20 /usr/bin/kinit -k .......
wenn ich es per hand starte funktionirt das Teil Wenn ich es per crontab starte leider nicht.
Wie sieht der Aufruf aus? Poste mal die Zeile aus crontab
2 Ausprobiert @reboot sh /root/sriptc/kinit_init.sh und @reboot /root/sriptc/kinit_init.sh warum funktioniert der Echo Befehl aber kein Programmaufruf ? -- mit freundlichen Grüßen / best Regards, Günther J. Niederwimmer -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, On Sat, 20 Sep 2014, Günther J. Niederwimmer wrote:
Am Samstag, 20. September 2014, 22:18:29 schrieb Bernd Obermayr:
Günther J. Niederwimmer schrieb:
Path: .........
^^^^^^^^^^ Was ist das? Wenn Du den PATH setzen willst: PATH=DeinPfad
Ist natürlich PATH=....
hmm, wenn wir dein Problem erraten sollen macht es das nicht einfacher. Was genau steht denn jetzt da bei PATH? Das ist _wichtig_.
export PATH
/usr/bin/sleep 20 /usr/bin/kinit -k .......
wenn ich es per hand starte funktionirt das Teil Wenn ich es per crontab starte leider nicht.
Wie sieht der Aufruf aus? Poste mal die Zeile aus crontab
2 Ausprobiert
@reboot sh /root/sriptc/kinit_init.sh und @reboot /root/sriptc/kinit_init.sh
warum funktioniert der Echo Befehl aber kein Programmaufruf ?
weil die Pfade zu den anderen Programmen falsch sind? Zumindest sleep ist unter /bin nicht /usr/bin Mit which <Befehl> bekommst du heraus, was verwendet wird, wenn du auf der Konsole die Befehle ohne Pfad angibst. Greetings Daniel -- Wenn dir eine Antwort nicht gefällt stell eine andere Frage. -- unknown -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Sonntag, 21. September 2014, 10:04:42 schrieb Daniel Lord:
Hallo,
On Sat, 20 Sep 2014, Günther J. Niederwimmer wrote:
Am Samstag, 20. September 2014, 22:18:29 schrieb Bernd Obermayr:
Günther J. Niederwimmer schrieb:
Path: .........
^^^^^^^^^^ Was ist das? Wenn Du den PATH setzen willst: PATH=DeinPfad
Ist natürlich PATH=.... hmm, wenn wir dein Problem erraten sollen macht es das nicht einfacher. Was genau steht denn jetzt da bei PATH? Das ist _wichtig_.
ich habe es so gemacht umask 022 # habe ich auch schon weggelassen PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH übrigens sleep & kinit ist bei mir doch in /usr/bin
export PATH
/usr/bin/sleep 20 /usr/bin/kinit -k .......
wenn ich es per hand starte funktionirt das Teil Wenn ich es per crontab starte leider nicht.
Wie sieht der Aufruf aus? Poste mal die Zeile aus crontab
2 Ausprobiert
@reboot sh /root/sriptc/kinit_init.sh und @reboot /root/sriptc/kinit_init.sh
warum funktioniert der Echo Befehl aber kein Programmaufruf ?
weil die Pfade zu den anderen Programmen falsch sind? Zumindest sleep ist unter /bin nicht /usr/bin
nicht ganz ;). jedenfalls bei meiner SUSE der Befehl wurde als user root mit crontab -e erstellt.
Mit which <Befehl> bekommst du heraus, was verwendet wird, wenn du auf der Konsole die Befehle ohne Pfad angibst.
Greetings Daniel
Wie ist es möglich dass so eine Kleinigkeit solche Umstände bereitet. Bei meiner älteren Version hat das noch einfach funktioniert :-( einfach in /cron.d ein file rein mit dem Inhalt @reboot root /bin/sleep 90 && /user/bin/kinit -k host/.............. das hat einige Jahre funktioniert warum jetzt nicht mehr -- mit freundlichen Grüßen / best Regards, Günther J. Niederwimmer -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, On Sun, 21 Sep 2014, Günther J. Niederwimmer wrote:
wenn ich es per hand starte funktionirt das Teil Wenn ich es per crontab starte leider nicht.
Wie sieht der Aufruf aus? Poste mal die Zeile aus crontab
2 Ausprobiert
@reboot sh /root/sriptc/kinit_init.sh und @reboot /root/sriptc/kinit_init.sh
warum funktioniert der Echo Befehl aber kein Programmaufruf ?
weil die Pfade zu den anderen Programmen falsch sind? Zumindest sleep ist unter /bin nicht /usr/bin
nicht ganz ;). jedenfalls bei meiner SUSE
der Befehl wurde als user root mit crontab -e erstellt.
Dann bleiben noch folgende Fragen: ls -l /root/sriptc/kinit_init.sh - ist das oben ein Schreibfehler oder heisst das Verzeichnis wirklich sriptc? - copy/paste von "crontab -l" auf die Konsole funktioniert? - hast du eine "sh" (bzw. einen Link) oder eher eine "bash", oder ksh? spätestens bei function () wird es fehleranfällig - ist /root eine separate Partition, die mit -o noexec gemountet ist? - ist root zum Zeitpunkt der Ausführung gemountet? - kann dein installierter cron wirklich den tag @reboot? - "*/10 * * * * bash /root/sriptc/kinit_init.sh" < sowas in crontab? - was steht in dmesg /var/log/messages /var/mail/root zum Problem? Greetings Daniel -- The answer to the universe and everything? www.google.com! -- unknown -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo zusammen, Am 20.09.2014 22:27, schrieb Günther J. Niederwimmer:
Hallo, Am Samstag, 20. September 2014, 22:18:29 schrieb Bernd Obermayr:
Günther J. Niederwimmer schrieb:
Hallo, kann mir einer von Euch Bash Profis helfen.
Ich wollte mir ein kinit.sh bauen das geht aber nicht
also #!/bin/sh
hi
Path: .........
^^^^^^^^^^ Was ist das? Wenn Du den PATH setzen willst: PATH=DeinPfad
Ist natürlich PATH=....
export PATH
/usr/bin/sleep 20 /usr/bin/kinit -k .......
wenn ich es per hand starte funktionirt das Teil Wenn ich es per crontab starte leider nicht.
Wie sieht der Aufruf aus? Poste mal die Zeile aus crontab
2 Ausprobiert
@reboot sh /root/sriptc/kinit_init.sh und @reboot /root/sriptc/kinit_init.sh
warum funktioniert der Echo Befehl aber kein Programmaufruf ?
cron wird zu einem relativ frühen Zeitpunkt beim Booten gestartet. Da kennt cron noch so gut wie keine Umgebungsvariablen, so wie wir das vom Arbeiten in der shell gewönt sind. Meine Erfahrung: wenn etwas in cron nicht läuft, was sonst wunderbar funktioniert, dann sind irgenwelche Pfade oder Umgebungsvariablen nicht definiert, auf die das Programm baut. cron verschickt error-mails, wenn Fehler auftreten. Hast du mal den Befehl 'mail' auf der Konsole/Terminal-Fenster aufgerufen?. Jenachdem, was Du beim Installieren angegeben hast, gehen diese mails an root oder an einen bestimmten user. Baue mal sowas in die crontab ein: SHELL=/bin/bash TZ=UTC-1 LD_LIBRARY_PATH=/usr/local/lib // die Liste MUSS vollständig sein MAILTO = guenther // hierhin schickt cron Fehlermeldungen ... Hier dürfen alle Umgebungsvariablen gesetzt werden (natürlich angepasst an Dein System). Denke evtl. an Variablen wie TMP / TEMP / DISPLAY / den ganzen locale-Kram mit LANG, LC_CTYPE usw . Und Variablen, die Du evtl. selbst definiert hast (in .profile, .bashrc ...) und die Deine Programme benötigen. Viele Grüße Axel -- Wetter in Jülich: http://www.fz-juelich.de/gs/DE/fzwetter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (6)
-
Administrator Beckspaced.com
-
Axel Knaps
-
Bernd Obermayr
-
Daniel Lord
-
Florian Groß
-
Günther J. Niederwimmer