PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : cron startet nichts?



Holodoc
25.09.2003, 03:48
Hallo,

folgendes hab ich planen lassen:

# crontab -l
30 * * * * ~/ipcheck/update

Nun startet das aber nicht alle 30min, muss ich noch irgendwas machen ?(

damager
25.09.2003, 08:30
hmmm.... gibt es mail für root?
- absolute pfade für cron sind empfehlenswert
- wie sie das skript "update" aus?

ausserdem bedeutet das nicht "alle 30 min" ...das
was du eingestellt hast ist eher stündlich :-)
--> man cron

linux83
27.09.2003, 22:52
richtig wäre meines wissens

*/30 * * * * benutzername /home/benutzername/ipcheck/update

zumindest das erste auftreten von "benutzername" ist in der /etc/crontab obligatorisch.

desweiteren würde ich prüfen ob das script ausführbar ist (ls -l ~/ipcheck/update) und gegebenenfalls mit chmod +x update ausführbar machen.

es gibt mail für root, aber teilweise leiten systeme wie postfix diese standardmässig an einen "normalen" user weiter, vgl. /etc/postfix/aliases:



# Person who should get root's mail. This alias
# must exist.
# CHANGE THIS LINE to an account of a HUMAN
root: normaleruser

Holodoc
29.09.2003, 01:56
Mmh, hatte das so aus irgendeinem HowTo abgeschrieben :(

Hab's jetzt geändert, aber es startet immer noch nicht, ausführbar ist es

beinhalten tut es lediglich folgendes:


#!/bin/bash

cd ~/ipcheck
ipcheck -r checkip.dyndns.org:8245 holodoc password holo.gotdns.com


die man-page hatte ich mir als erstes angeschaut, konnte daraus aber auch nicht schlau werden

Mail für root funktioniert hier, die cron-Dinger sehen folgendermaßen aus:


From root@fileserver.home Mon Sep 29 03:30:02 2003
Envelope-to: root@fileserver.home
From: root@fileserver.home (Cron Daemon)
To: root@fileserver.home
Subject: Cron <root@holo-fileserver> root /root/ipcheck/update
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Date: Mon, 29 Sep 2003 03:30:02 +0200

damager
29.09.2003, 09:19
hmm...mehr sagt er nicht in der mail?

dieses "cd ~/ipcheck" gefällt mir nicht so...
warum nicht gleich einen absoluten pfad wie
z.b. "/home/<user>/ipcheck/update"

du kannst die ausgabe von einen cron-eintrag in ein logfile umleiten.
würde dann so aussehen:

*/30 * * * * benutzername /home/<user>/ipcheck/update >> /var/log/ipcheck.log 2>&1

einfach mal testen und das logifle einfach mal hier posten ...wenn
es nicht gehen sollte.

:]

fahrino
29.09.2003, 18:08
Wenn du das script als root ausführst, ist ~/ipcheck gleich /root/ipcheck. Da du das aber wahrscheinlich unter deinem normalen Benutzer liegen hast, solltest du den absoluten Pfad nehmen.

linux83
29.09.2003, 18:32
ich würde auch das cd ~/ipcheck mal durch eine vollständige pfadangabe vor dem programmnamen ersetzen.

mal ganz abgesehen von dem cron-problem. warum rufst du den ip-check nicht einfach nach erfolgtem verbindungsaufbau in der /etc/ppp/ip-up.local auf? falls die datei noch nicht existiert, einfach anlegen. imho ist in der /etc/ppp/ip-up bereits ein aufruf der ip-up.local vorgesehen sofern diese existiert.

Holodoc
29.09.2003, 21:54
Den absoluten Pfad hatte ich schon noch geändert, nur vergessen, das im Post zu editieren.

Danke für den Tipp mit dem logfile ;)
Selbiges sagte mir:
/bin/sh: line 1: root: command not found
Also hab ich das root wieder aus der crontab genommen, dann sagte er mir:
ipcheck: command not found
Also /usr/sbin davorgesetzt, nu funzts :) - aber wieso muss ich das tun, von der Oberfläche aus geht's doch auch so?


mal ganz abgesehen von dem cron-problem. warum rufst du den ip-check nicht einfach nach erfolgtem verbindungsaufbau in der /etc/ppp/ip-up.local auf?

Ich gehe über einen Router ins Netz, deswegen auch der Umweg über das Internet, um meine IP zu bestimmen.

damager
30.09.2003, 10:57
wenn du auf der "oberfläche" bist dann benutzt du eine bestimmte arbeitumgebung wo ein paar mehr variablen gesetzt sind ($PATH).

über cron gestartete applikationen benutzt nur ein arbeitsumgenung die man ihnen selber mitgibt ...oder eben nur ein minimum! hat bei dir eben nicht gereicht.