Synology-Forum.nl

Firmware => Synology DSM 5.1 en eerder => Topic gestart door: dborneman op 01 maart 2011, 23:13:34

Titel: Cronjob instellen Synology 3.1
Bericht door: dborneman op 01 maart 2011, 23:13:34
Ik heb al even gezocht op het internet, maar ik kom er niet uit. Ik krijg de crontab niet gevonden en kan dus geen cronjob instellen! Weet iemand de exacte locatie van de crontab?

Ik wil graag voor Magento de volgende cron job instellen:
*/5 * * * * curl -s -o /dev/null http://www.yoursite.com/absolute/path/to/magento/cron.php
Mocht iemand mij hiermee kunnen helpen met alle exacte commands die ik zou moeten uitvoeren in SSH heel graag!
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: wizjos op 02 maart 2011, 08:40:39
Hier al eens de zoekfuctie geprobeerd? Je komt dan een heel aantal keer de exacte lokatie tegen (/etc/crontab)

Wizjos
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: dborneman op 02 maart 2011, 11:46:53
Dat zag ik inderdaad, maar:
Cd /etc/crontab/
Werkt niet, wat doe ik dan verkeerd?
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: schapheer op 02 maart 2011, 12:12:26
voer crontab -e uit op de command prompt. Google even om te begrijpen hoe de editor werkt
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: wizjos op 02 maart 2011, 12:15:08
Citaat van: "dborneman"
Dat zag ik inderdaad, maar:
Cd /etc/crontab/
Werkt niet, wat doe ik dan verkeerd?
crontab is een bestand (met de cronjobs er in) in de directory /etc... en naar een bestand kun je geen cd uitvoeren.
Dus: cd /etc
gevolgd door bv.: vi crontab

en je kunt bewerken... (Denk er om dat vi een moeilijke editor is. Hou Google bij de hand voor de commando's en ga crontab niet wijzigen met een windows editor!)

Herstarten van cron doe je via /usr/syno/etc.defaults/rc.d/S04crond.sh

Wizjos
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: dborneman op 02 maart 2011, 12:58:26
Het is inmiddels gelukt:
(http://bornie.nl/photo/convert.php?dir=5072696e7473637265656e73&name=53636865726d61666265656c64696e6720323031312d30332d3032206f6d2031322e35382e34322e706e67&type=1&v=0)

Zit dit er verder okay uit? Ik heb /usr/bin/php vooraan de regel toegevoegd
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: wizjos op 02 maart 2011, 13:09:00
Ziet er op zich mooi uit. Maar... gaat niet werken ben ik bang... Webpagina's moet je benaderen via wget, zie bv. viewtopic.php?f=21&t=5398 (http://www.synology-forum.nl/viewtopic.php?f=21&t=5398)

Wizjos
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: dborneman op 02 maart 2011, 13:37:11
He Wizjos,

Ik heb het nu aangepast naar WGET en tevens een MAILTO toegevoegd voor als een cronjob niet goed wordt uitgevoerd, zie:
(http://bornie.nl/photo/convert.php?dir=5072696e7473637265656e73&name=53636865726d61666265656c64696e6720323031312d30332d3032206f6d2031332e33342e31362e706e67&type=1&v=0)

Maakt het verder eigenlijk nog veel uit ik een cronjob aanroep via bv. cronjob.sh of cronjob.php? Ik moest bij het aanroepen van het .sh bestand werken met het volledige path van wat bestanden en om deze reden had ik gekozen om te werken met de .php extensie (zie ook: http://www.magentocommerce.com/wiki/1_- ... a_cron_job (http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/how_to_setup_a_cron_job))
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: wizjos op 02 maart 2011, 14:59:44
Citaat van: "dborneman"
Maakt het verder eigenlijk nog veel uit ik een cronjob aanroep via bv. cronjob.sh of cronjob.php?
Dat zou ik werkelijk even niet weten...
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: cyrus1977 op 04 maart 2011, 17:39:32
Nee zolang je maar op de juiste manier aanroept;

php doe je

/usr/bin/php file.php

en een sh doe je

./file.sh

beide moet exec permissies hebben (chmod +x file.php of chmod +x file.sh)

Ik vraag me alleen af of de php-interpreter het snapt als je een wget doet ... denk het niet eigenlijk
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: dborneman op 04 maart 2011, 17:52:34
Is er een manier om te controleren of de cron job op dit moment werkt? Ik zag op het forum van Magento (systeem waar ik de Cronjob voor gebruik) dat ik wel Wget of Curl moest gebruiken
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: cyrus1977 op 04 maart 2011, 20:19:30
Ehh ja.. Ik neem aan dat de cronjob "iets" doet wat zichtbaar wordt als het gelopen heeft. Waarom heb je anders een cronjob gemaakt.

Maar je kan ook info terug vinden in: /var/log/cron.log
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: wizjos op 05 maart 2011, 09:56:23
Citaat van: "cyrus1977"
Ehh ja.. Ik neem aan dat de cronjob "iets" doet wat zichtbaar wordt als het gelopen heeft. Waarom heb je anders een cronjob gemaakt.

Maar je kan ook info terug vinden in: /var/log/cron.log
Dan moet je dat wel aanzetten... Edit hiertoe /usr/syno/etc.defaults/rc.d/S04crond.sh:
#!/bin/sh
#
# S04crond.sh - startup script for crond
#
# This goes in /usr/syno/etc/rc.d and gets run at boot-time.

CROND=/usr/sbin/crond


case "$1" in

start)
<------>if [ -x "$CROND" ] ; then
<------><------>mkdir -p /var/spool/cron/crontabs/
<------><------>ln -sf /etc/crontab /var/spool/cron/crontabs/root
<------><------>echo "Starting crond..."
<------><------>$CROND -l 8 -L /var/log/cron.log
<------>fi
<------>;;

stop)
<------>echo "stop crond"
<------>kill -USR1 `cat /var/run/crond.pid` > /dev/null 2>&1
<------>;;

*)
<------>echo "usage: $0 { start | stop }" >&2
<------>exit 1
<------>;;

esac
Het gaat dan om de vijfde regel in start): $CROND -l 8 -L /var/log/cron.log

