Mailinglist Archive: opensuse-de (4731 mails)

< Previous Next >
Re: Probleme einen java-Befehl über die crontab-Datei auszu führen
  • From: Jan.Trippler@xxxxxxxxxxx (Jan Trippler)
  • Date: Fri, 13 Jul 2001 14:42:38 +0200
  • Message-id: <20010713144238.A25647@xxxxxxxxxxxxxx>
On Fre, 13 Jul 2001 at 13:19 (+0200), Falk Sauer wrote:
> On Fri, Jul 13, 2001 at 12:53:19PM +0200, Ralf Polakowski wrote:
> > 
> > Wenn ich die Shell-Scripte dann von der crontab ausführen lasen will,
> > findet das startenden SHELL-Script java nicht mehr.
> 
> crontab Aufrufe landen in einer ziemlich nackigen shell, dh. es
> fehlen viele Variablen die in /etc/profile und in anderen
> startscripten beim normalen user login gesetzt werden.

Ja.

> Der einfachste Weg ist in der Crontab diese fehlenden Variablen und
> möglichst nur diese zu setzten:
> 
> SHELL=/bin/sh # oder was auch immer du als shell verwenden willst
> PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin 
> MAILTO=irgendnearmesaudiedenmistauchliest@xxxxxxxxxxxx

Jein. Wenn man das so macht, muss man dafür sorgen, dass die
gesetzten Variablen für _alle_ crontab-Aufrufe passen oder dies in
den einzelnen Scripts immer wieder überschreiben.

> #
> #
> 0 1 * * * . /irgendwo/envscript ; /tu/was/immer/du/willst/nachts/um/eins
> 
> oben die 3 Sachen kann cron selber auswerten und weiter geben,
> alles andere muss im aufruf selber gesourced werden, dafür ist
> dieser Punkt vor /irgendwo/envscript verantwortlich.

Nein. crontabs können jede beliebige Variable mit einem sog.
environment setting setzen, das ist nicht auf die o. g. drei
beschränkt (gerade getestet).

Quelle: man 5 crontab

> in /irgendwo/envscript schreibst du alle sachen rein die für dein
> environment nötig sind, was das sein kann siehe /etc/profile oder
> ~.bashrc oder was auch immer du da einsetzt. Ein set auf der
> kommandozeile hilft meist auch schon weiter.

Man kann die Variablen allerdings auch im Script selber setzen, dann
braucht man kein envscript.

Jan


< Previous Next >
Follow Ups