PHP Script bei Crontab ausführen

Status
Für weitere Antworten geschlossen.

Destruction

Benutzer
Mitglied seit
19. Apr 2009
Beiträge
35
Punkte für Reaktionen
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
 

kupferrafi

Benutzer
Mitglied seit
17. Mrz 2007
Beiträge
88
Punkte für Reaktionen
0
Punkte
6
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
 

Destruction

Benutzer
Mitglied seit
19. Apr 2009
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
Ah gute Idee! :) :)
Dann werde ich das wohl auch so machen, vielen dank!
 

Destruction

Benutzer
Mitglied seit
19. Apr 2009
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
#minute hour mday month wday who command
*/5 * * * * wget http://192.168.2.***/cronjob.php > /dev/null

Funktioniert leider nicht... Also er ruft das script wohl anscheinend nicht auf.

Vielen Dank
cu
MfG
Destruction
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
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
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
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
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Und Neustart der DS oder des cron hattest Du auch gemacht, oder?
 

Destruction

Benutzer
Mitglied seit
19. Apr 2009
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
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?
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Jo. Das ist richtig so.
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
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...
 

Destruction

Benutzer
Mitglied seit
19. Apr 2009
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
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:

Destruction

Benutzer
Mitglied seit
19. Apr 2009
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
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
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
zu 1] ja
zu 2] nö, erst wenn die Platte wieder mal 15 Minuten lang geruht hat

Itari
 

Destruction

Benutzer
Mitglied seit
19. Apr 2009
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
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
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
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
 

Destruction

Benutzer
Mitglied seit
19. Apr 2009
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
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.
 

kupferrafi

Benutzer
Mitglied seit
17. Mrz 2007
Beiträge
88
Punkte für Reaktionen
0
Punkte
6
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