chb1982
Goto Top

Shellscript per CronJob klappt nicht

Hallo,

ich habe ein winziges Shell-Script, das ich per Cronjob ausführen möchte.
Wenn ich das script per Hand mit

sh /srv/careschnitt/script.sh

ausführe klappt es wunderbar...

Per Cronjob (zum Test minütlich, später 'nur' noch alle 15 Minuten) mach ich es mit

*\1 * * * * root sh /srv/careschnitt/script.sh

Das läuft aber nicht.

Es muss irgendwie am Command liegen. Wenn ich das sh gegen ein einfaches cp tausche läuft es minütlich.

Hat jemand einen Tip für mich?


Gruß
Christoph Bake

Content-Key: 94980

Url: https://administrator.de/contentid/94980

Ausgedruckt am: 29.03.2024 um 12:03 Uhr

Mitglied: Dani
Dani 21.08.2008 um 11:28:54 Uhr
Goto Top
Hi Christoph,
stimmen die Rechte für die Datei? Denn ich weiß gerade nicht, mit welchem User die Datei ausgeführt wird (manuell).
Ansonsten probiere es mal so:
*\1 * * * * root /bin/sh /srv/careschnitt/script.sh

Gruss,
Dani
Mitglied: 25510
25510 21.08.2008 um 12:07:36 Uhr
Goto Top
Hi,

ist die Syntax nicht
*/1 statt *\1 ?

mdf Tz
Mitglied: chb1982
chb1982 21.08.2008 um 12:28:12 Uhr
Goto Top
Hi,

an den Rechten kann es nicht liegen. Wenn ich als root angemeldet bin kann ich es auch ausführen und der CronJob soll es auch als root ausführen.

Mit der Erweiterung um /bin/sh klappt es leider auch nicht. face-sad


Inzwischen bin ich etwas schlauer.

Mein Shellscript ruft unter anderem auch ein PHP-Script auf. Daran scheint es zu liegen.

Kann cronjob kein PHP ausführen? Selbst wenn ich den cronjob direkt mit "php /pfad/script.php" füttere läuft er einfach nicht.

Hängt es mit PHP zusammen?
Mitglied: chb1982
chb1982 21.08.2008 um 12:30:48 Uhr
Goto Top
Ne. Das ist schon richtig. Wie gesagt, wenn ich nur den Command ändere und den Rest stehen lasse läuft es jede Minute.
Mitglied: Dani
Dani 21.08.2008 um 12:53:13 Uhr
Goto Top
Hi,
Tz hat Recht...du hast den falschen Slash verwendet. Deine Zeile müsste so aussehen:
*/1 * * * * root /bin/sh /srv/careschnitt/script.sh
Ich habe nämlich eben bei unseren Jobs nachgesehen.
Poste doch mal dein Script. Ich Frage mich gerade, warum du eigentlich "sh" nimmst und nicht "bash"? Ansonsten gilt, immer den Pfad zum Befehl genau angeben.


Gruss,
Dani
Mitglied: chb1982
chb1982 21.08.2008 um 13:15:38 Uhr
Goto Top
Eigenartig... Habe den Slash mal umgedreht, aber geht trotzdem nicht.

Das Script kopiert einfach nur eine Datei von a nach b und fürht danach ein PHP Script aus
also

cp /pfad/quelle.csv /pfad/ziel.csv
php /pfad/script.php


Das Ding läuft auch super wenn ich es direkt mit sh script aufrufe. Im Cronjob läuft es nicht mehr face-sad
Mitglied: Dani
Dani 21.08.2008 um 13:21:56 Uhr
Goto Top
Hi morpheus,
probier es mal so:
#!/bin/bash

cp /pfad/quelle.csv /pfad/ziel.csv
/bin/php /pfad/script.php

Cronjob:
*/1 * * * * root /bin/bash /srv/careschnitt/script.sh
Funktioniert bei mir unter Debian 4.0 ohne Probleme....


Gruss,
Dani
Mitglied: chb1982
chb1982 21.08.2008 um 13:34:21 Uhr
Goto Top
Geht nicht face-sad

/bin/php gibt auch zurück "Datei oder Verzeichnis nicht gefunden"

Gruß
Christoph
Mitglied: Dani
Dani 21.08.2008 um 13:38:43 Uhr
Goto Top
Sry, ein Stück vergessen:
/usr/bin/php

Grüsse,
Dani
Mitglied: chb1982
chb1982 21.08.2008 um 13:59:25 Uhr
Goto Top
Phu... Es läuft...

Lag aber an etwas anderem.
Das PHP öffnet eine Datei und die konnte es nicht finden, weil der Pfad relativ angegeben war und das passte nicht.

Oh Mein Gott..

Danke für die Hilfe!!

Christoph