Discussion:
bash problem (HELP)
Günther J. Niederwimmer
2014-09-20 15:23:30 UTC
Permalink
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+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Florian Groß
2014-09-20 20:02:21 UTC
Permalink
Post by Günther J. Niederwimmer
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+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Florian Groß
2014-09-20 20:13:53 UTC
Permalink
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+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Administrator Beckspaced.com
2014-09-21 08:12:09 UTC
Permalink
Post by Florian Groß
Post by Günther J. Niederwimmer
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.
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+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Florian Groß
2014-09-21 09:53:01 UTC
Permalink
Post by Administrator Beckspaced.com
Post by Florian Groß
Post by Günther J. Niederwimmer
Wenn ich es per crontab starte leider nicht.
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+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Bernd Obermayr
2014-09-20 20:18:29 UTC
Permalink
Post by Günther J. Niederwimmer
Hallo,
kann mir einer von Euch Bash Profis helfen.
Ich wollte mir ein kinit.sh bauen das geht aber nicht
also
#!/bin/sh
hi
Post by Günther J. Niederwimmer
Path: .........
^^^^^^^^^^ Was ist das?
Wenn Du den PATH setzen willst: PATH=DeinPfad
Post by Günther J. Niederwimmer
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+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Günther J. Niederwimmer
2014-09-20 21:27:58 UTC
Permalink
Hallo,
Post by Bernd Obermayr
Post by Günther J. Niederwimmer
Hallo,
kann mir einer von Euch Bash Profis helfen.
Ich wollte mir ein kinit.sh bauen das geht aber nicht
also
#!/bin/sh
hi
Post by Günther J. Niederwimmer
Path: .........
^^^^^^^^^^ Was ist das?
Wenn Du den PATH setzen willst: PATH=DeinPfad
Ist natürlich PATH=....
Post by Bernd Obermayr
Post by Günther J. Niederwimmer
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+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Günther J. Niederwimmer
2014-09-21 11:02:32 UTC
Permalink
Hallo,
Post by Günther J. Niederwimmer
Hallo,
Post by Günther J. Niederwimmer
Post by Bernd Obermayr
Post by Günther J. Niederwimmer
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
Post by Günther J. Niederwimmer
Post by Günther J. Niederwimmer
Post by Bernd Obermayr
Post by Günther J. Niederwimmer
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.
Post by Günther J. Niederwimmer
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+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Axel Knaps
2014-09-21 11:59:57 UTC
Permalink
Hallo zusammen,
Post by Günther J. Niederwimmer
Hallo,
Post by Bernd Obermayr
Post by Günther J. Niederwimmer
Hallo,
kann mir einer von Euch Bash Profis helfen.
Ich wollte mir ein kinit.sh bauen das geht aber nicht
also
#!/bin/sh
hi
Post by Günther J. Niederwimmer
Path: .........
^^^^^^^^^^ Was ist das?
Wenn Du den PATH setzen willst: PATH=DeinPfad
Ist natürlich PATH=....
Post by Bernd Obermayr
Post by Günther J. Niederwimmer
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+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Lesen Sie weiter auf narkive:
Loading...