Raspbian: cronjob wil niet werken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • MdO82
  • Registratie: Maart 2007
  • Laatst online: 06:23
Ik loop tegen een probleem aan met het gebruik van cronjob.

Ik heb een Rpi ingericht met rasbian voor het uitlezen van mijn omvormer en die de gegevens doorstuurt naar PVoutput.

Ik ben al bezig geweest in het topic: Datalogging: PV systemen
Maar omdat het volgens mij puur een probleem is wat ik heb met een cronjob leek het mij beter om hier een topic aan te maken.

Ik heb Omnik Data Logger op mijn pi gezet om dus de omvormer uit te lezen.

Als ik python LiveStats.py uitvoer in de shell van raspbian dan krijg ik netjes de gegevens van mijn omvormer te zien.
De bijgeleverde config file staat dus goed ingesteld.
Als ik handmatig python OmnikExport.py uitvoer in de shell dan worden de gegevens ook netjes in PVoutput gezet.

Handmatig geen probleem.

Nu had ik om te testen een cronjob aangemaakt in /etc/cron.d en deze doet het ook zonder problemen, maar ik had een extra regel toegevoegd om te testen of de job het deed.

Mijn job zag er als volgt uit:
*/2 * * * * mick /home/mick/CronJobs/RunACronTask.sh
*/1 * * * * mick /usr/bin/python /home/mick/Omnik-Data-Logger/OmnikExport.py

Deze werkt zonder problemen.
In de taak RunACronTask stond een simpele opdracht

#!/bin/sh
date >>/home/pi/CronOutput/output.txt

Die maakte dus alleen een file aan met de datum.
Niet zo heel boeiend dus niet echt nodig.
Maar nu ik deze regel heb verwijderd en alleen de taak van de OmnikExport er nog staat doet de taak niks meer.

Iemand een idee hoe ik de OmnikExport weer draaiend krijg ?

2250 WP Zuid PVoutput


Acties:
  • 0 Henk 'm!

  • Sendy
  • Registratie: September 2001
  • Niet online
Staan er foutmeldingen in de log?

Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 10:00

thunder7

houten vaas/schaal nodig?

Meestal komt zoiets doordat je in je shell bepaalde omgevingsvariabelen wel hebt, en in een cronjob niet, zoals $HOME of $MAIL.

Wat gebeurt er als je

env /usr/bin/python /home/mick/Omnick-Data-Logger/OmnikExport.py

uitvoert (dus met een leeg environment)?

Je kunt cron trouwens ook laten loggen....

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • 0 Henk 'm!

  • MdO82
  • Registratie: Maart 2007
  • Laatst online: 06:23
thunder7 schreef op zondag 25 oktober 2015 @ 22:01:
Meestal komt zoiets doordat je in je shell bepaalde omgevingsvariabelen wel hebt, en in een cronjob niet, zoals $HOME of $MAIL.

Wat gebeurt er als je

env /usr/bin/python /home/mick/Omnick-Data-Logger/OmnikExport.py

uitvoert (dus met een leeg environment)?

Je kunt cron trouwens ook laten loggen....
Ik moet eerlijk gelijk bekennen dat het niet wat nieuw voor me is ;)
Hoe kan ik dat voor elkaar krijgen ?

2250 WP Zuid PVoutput


Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 10:00

thunder7

houten vaas/schaal nodig?

man cron

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • 0 Henk 'm!

  • MdO82
  • Registratie: Maart 2007
  • Laatst online: 06:23
Als ik het volgende doe: cron -L 4

cron: can't open or create /var/run/crond.pid: Permission denied


ls -l /var/run/

-rw-r--r--  1 root  root      4 Oct 25 21:56 crond.pid

2250 WP Zuid PVoutput


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:04

Hero of Time

Moderator LNX

There is only one Legend

Waarom het je een entry in cron.d gezet, als je dat net zo goed, voor de specifieke gebruiker, ook via crontab -e kan doen? Heb je ook geen root rechten nodig om je entry te wijzigen en hoef je ook geen gebruiker in te vullen onder wie het moet draaien.

Verder is het loggen redelijk eenvoudig, alles komt in /var/log terecht. Als je een MTA hebt, komt het zelfs in de mail van de specifieke gebruiker (standaard /var/spool/mail/$USER).

Het snelste kan je het zelfs nog oplossen door je python geval in een shell script hangen en in het script zelf nog even .bashrc sources, wat debug uitspugen en dan met /usr/bin/python je python script aanroepen.

Overigens als je iets elke minuut wilt laten draaien, is */1 niet nodig. * betekend al elke minuut, pas als je iets wilt dat afwijkt, kan je het op zo'n manier schrijven, bijvoorbeeld elke 5 minuten is dan */5.

Commandline FTW | Tweakt met mate

Pagina: 1