PHP Script bei Crontab ausführen

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Destruction

Benutzer
Registriert
19. Apr. 2009
Beiträge
35
Reaktionspunkte
0
Punkte
0
Moin,

möchte automatisch Dateien von einem FTP Server leechen und will von daher auch automatisch dieses Script aufrufen, wie mache ich das am besten?
Habe die DiskStation erst seit kurzem, und habe von daher noch nicht so viel Ahnung davon, versuche mir aber Wissen anzueignen hehe.

Wie ich was in die crontab datei eintrage weiß ich, das problem ist nur, wie ich am besten eine PHP Datei ausführe.
Kenne das von meinem root server dass ich da /usr/bin/php5-cgi ./script.php machen kann.


Vielen Dank
MfG
 
Hallo,
ich habe das über wget gelöst z.B.
Rich (BBCode):
wget  -O $log_datei_tmp http://DS_IP:5000/123.php
$log_datei_tmp = eine temporäre Datei, da bei mir wget nach > /dev/null nicht funktionierte.


Gruss
Rafael
 
Ah gute Idee! :) :)
Dann werde ich das wohl auch so machen, vielen dank!
 
Dazu müsste die cronjob.php bei Dir im "web"-Verzeichnis liegen (und die Web Station aktiviert sein). Ist das denn bei Dir der Fall?

Trolli
 
Wer führt denn den Befehl aus? Versuch es mal mit:
Rich (BBCode):
*/5	*	*	*	*	root	/usr/syno/bin/wget http://192.168.2.***/cronjob.php

Hast Du die Kiste (bzw. den cron-Dienst) auch neu gestartet? Sind die Änderungen an der crontab nach dem Neustart erhalten geblieben? Funktioniert der Befehl denn so direkt auf der shell?

Trolli
 
Und Neustart der DS oder des cron hattest Du auch gemacht, oder?
 
Und Neustart der DS oder des cron hattest Du auch gemacht, oder?

Cron habe ich nur neu gestartet mit:
/usr/syno/etc.defaults/rc.d/S04crond.sh stop
/usr/syno/etc.defaults/rc.d/S04crond.sh start

MfG
Destruction

Edit.: Wenn ich die DS neustarte dann ist der cron nicht mehr in der Liste ... woran liegt das?
Ist das normal?
 
Jo. Das ist richtig so.
 
Edit.: Wenn ich die DS neustarte dann ist der cron nicht mehr in der Liste ... woran liegt das?
Ist das normal?
Ja, deshalb hatte ich das auch gefragt - die Disk Stations sind sehr sensibel was die Schreibweise in der crontab angeht. Zwischen den Spalten dürfen ausschliesslich Tab-Zeichen stehen, keine Leerzeichen und die Datei muss mit einem entsprechenden Linux-Editor gespeichert werden (z.B. der beiliegende vi). Möglich, dass es deshalb bei Dir nicht funktioniert. Die crontab wird dann beim Neustart gegen eine Standardversion ausgetauscht...
 
Ja, deshalb hatte ich das auch gefragt - die Disk Stations sind sehr sensibel was die Schreibweise in der crontab angeht. Zwischen den Spalten dürfen ausschliesslich Tab-Zeichen stehen, keine Leerzeichen und die Datei muss mit einem entsprechenden Linux-Editor gespeichert werden (z.B. der beiliegende vi). Möglich, dass es deshalb bei Dir nicht funktioniert. Die crontab wird dann beim Neustart gegen eine Standardversion ausgetauscht...

Moin Moin,

Also klappt jetzt! Habe die DS neu gestartet noch mal alles eingefügt und jetzt funzt es...
D.h. also wenn ich überall ein Tab-Zeichen reinmache, sollte die Datei beim neustart nicht gelöscht werden?
Sprich:
Rich (BBCode):
*/5	*	*	*	*	root	/usr/syno/bin/wget http://192.168.2.***/cronjob.php > /dev/null
Vielen Dank
MfG

Edit.: Klasse klappt wunderbar! Vielen Vielen Dank für die Hilfe. Eine Frage noch zwischendrin: Wie ist das eigentlich wenn das ausführen eines scripts so lange dauert dass es eigtl. schon ein 2. mal ausgeführt wird?
 
Zuletzt bearbeitet:
2 Fragen hätte ich noch...:

1. Ich habe im Menü eingestellt dass die Festplatte nach 15 Minuten ausgeschaltet wird, wird der Crontab dann trotzdem ausgeführt?

2. Wenn das Script noch runterläd, schaltet sich die Festplatte dann trotzdem runter?

Vielen Dank
MfG
 
zu 1] ja
zu 2] nö, erst wenn die Platte wieder mal 15 Minuten lang geruht hat

Itari
 
Hi,

also anscheinend stimmt das nicht! Er läd die Datei nämlich bei mir immer und immer wieder runter, das heißt... gehe ich länger weg, öffne das Webinterface dann fängt er wieder neu an die Datei runterzuladen über das Script.

Jemand eine Idee wie das "behoben" werden könnte ? =/ =/
MfG
Destruction
 
Vielleicht haben wir jetzt alle irgendwas nicht ganz verstanden ... du sagst dem crond mit deinem /etc/crontab-Eintrag [*/5], dass er alle 5 Minuten was machen soll ... folglich tut er das auch alle 5 Minuten ...

Itari
 
Nene, das war jetzt nur als Test. Habe ihm nun gesagt er soll das alle 2 Stunden machen und i-wie läd er aber 2 Dateien einfach immer wieder runter d.h. er stoppt mittendrin ( wenn ich länger net dran war ) und läd sie dann noch mal neu.
 
Moin Moin,
Rich (BBCode):
*/5	*	*	*	*	root	/usr/syno/bin/wget http://192.168.2.***/cronjob.php > /dev/null

Nur aus Interesse an der Sache =>
Schau mal bei dir ins Benutzerverzeichnis /root
Hängen da verweiste Downloaddateien rum?
Wie schon gesagt, bei mir ging das mit > /dev/null nicht. Es wurden immer neue Dateien angelegt, welche sich in /root stapelten.
Allerdings arbeite ich auch mit dem wget aus IPKG Paket (opt/bin/wget)

Schön, dass es bei dir auch klappt
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat