Page 1 of 2

Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-10 18:08
by Anonymous
Hi und Hallo,

ich habe noch keine Ahnung, wie ein Cronjob aufgebaut ist, möchte aber, dass dieser besagt Cronjob einmal am Tag, am besten so gegen 3 Uhr ein Script aufruft und mir keine Bestätigungsmail (Status) schickt.

Kann mir jemans so einen Cronjob posten?

Vielen Dank!


Mit freundlichen Grüßen;

Astrid

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-10 18:13
by tomek
Ein Cronjob jeden Tag um 3 Uhr Nachts ohne Benachrichtigung wäre z.B. folgender Eintrag in der "/etc/crontab":

Code: Select all

00 3 * * * root /verzeichnis/script >/dev/null 2>&1
Kurze Erklärung:

00 3 * * * bedeutet genau 3:00 Uhr
root - Unter welchem User das Script gestartet werden soll, hier also User "root"
/verzeichnis/script - Der Ort an dem das Script abgelegt ist. Das Script sollte natürlich ausführbar sein.
>/dev/null 2>&1 - Meldungen werden unterdrückt

Danke Tomek!

Posted: 2003-08-10 18:37
by Anonymous
Danke Tomek für die klasse Erläuterung, jetzt ist es ja schon viel einfacher.

MfG;

Astrid

...

Posted: 2003-08-10 20:06
by Anonymous
Zu früh gefreut,

der Cronjob wird zwar installiert, doch funktioniert es nicht.

Ich will das Script meindedomain.de/test/index.php aufrufen. Das Verzeichniss ist Passwortgeschützt!

Also gebe icf folgenden Cronjob ein:

Code: Select all

55 19 * * * http://user:pass@meinedomain.de/test/index.php
Die Error-Meldung lautet:

/bin/sh: line 1: http://user:pass@meinedomain.de/test/index.php: No such file or directory

Kopiere ich aber genau diesen Link in das Browser Fenster so funktioniert es!

Vielen Dank für eure Hilfe!

MfG;

Astrid

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-10 20:09
by linuxnewbie
versuche es mal mit lynx

Code: Select all

55 19 * * * lynx http://user:pass@meinedomain.de/test/index.php


...

Posted: 2003-08-10 20:34
by Anonymous
Funktioniert leider auch nicht:

/bin/sh: line 1: lynx: command not found

MfG;

Astrid

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-10 20:45
by tomek
Dann hast du lynx nicht installiert. Installiere es einfach nach.

...

Posted: 2003-08-10 22:20
by Anonymous
Wie denn?

Sorry, aber ich ahbe so etwas noch nie nachinstalliert!

Danke;

Astrid

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-10 22:38
by r00ty
so nun...
also mit lynx das zu erschlagen ist ziemlich heftig....
installieren würdest du es über yast, aber lass das mal
(haste eigentlich schon dein Traffic Fax abgesetzt, wenn du bei 1&1 bist ? bei anderen weiss ich ned ob das geht...)
w3m ist ein anderer konsolen-browser, der normalerweise installiert ist - aber das ist auch keine saubere Lösung....
einfach das Php File direkt mit php aufrufen (p.s.: hättest du mal kleinen Blick weiter unten ins Scripting-Forum geworfen hätte dir auffallen müssen, dass genau das Thema erst behandelt wurde)
Page dazu:
http://www.php.net/manual/en/features.commandline.php
wahrscheinlich willst du sowas, oder ?
/usr/bin/php /home/www/web01234/html/test/index.php > /dev/null

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-10 22:38
by gopha
http://www.freshmeat.net -> lynx

oder apt-get unter debian ;>

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-10 22:56
by oxygen
wget oder curl wäre hier aber angemessen, wenn man das script schon nicht lokal aufrufen möchte/kann.

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-11 10:09
by Anonymous
@astrid2

Hallo

Vor dem Cronjob Problem stand ich auch schon einmal.

Probiere es mal mit:

00 3 * * * lynx -dump user:pass@meinedomain.de/test/index.php

(00 3 * * * lynx -dump meine-domain.de/cron.php)

(Bei mir hat es so funktioniert !!)

Gruß Lars

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-11 10:23
by tomek
Was macht ihr hier wenn ich fragen darf?

Astrid: Was ist denn das für ein Cronjob der eine Seite aufruft um 3 Uhr nachts jeden Tag?

Wenn du das machen möchtest, dann musst du lynx oder einen anderen Textbrowser installieren.

Dann ist da noch was.... Ich habe doch direkt am Anfang gezeigt wie man einen Cronjob korrekt einträgt. Von dem ist in diesem Thread aber nicht viel übrig geblieben.
Wenn ihr Einträge in der /etc/crontab macht, dann macht es bitte richtig. D.h. Zeit, User, Befehl.

Das hier ist z.B. falsch:

Code: Select all

00 3 * * * lynx -dump user:pass@meinedomain.de/test/index.php
Direkt nach der Zeitangabe erfolgt der Benutzer und nicht der Befehl. Dieser Cronjob würde unter dem Benutzernamen "lynx" den Befehl "-dump user:pass@meinedomain.de/test/index.php" ausführen.

Richtig wäre es:

Code: Select all

00 3 * * * root lynx -dump user:pass@meinedomain.de/test/index.php

...

Posted: 2003-08-11 10:35
by Anonymous
Hallo,

ich probiere es jetzt noch mal mit der letzteren Variante.

Das Script soll übrigens nachts um drei Uhr einige Datenbankupdates amchen.

Das funktioniert soweit auch alles, wenn ich das Script ganz normal über den Browser aufrufe.

MfG;

Astrid

