cronjob mit php script

P

Pr3muToS

Grünschnabel
huhu,

hab das board durch zufall gefunden und hab gleich ma ne frage. Ich will nen cronjob erstellen der alle x mins nen php script öffnet.

dazu habe ich mich mit root in shell eingeloggt.

cronjob -e
neuen hinzugefügt

10 * * * * php /opt/lampp/htdocs/dj/settitel.php > /dev/null

gespeichert,

wurde dann installiert.
nur geht irgendwie ned ^^
is die verzeichnis angabe falsch ?

Das php script müsste funktionieren da ich es getestet habe, trozdem ma der code.

Code:
<?php
$server="localhost";
$port="8000";
$password="********";   (**** hab ich schon pw eingeben nur für hier )

$fp = fsockopen($server, $port, &$errnum, &$errstr, 2);
if($fp){
   fwrite($fp, "GET /admin.cgi?pass=$password&mode=updinfo&song=. HTTP/1.0\r\nUser-Agent:Mozilla/4.0\r\n\r\n");
}

echo "Titel ist gesetzt";

?>

Hat da jmd ne idee an was das liegen könnte ?
 
Richte mal den cronjob so

Code:
10 * * * * /usr/bin/php /opt/lampp/htdocs/dj/settitel.php > /dev/null

ein, also mit absoluter Pfadangabe zum PHP-Interpreter.Dann sollte das funktionieren.
Hab bei mir kein PHP drauf, tippe aber mal das das in /usr/bin/php liegt.

Wenn nicht, sagt dir ein

Code:
which php

wo es liegt.
 
versuchs mal mit totalen pfadangaben für php

/usr/bin/php script

und cron spuckt eigentlich auch mails aus wenn etwas nicht ausgeführt wurde
 
Zuerstmal solltest du den Befehl mal auf der Konsole ausführen um zu überprüfen ob er überhaupt funktioniert, dann solltest du in der crontab die PATH-Variable so setzen, dass php auch gefunden wird und zu guter Letzt solltest du den Output mal nicht nach /dev/null leiten um zu sehen was da schief geht.
 
so hab mich nun auf das geeinigt:

10 * * * * /opt/lampp/bin/php -f /opt/lampp/htdocs/dj/settitel.php > /dev/null 2>&1


habs getestet mit /opt/lampp/bin/php -f /opt/lampp/htdocs/dj/settitel.php > /dev/null 2>&1 damit fürht er das script aus

aber der cronjob funkt ned.

was mach ich denn falsch !?
 
Hallo,

kannst du nicht wie theton sagt das mit dem /dev/null mal lassen? Und als "root" mal in die Mailbox schauen?

Als welcher User läuft der Cronjob denn und darf der das starten?
 
es geht ja alles habs ohne dev usw auch schon probiert, ich habnen echo mit in das php script gebaut, das heisst, wenn ich das dev null weglasse, bekomm ich das echo in der ssh console
 
bekomm ich das echo in der ssh console
Aber was zum Henker mailt cron denn nun an root?

Das Script an sich scheitert ja nicht, aber irgend was ist am Cronjob faul. Darum ist es interessant, was der Cron-Daemon dazu sagt und mießtens tut er das in einer Mail an root.

Passiert das denn überhaupt und was steht da?
 
Wenns keine Mail gibt, grep mal in /var/log/syslog nach dem cron-Auftrag.

Gruss, Xanti
 
Er wird also ausgeführt. Hast Du probiert, den cron-befehl statt
mit der Umleitung
Code:
> /dev/null 2>&1
hiermit aufzurufen
Code:
> /tmp/bla.output 2>&1
Poste hier /tmp/bla.output.
 
ähnliches Problem

Hallo alle miteinander

Bei mir ist dasselbe Problem wie bei dem Ersteller dieses Posts. Ich habe folgendes Skript:

<?php
$File = "dav.conf";
$Handle = fopen($File, 'w');
$Data = "blabla\n";
fwrite($Handle, $Data);
print "Data Written";
fclose($Handle);
?>

mein Cronjob sieht so aus:

*/2 * * * * /opt/lampp/bin/php-5.2.1 -f /opt/lampp/uploads/write.php > /tmp/output

wenn ich das Skript von Hand starte mit deim in crontab eingegebenen Befehl funktioniert es wie es müsste. Doch sobald ich das ganze über crontab mache funktioniert es nicht. Das skript wird ausgeführt weil der print ausgegeben wird.

Ich hoffe ihr könnt mir hier irgendwie weiterhelfen?

Mit freundlichen Grüssen
blasphem
 
Hallo
Es liegt vermutlich an deinem PHP Code, was hier eigentlich OT ist.
Denke immer daran, dass ein cronjob per default im Homeverzeichnis des users läuft, unter welchem der Cronjob läuft.
Und wenn du nun eine Datei dav.conf ohne absoluten Pfad angibst, erwartet das Script die Datei genau dort.

Ansonsten solltest du dir die Fehlermeldungen ausgeben lassen.
Sonst ist das alles nur Rätselraten.

Gruß Wolfgang
 
Vielen Dank

genau diese Information schein ich irgendwie nicht mitbekommen zu haben bis jetzt. Klappt wie es muss mit dem absoluten Pfad.

Mit freundlichen Grüssen
blasphem
 

Ähnliche Themen

CGI laesst sich nicht ausfuehren

[PHP] Problem listen-socket & exec()

Zurück
Oben