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

Bash, Shell, PHP, Python, Perl, CGI
Anonymous

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

Post 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
tomek
Posts: 243
Joined: 2003-08-05 09:44
Location: Paderborn

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

Post 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
Anonymous

Danke Tomek!

Post by Anonymous »

Danke Tomek für die klasse Erläuterung, jetzt ist es ja schon viel einfacher.

MfG;

Astrid
Anonymous

...

Post 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
linuxnewbie
Posts: 150
Joined: 2003-01-24 16:00

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

Post by linuxnewbie »

versuche es mal mit lynx

Code: Select all

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

Anonymous

...

Post by Anonymous »

Funktioniert leider auch nicht:

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

MfG;

Astrid
tomek
Posts: 243
Joined: 2003-08-05 09:44
Location: Paderborn

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

Post by tomek »

Dann hast du lynx nicht installiert. Installiere es einfach nach.
Anonymous

...

Post by Anonymous »

Wie denn?

Sorry, aber ich ahbe so etwas noch nie nachinstalliert!

Danke;

Astrid
r00ty
Posts: 747
Joined: 2003-03-17 15:32

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

Post 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
gopha
Posts: 26
Joined: 2003-02-24 10:02

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

Post by gopha »

http://www.freshmeat.net -> lynx

oder apt-get unter debian ;>
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

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

Post by oxygen »

wget oder curl wäre hier aber angemessen, wenn man das script schon nicht lokal aufrufen möchte/kann.
Anonymous

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

Post 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
tomek
Posts: 243
Joined: 2003-08-05 09:44
Location: Paderborn

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

Post 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
Anonymous

...

Post 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
Anonymous

...

Post 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
tomek
Posts: 243
Joined: 2003-08-05 09:44
Location: Paderborn

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

Post 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?
Anonymous

...

Post 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
tomek
Posts: 243
Joined: 2003-08-05 09:44
Location: Paderborn

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

Post 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..
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

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

Post by captaincrunch »

Zusätzlich sehen mir die ganzen "^M"s doch schwer nach DOS-Zeilenumbruch aus ... ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
r00ty
Posts: 747
Joined: 2003-03-17 15:32

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

Post 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
Anonymous

...

Post 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
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA

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

Post by adjustman »

Code: Select all

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

...

Post by Anonymous »

Warum um 12 Uhr und warum so???

MfG;

Astrid
r00ty
Posts: 747
Joined: 2003-03-17 15:32

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

Post 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....
Anonymous

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

Post 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