CronJobs - die Alternative

Status
Für weitere Antworten geschlossen.

musicmaster

Benutzer
Mitglied seit
26. Apr 2009
Beiträge
37
Punkte für Reaktionen
0
Punkte
6
Hallo,
ich habe ein (kleines?) Problem. Alles installiert wie vorgesehen. Zuerst 3rdparty dann cronjob. Sieht alles sehr gut aus. Status nach der Installation "angehalten". Wenn ich versuche den Status über Button"Aktion" in "Ausführen" zu ändern kommt zwar das "Moving wheel" aber der Status ändert sich nicht.

Irgendwelche Ideen?

Gruß
Eberhard
 

scholzol

Benutzer
Mitglied seit
12. Feb 2011
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Habe das gleiche Problem, wie musicmaster. Gibt es schon irgendwelche Lösungen ?
 

Puppetmaster

Benutzer
Sehr erfahren
Mitglied seit
03. Feb 2012
Beiträge
18.991
Punkte für Reaktionen
628
Punkte
484
Hallo!

Das Paket muß nicht im Status "läuft" sein, es sollte auch so laufen. Wichtig ist, dass vorher "init 3rd Party" installiert wurde.
 

Herbyak

Benutzer
Mitglied seit
18. Dez 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hallo Atari,
Dein Skript hat bisher wunderbar funktioniert. Jetzt habe ich auf DSM 4.3 den update gemacht und kann den Cronjob nicht mehr aufrufen. Unter https://Name_des_DS:5001/phpsrc/cronjobs/cronjobs.php wird die Seite nicht mehr gefunden. Was muss ich machen, um den Cronjob wiede aufzurufen. Er läuft im übrigen im Hintergrund.
Gruß,
Herby
 

Herbyak

Benutzer
Mitglied seit
18. Dez 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hallo,

hat jemand von den Experten einen Vorschlag, wie das Problem zu lösen ist?

Danke+Gruß,
Herby
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Das Script ist schon ein wenig älter und ein Teil des Paketes liegt in phpsrc, der aber bei einem DSM Update gelöscht wird. Du musst es erneut installieren, dann sollte es wieder funktionieren.
 

Herbyak

Benutzer
Mitglied seit
18. Dez 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hallo,
Danke für den Tip - hat super geklappt!
Gruß,
Herby
 

exiter29

Benutzer
Mitglied seit
28. Jun 2010
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
Hi,

nachdem ich das Script erfolgreich installiert habe, würde ich nun gerne tägl. eine Internetseite aufrufen,
bzw. eine bestimmte php-Datei. ich hätte das in der CronJobs Tabelle wie folgt hinterlegt:
30 | 15 | * | * | * | <user> | wget http://www.xxxxx.php

das sollte doch eigentlich korrekt sein oder?
oder mache ich da einen Fehler. Nachdem ich den Eintrag angelegt habe und das ganze
mit "save /etc/...." gespeichert habe, wird dieser Eintrag auch angezeigt, jedoch scheint
das ganze nicht zu funktionieren...

Danke!

Grüße,
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Benutze lieber den Aufgabenplaner im DSM. Der Cronjob-Editor ist schon sehr alt und für entsprechend andere DSM-Versionen erstellt worden.

MfG Matthieu
 

exiter29

Benutzer
Mitglied seit
28. Jun 2010
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
Benutze lieber den Aufgabenplaner im DSM. Der Cronjob-Editor ist schon sehr alt und für entsprechend andere DSM-Versionen erstellt worden.

MfG Matthieu

Hi,

Danke für die Info... noch eine dumme Frage, wo finde ich den Aufgabenplaner? installiert ist die DSM 3.1 die 4.x läuft ja bekanntlich auf der 107+ nicht

Besten Dank!
 

Puppetmaster

Benutzer
Sehr erfahren
Mitglied seit
03. Feb 2012
Beiträge
18.991
Punkte für Reaktionen
628
Punkte
484
Den Aufgabenplaner gibt es erst seit DSM 4.2(?).
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Oh, sorry war mir nicht klar dass es um eine 107+ geht. Was mir noch bei dem Befehl auffällt: Gibst du irgendwo das Ausgabeverzeichnis an?

MfG Matthieu
 

exiter29

Benutzer
Mitglied seit
28. Jun 2010
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
Oh, sorry war mir nicht klar dass es um eine 107+ geht. Was mir noch bei dem Befehl auffällt: Gibst du irgendwo das Ausgabeverzeichnis an?

MfG Matthieu

Hi,

nein, eigentlich nur so, wie ich es beschrieben habe. ich möchte nur eine php-Seite aufrufen, sonst nichts.
wget wird da wohl nicht so gut sein, da es ja einen Download macht oder?