...

Posted: 2003-08-11 11:51
by Anonymous
So,

auch die letztere Variante hat nicht funktioniert!

Ich habe es auch mal probiert, das Script einfach in den Ordner /etc/cron.daily zu legen, aber auch hier bekam ich eine Fehlermeldung.

Das liegt bestimmt daran, dass ich das Script script.php4 so in den Ordner gelegt habe.

Kann das so ünerhaupt gehen?


MfG;

Astrid

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-11 11:54
by tomek
Cronjobs variieren etwas wenn du sie z.B. in /etc/cron.daily/ legst. Da ist die Zeitangabe überflüssig.

Was für eine Fehlermeldung bekommst du denn? Und was ist das für ein Script das du ausführen willst?

...

Posted: 2003-08-11 14:46
by Anonymous
Hallo,

ich bekomme folgende Fehlermeldung, wenn ich das Script in den Ordner crin.hourlx lege:

Code: Select all


running hourly cronjob scripts

SCRIPT: server.php4 exited with RETURNCODE = 2.
SCRIPT: ouput (stdout && stderr) follows

/etc/cron.hourly/server.php4: line 1: ?^M: No such file or directory
/etc/cron.hourly/server.php4: line 2: =: command not found
/etc/cron.hourly/server.php4: line 2: ^M: command not found
/etc/cron.hourly/server.php4: line 3: =: command not found
/etc/cron.hourly/server.php4: line 3: ^M: command not found
/etc/cron.hourly/server.php4: line 4: =: command not found
/etc/cron.hourly/server.php4: line 4: ^M: command not found
/etc/cron.hourly/server.php4: line 5: =: command not found
/etc/cron.hourly/server.php4: line 5: ^M: command not found
/etc/cron.hourly/server.php4: line 6: ^M: command not found
/etc/cron.hourly/server.php4: line 7: syntax error near unexpected token `('
/etc/cron.hourly/server.php4: line 7: `$verbindung = @mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die ("Es konnte keine Verbindung zu unseren Datenbankservern hergestellt werden");^M'
SCRIPT: server.php4
Das Script sieht so aus:

Code: Select all

<?
$mysql_host = "localhost";
$mysql_user = "web100";
$mysql_pass = "pass";
$mysql_name = "usr_web100_1";

$verbindung = @mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die ("Es konnte keine Verbindung zu unseren Datenbankservern hergestellt werden");
	      @mysql_select_db($mysql_name) or die ("Es konnte keine Verbindung zu unseren Datenbankservern hergestellt werden");

$server     = "select * from Server";
$erg_server = mysql_query($server, $verbindung) or die (mysql_error()." - ".$server);
$ports      = array('FTP' => 21, 'SSH' => 22, 'SMTP' => 25, 'DNS' => 53, 'HTTP' => 80, 'POP3' => 110, 'MySQL' => 3306);

$status     = mysql_query("select * from Status");
$erg_status = mysql_fetch_array($status);
$hosting    = $erg_status["Hosting"];
...
Warum funktioniert das aber nicht, wie gesgat, wenn ich das Script über den Browser aufrufe, klappt alles!

MfG;

Astrid

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-11 14:55
by tomek
Ein Browser/Webserver kann PHP. Die Linux Shell kann das so erstmal nicht.
Ich bin kein PHP-Experte, aber ich denke, du musst das script mit dem Commandline PHP Programm aufrufen..

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-11 15:01
by captaincrunch
Zusätzlich sehen mir die ganzen "^M"s doch schwer nach DOS-Zeilenumbruch aus ... ;)

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-11 15:10
by r00ty
was hast du denn in
cron.hourlx
kopiert ?
das Script oder nen Aufruf des scripts mit lynx oder so ?
poste das mal bitte

...

Posted: 2003-08-11 15:38
by Anonymous
Hi,

ich habe das Script einfach nur in dem Editor geschrieben, unter server.php4 abgespeichert und dann die Datei einfach nur in das Verzeichnis /etc/cron.hourly hochgeladen.

Das ist so bestimmt falsch, habe mir das fast schon gedacht.

ch habe mir auch schon gedacht, wie Tomek, dass ich dass Script mit einer "Commandline PHP Programm" aufrufen muss, aber wie sieht so eine Cmmand-Line aus und klappt es denn dann so?

MfG;

Astrid

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-11 16:13
by adjustman

Code: Select all

00 12 * * * php /verzeichnis/script.php
Ruft das Script um 12 h auf

...

Posted: 2003-08-11 16:17
by Anonymous
Warum um 12 Uhr und warum so???

MfG;

Astrid

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-11 16:18
by r00ty
wow, das funktioniert natürlich nicht :wink:

also jetzt kommt es auf dein Script an....
du könntest es einmal mit

Code: Select all

/usr/bin/php /[PFADZUMSKRIPT]/[MEINSCRIPT].php4
ausführen
das könnte evtl klappen....
damit du die ausgabe nicht siehst das ganze mit

Code: Select all

/usr/bin/php /[PFADZUMSKRIPT]/[MEINSCRIPT].php4 > /dev/null
umleiten

den crontab bekommste hin ? da haben ja auch schon einige was dazu geschrieben....

Re: Cronjob, der einmal am Tag ein Script aufruft???

Posted: 2003-08-11 16:33
by Anonymous
adjustMan wrote:

Code: Select all

00 12 * * * php /verzeichnis/script.php
Ruft das Script um 12 h auf
Hi,

doch das funktioniert!!!

Ich habe es gerade ausprobiert und es klappt wirklich, konnte es selbst kaum glauben!

Danke an alle, die mir geholfen haben;

Astrid