Toon posts:

cronjob instellen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben even met cronjobs aan het spelen maar het volgende lukt niet.
Ik heb een scriptje gemaakt wat een bestand weg schrijft. Wanneer ik dat scripte via de browser aanroep schrijft hij hem keurig weg.
Nu heb ik hem executable gemaakt #!/usr/bin/php en het scriptje ook executable rechten gegeven maar de cron schrijft niks weg.
Wat kan hier fout zijn?
Ik krijg ook error oid. Hoe kan je verder instellen dat de error naar je gemailt word?

Verwijderd

Al geprobeerd om het scriptje direct als executable zelf uit te voeren (dus gewoon ./script.php)?

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:28

Robtimus

me Robtimus no like you

Heb je wel het volle pad naar je script in je cronjob gezet?

Voor het tweede, speel eens met "mail" en 2> (error output redirecten).

Verder denk ik dat dit meer NOS is, dus ff een topic report gedaan.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:57
Dit heeft niets met Programmeren te maken; eerder een OS issue.

-> NOS

https://fgheysels.github.io/


  • zomertje
  • Registratie: Januari 2000
  • Laatst online: 03-02 16:28

zomertje

Barisax knorretje

Post even de hele regel die je in de cron gezet hebt.

het ultieme jaargetijde.... | #!/usr/bin/girl | Art prints and fun


  • JackBol
  • Registratie: Maart 2000
  • Niet online

JackBol

Security is not an option!

heb je het volledige path opgegeven? Cronjobs worden gewoonlijk altijd in je homedir gerunt

De actuele opbrengst van mijn Tibber Homevolt


Verwijderd

Topicstarter
Sorry voor het verkeerde forum. Wist niet waar ik hem posten moest.

Dit is wat ik in de cronjob heb gezet

* * * * * /var/www/test.php

Dus elke minuut moet hij test.php uitvoeren. Als ik hem via de browser aanroep maakt het wel het bestandje aan dus de code opzich is goed.

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 22:31

BCC

Heb je hem in je user cron gezet? Dan verwacht ik dat je niet van /var/www mag executen. Of heb je de rechten van 't bestandje ook goed staan (700)?

Wat gebeurd er als je het bestand met php runt? php test.php

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


Verwijderd

Topicstarter
Ik heb de cron als root aangemaakt.
Als ik php test.php doe voert die hem ook gewoon goed uit!

  • JackBol
  • Registratie: Maart 2000
  • Niet online

JackBol

Security is not an option!

Verwijderd schreef op maandag 14 augustus 2006 @ 22:49:
Ik heb de cron als root aangemaakt.
Als ik php test.php doe voert die hem ook gewoon goed uit!
wat is de eerste regel van je script?

De actuele opbrengst van mijn Tibber Homevolt


  • BCC
  • Registratie: Juli 2000
  • Laatst online: 22:31

BCC

Crons onder root sturen altijd de output van de cron naar root@jouwbox. Heb je mail? Zet anders eens een ls in je cron en kijk wat er gebeurd.

Waarom zet je niet gewoon php /var/www/test.php in je cron, als dat wel werkt? Ik vind dat netter eerlijk gezegd.

[ Voor 29% gewijzigd door BCC op 14-08-2006 22:53 ]

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


Verwijderd

Topicstarter
#!/usr/bin/php

  • JackBol
  • Registratie: Maart 2000
  • Niet online

JackBol

Security is not an option!

Als dat inderdaad de plek is waar php staat, en het script is executable, dan zou het moeten werken. (hier in ieder geval wel). Verder vind ik wat BCC zegt idd netter. gewoon de parser aanroepen en het script als parameter meegeven

De actuele opbrengst van mijn Tibber Homevolt


  • BCC
  • Registratie: Juli 2000
  • Laatst online: 22:31

BCC

_DH schreef op maandag 14 augustus 2006 @ 22:56:
[...]gewoon de parser aanroepen en het script als parameter meegeven
En netjes de aangeroepen php file verplaatsen naar een directory die niet te bereiken is via inet :)

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


Verwijderd

Topicstarter
@En netjes de aangeroepen php file verplaatsen naar een directory die niet te bereiken is via inet

Ja dat weet ik maar ik wilde eerste even zo testen maar ik krijg geen error niks.

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 22:31

BCC