Danke!
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Woran merkst du dass es nicht mehr geht wenn du keine Ausgabe erwartest? Hast du den Befehl mal auf der Kommandozeile direkt ausgeführt?

MfG Matthieu
 

exiter29

Benutzer
Mitglied seit
28. Jun 2010
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
Woran merkst du dass es nicht mehr geht wenn du keine Ausgabe erwartest? Hast du den Befehl mal auf der Kommandozeile direkt ausgeführt?

MfG Matthieu

also wenn ich den Befehl auf der Console ausführe, wird die entspr. php-Seite gedownloaded. Was ich eigentlich nicht möchte, es sollte diese ja nur ausgeführt werden...
hat denn keiner eine Idee?
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Einfach nur wget läd deine Seite herunter, du wirst also mit deinen Versuchen schon ne Menge Seiten irgendwo gespeichert haben (vermutlich in /root).
Für das "leise" Ausführen gibt es den Parameter -q (quiet), was aber immer noch eine 0-Byte Datei erzeugt, deshalb Ausgabe nach /dev/null (Mülleimer).
/usr/syno/bin/wget -q -O /dev/null http://deine-seite.php

Rich (BBCode):
30 | 15 | * | * | * | root | /usr/syno/bin/wget -q -O /dev/null http://deine-seite.php

Wichtig ist auch, das du mit dem eingebauten Cron nur den User "root" benutzen kannst, andere User werden ignoriert. Soll ein anderer User als "root" benutzt werden, musst der root sich als <user> ausgeben und damit das Script aufrufen.

Rich (BBCode):
30 | 15 | * | * | * | root | /bin/su -m <user> -c "/usr/syno/bin/wget -q -O /dev/null http://deine-seite.php"

Falls du Parameter übergeben möchtest, dann muss das & mit / escaped werden. Und immer absolute Pfadangaben in Scripts verwenden, damit auch das gewünschte Script benutzt wird.
 

exiter29

Benutzer
Mitglied seit
28. Jun 2010
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
Einfach nur wget läd deine Seite herunter, du wirst also mit deinen Versuchen schon ne Menge Seiten irgendwo gespeichert haben (vermutlich in /root).
Für das "leise" Ausführen gibt es den Parameter -q (quiet), was aber immer noch eine 0-Byte Datei erzeugt, deshalb Ausgabe nach /dev/null (Mülleimer).
/usr/syno/bin/wget -q -O /dev/null http://deine-seite.php

Rich (BBCode):
30 | 15 | * | * | * | root | /usr/syno/bin/wget -q -O /dev/null http://deine-seite.php

Wichtig ist auch, das du mit dem eingebauten Cron nur den User "root" benutzen kannst, andere User werden ignoriert. Soll ein anderer User als "root" benutzt werden, musst der root sich als <user> ausgeben und damit das Script aufrufen.

Rich (BBCode):
30 | 15 | * | * | * | root | /bin/su -m <user> -c "/usr/syno/bin/wget -q -O /dev/null http://deine-seite.php"

Falls du Parameter übergeben möchtest, dann muss das & mit / escaped werden. Und immer absolute Pfadangaben in Scripts verwenden, damit auch das gewünschte Script benutzt wird.

Hi, besten Dank für die Hilfe!
also im root ist da nichts abgelegt worden. Wenn ich Deinen o.g. Befehl im fenster ausführe bekomme ich genau das was ich will. ich habe dies nun als
job angelegt, mal schauen ob´s nun auch funktioniert....
 

exiter29

Benutzer
Mitglied seit
28. Jun 2010
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
ok, also als Job funktioniert´s anscheinend nicht. Wie kann ich prüfen, ob auch der Dienst läuft? also mit ps taucht nichts mit cron* oder
so auf....
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Starte mal den Cron einmal per Cronjob Oberfläche, indem du den Button "save /etc/crontab & restart crond" drückst. Dann wird zusätzlich noch das Log aktiviert, prüfen kannst das dann wieder mit und es sollte ungefähr sowas dabei rauskommen:
Rich (BBCode):
22924 root      3236 S    crond -l 8 -L /var/log/cron.log
22930 root      4876 S    grep cron
Leider ist das Log nach einem Neustart nicht automatisch aktiv, muss immer per CronJob manuell oder per extra Script am Ende vom Boot der DS aktiviert werden.
In CronJobs solltest du dann eine Zeile "Feb 18 12:56:42 crond: crond (busybox 1.16.1) started, log level 8" sehen, dann ist das log aktiviert. Log ansehen entweder unterhalb in CronJobs oder auf der Shell mit
Rich (BBCode):
more /var/log/cron.log
Zum Testen deines Eintrages solltest du das -q und -O /dev/null entfernen, sonst wird ja Nichts ins Log geschrieben.
 
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