Wizjos
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: dborneman op 05 maart 2011, 13:20:35
Dat is ook gelukt met de VI editor heb ik dat erbij gezet, maar cron restarten moet ik doen met:
/usr/syno/etc.defaults/rc.d/S04crond.sh zei je vul ik dan het volgende in:
# /usr/syno/etc.defaults/rc.d/S04crond.sh restart
online kwam ik dit command tegen:
# /etc/init.d/crond restart
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: klen op 05 maart 2011, 21:36:39
Van je crontab file klopt niets, behalve de oorspronkelijke ntpdate regel.

Post de exacte inhoud nog eens een keer, zonder jpg plaatje, maar als tekst in een code-blok, ajb.

Je moet php scripts aanroepen via een wget met een http -url en niet met /bin/php en al helemaal niet met /bin/php wget

Het beste is het om eerst via de command-line (ssh) het juiste commando te weten.
Dat commando zet je dan in je crontab file, maar dan wel met het volledige path ervoor.
Dus: stap 1 is: log in en probeer erachter te komen wat het juiste commando is om te doen wat je wilt, nl een php script draaien.
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: dborneman op 06 maart 2011, 02:09:25
Het gaat om het systeem Magento waar ik een cron job voor wil draaien. Op deze pagina staat uitgelegd hoe ik de cron.sh kan instellen of cron.php kan laten uitvoeren: http://www.magentocommerce.com/wiki/1_- ... a_cron_job (http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/how_to_setup_a_cron_job)

Het leek mij makkelijker om de cron.php elke 5 minuut op te roepen en op deze pagina staat:
If for some reason you can’t locate or access your php binary via crontab, you can also use curl or wget to activate cron.php
*/5 * * * * curl -s -o /dev/null http://www.yoursite.com/absolute/path/to/magento/cron.php
Uiteindelijk gecombineerd met de info die ik hier heb verkregen in het topic heb ik nu in mijn cron file het volgende staan:
/*5 * * * *        root    /usr/bin/php wget -s -o /dev/null http://www.****.nl/winkel/cron.php
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: klen op 06 maart 2011, 13:08:33
Het is belangrijk ervoor te zorgen dat alles na het woord 'root' goed werkt.
In jouw geval moet dus na het woord root dit commando goed werken:
/usr/bin/php wget -s -o /dev/null http://www.****.nl/winkel/cron.php (http://www.****.nl/winkel/cron.php)

Maar dat doet het niet, dat weet ik zeker.

Je moet het veranderen in een commando dat wordt uitgevoerd door wget
Dit moet ongeveer werken:
/usr/syno/bin/wget -q -O /dev/null http://www.****.nl/winkel/cron.php
Het is dus zaak dat je het eerst op de commando regel probeert, en als dat lukt zet je het in de crontab regel!
Overigens is het denk ik genoeg als in de http-url dit staat:
http://localhost/winkel/cron.php

Wanneer je dus een werkende commad-line regel hebt, zorg je dat je crontab er zo uitziet:
*/5 * * * *        root    /usr/syno/bin/wget -q -O /dev/null http://localhost/winkel/cron.php
Let op de eerste 3 karakters, jij had die verkeerd om in je voorbeeld!

Succes
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: dborneman op 06 maart 2011, 16:46:03
Wat bedoel je precies met het eerst proberen op commando regel?

Ik heb zojuist via SSH even geprobeerd dit command uit te voeren om te kijken of ik hier wat mee kon:
/usr/syno/bin/wget -q -O /dev/null http://www.****.nl/winkel/cron.php
Maar dat werkt verder niet! Wat doe ik precies verkeerd? Als ik het van te voren kan testen is inderdaad wel handig ;-)

Nu krijg ik deze melding:
/usr/syno/bin/wget: invalid option -- 0
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: cyrus1977 op 06 maart 2011, 17:07:34
klopt je url wel ??
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: klen op 06 maart 2011, 21:00:12
Citaat van: "dborneman"
Wat bedoel je precies met het eerst proberen op commando regel?

Ik heb zojuist via SSH even geprobeerd dit command uit te voeren om te kijken of ik hier wat mee kon:
/usr/syno/bin/wget -q -O /dev/null http://www.****.nl/winkel/cron.php
Maar dat werkt verder niet! Wat doe ik precies verkeerd? Als ik het van te voren kan testen is inderdaad wel handig ;-)

Nu krijg ik deze melding:
/usr/syno/bin/wget: invalid option -- 0
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.

wget klaagt over invalid option 0 (nul)

Je moet tussen de -q en /dev/null een -O (min hoofdletter o) plaatsen.
Titel: Re: Cronjob instellen Synology 3.1
Bericht door: dborneman op 07 maart 2011, 16:15:50
Ik heb het command nu goed ingevuld (blond dacht dat er inderdaad een nul stond) en het systeem voert vervolgens het proces uit en even later komt er een nieuwe regel met
Citaat
Servernaam>

Ik denk dus dat dit werkt, maar kan ik dit op een manier controleren?