Verwijderd schreef op maandag 14 augustus 2006 @ 22:59:
Ja dat weet ik maar ik wilde eerste even zo testen maar ik krijg geen error niks.
Testomgevingen hebben altijd de nare neiging naar productieomgevingen verplaatst te worden.. maar dat is offtopic. Werkt het nu al wel :)?

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


Verwijderd

Topicstarter
@Testomgevingen hebben altijd de nare neiging naar productieomgevingen verplaatst te worden.. maar dat is offtopic.

Nee hier niet ;-)

Nee, het werkt nog niet.

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 05-02 12:39
Is dit niet toevallig de laatste regel in je cronjob lijst? Vergeet dan niet dat er achter de regel nog een enter moet staan.

Verwijderd

Topicstarter
Nee er staat er maar 1 in en dat is deze. ;-)

Hoe kan ik er voor zorgen dat ik de error krijg ?

[ Voor 37% gewijzigd door Verwijderd op 14-08-2006 23:21 ]


  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 05-02 12:39
Ook is het maar de enige die erinstaat, aan het eind dient een enter te staan, anders wordt je opdracht niet uitgevoer. Heb me daar ook eens een keer helemaal lens naar gezocht.

  • sjoerdb2
  • Registratie: Juli 2001
  • Laatst online: 09-05-2025
ge-flopt schreef op maandag 14 augustus 2006 @ 23:15:
Is dit niet toevallig de laatste regel in je cronjob lijst? Vergeet dan niet dat er achter de regel nog een enter moet staan.
wat ge-flopt zegt, dus:

niet
code:
1
* * * * * /var/www/test.php


maar
code:
1
2
* * * * * /var/www/test.php
[lege regel]

  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

"#!/usr/bin/php" is een 'shebang' line, oftewel, de eerste line van een script. Als dit is wat je hebt staan in je crontab, is dat niet goed. Crontab moet wel altijd de hele paden hebben ja, dat weer wel :)
Wat je dus moet doen is:

- Het scriptje zelf hebben dat dus ook begint met "#!/usr/bin/php". Stel het script heet phpscript.php
- Een crontab rule aanmaken met de volledige paden. Dus zo:
code:
1
* * * * * /usr/bin/php -f /var/www/phpscript.php


Je moet alleen even kijken of 'php' ook echt in /usr/bin bij jou staat.
Hier kom je achter door op de commanline even het volgende te tikken:
code:
1
which php


Je script moet er dan ongeveer zo uitzien:
PHP:
1
2
3
4
#!/usr/bin/php
<?php
echo "rofl";
?>



En dan moet het werken.

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 03-02 15:14

deadinspace

The what goes where now?

sjoerdb schreef op maandag 14 augustus 2006 @ 23:26:
code:
1
2
* * * * * /var/www/test.php
[lege regel]
offtopic:
Er staat eigenlijk helemaal geen lege regel onder.

De eerste regel wordt gewoon afgesloten met een \n (zoals het hoort), maar na die \n komt helemaal niks meer, ook geen (lege) regel. Helaas geven een aantal editors het wel zo weer, wat tot misverstanden leidt.

En het zuigt dat cron er niet minstens een warning over geeft.

Verwijderd

Topicstarter
als je het php bestand executable maakt dmv #!/usr/bin/php hoeft er in de crontab toch geen /usr/bin/php -f bij ?

Maar ik heb het gedaan maar het werkt echt nog steeds niet. als ik het bestand met php test.php aanroep werkt het wel.

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

deadinspace schreef op maandag 14 augustus 2006 @ 23:35:
offtopic:
Er staat eigenlijk helemaal geen lege regel onder.
De eerste regel wordt gewoon afgesloten met een \n (zoals het hoort), maar na die \n komt helemaal niks meer, ook geen (lege) regel. Helaas geven een aantal editors het wel zo weer, wat tot misverstanden leidt.
En het zuigt dat cron er niet minstens een warning over geeft.
Het schijnt dat bepaalde cron implementaties daar geen 'last' van hebben trouwens :)
Sowieso vind ik het een bug, ongeacht wat de pure unix gekken ervan vinden, als ik 6 lege regels eronder zet kraait geen haan ernaar, maar ohohoh, wat een drama als ik er geen \n achterzet 8)7
Simpele fix zou zijn om de file uit te lezen en dan gewoon een \n erachter te plempen, dan heb je dit probleem niet meer :P

God, root, what is difference? | Talga Vassternich | IBM zuigt


Verwijderd

Topicstarter
Maar.... hij doet nog steeds niks ;-)

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 03-02 15:14

deadinspace

The what goes where now?

moto-moi schreef op maandag 14 augustus 2006 @ 23:37:
Sowieso vind ik het een bug, ongeacht wat de pure unix gekken ervan vinden, als ik 6 lege regels eronder zet kraait geen haan ernaar, maar ohohoh, wat een drama als ik er geen \n achterzet 8)7
Mja, of cron dat wel of niet zou moeten slikken is iets waar je over kunt discussieren, maar dat crontab er geen warning of error over geeft vind ik idd een bug. Ik heb er al eens naar gekeken, maar hoe crontab in elkaar steekt is vrij vervelend; ik vond geen makkelijke manier om dat toe te voegen.
Verwijderd schreef op maandag 14 augustus 2006 @ 23:58:
Maar.... hij doet nog steeds niks ;-)
Heb je de regel nou al afgesloten met een newline (aka "een lege regel eronder zetten")?

Krijg je een mailtje van cron met output / errors?

Verwijderd

Topicstarter
uhh ik voer hem uit onder root.
Waar kan ik die dan openen ?

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 03-02 15:14

deadinspace

The what goes where now?

Wordt de mail van root dan niet geforward naar een andere user?

[ Voor 5% gewijzigd door deadinspace op 15-08-2006 00:31 ]


Verwijderd

Topicstarter
Ik heb deze server net opgebouwd en heb nog weinig met mail gedaan.
Hoe kan ik dat doen?

  • JackBol
  • Registratie: Maart 2000
  • Niet online

JackBol

Security is not an option!

Verwijderd schreef op dinsdag 15 augustus 2006 @ 00:24:
uhh ik voer hem uit onder root.
Waar kan ik die dan openen ?
mail of mutt?

De actuele opbrengst van mijn Tibber Homevolt


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 03-02 15:14

deadinspace

The what goes where now?

Verwijderd schreef op dinsdag 15 augustus 2006 @ 00:31:
Ik heb deze server net opgebouwd en heb nog weinig met mail gedaan.
Dat is op zich wel belangrijk; er zijn dingen die als root mailen met waarschuwingen.
Hoe kan ik dat doen?
Dat gebeurt in /etc/aliases (maar afhankelijk van je mailserver kan het zijn dat je daarna nog een commando moet uitvoeren, of zelfs een speciaal commando moet gebruiken voor het editen van die file).

Je kan overigens ook je mail als root lezen, maar op lange termijn is forwarding toch een stuk praktischer.

  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

Verwijderd schreef op maandag 14 augustus 2006 @ 23:35:
als je het php bestand executable maakt dmv #!/usr/bin/php hoeft er in de crontab toch geen /usr/bin/php -f bij ?
Dat hoeft idd niet, het was dan ook meer voor de duidelijkheid. Echter moet het ook al is het dubbel, gewoon goed gaan.

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein


Verwijderd

Topicstarter
Ok maar hij werkt dus nog niet.
Staat de cron altijd aan?

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 03-02 15:14

deadinspace

The what goes where now?

Ja, heb je nou al je root mail gelezen? Of die newline toegevoegd?
Staat de cron altijd aan?
Cron hoort altijd te draaien, en dat kun je controleren met ps.

Je kunt trouwens ook testen of een cronjob goed uitgevoerd wordt door iets van "touch /tmp/test" als commando op te geven, en te kijken of die file ontstaat.

  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 23-12-2025
Wat is je distro? Kun je uberhaupt het PHP script command line uitvoeren als sudo root (of als user die jij gespecifieerd hebt in je cron). Heb je bepaalde verdere permissies (SELinux) die het kan tegenhouden? Draait je cron wel?

Pandora FMS - Open Source Monitoring - pandorafms.org


Verwijderd

Topicstarter
Oplossing om mail te ontvangen is oa bovenaan te zetten:
MAILTO=emailadres@test.nl

  • Teckna
  • Registratie: Mei 2002
  • Laatst online: 02-02 17:01
Zorg ervoor dat er ook een CLI versie van PHP is geinstalleerd, hierna kan dit allemaal via de code die demon al aangaf gerunned worden.
Pagina: 1