Cron draait niet op DD-WRT i.c.m. Python-script

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • DiedB
  • Registratie: September 2011
  • Laatst online: 27-09 21:04
Ik ben een complete noob op Linux-gebied, en dit de eerste keer is dat ik (via SSH) met de commandline werk.

Ik heb een scriptje dat in Python geschreven is om de data van de omvormer (PV-systeem) te halen en dit te uploaden naar PVOutput.org. Dit scriptje benadert de omvormer elke 5 minuten. Ik heb het scriptje getest op een Windows-PC en dit werkt.

De volgende stap was om dit scriptje te laten draaien op iets dat altijd aan staat. Ik kwam op het idee om dit door het router te laten doen, een TP-Link TL-WR1043ND (v1) met DD-WRT. Deze is in staat cronjobs uit te voeren, zodat het script elke 5 minuten draait. Native wordt geen Python ondersteund, maar dit kreeg ik werkend door Optware te installeren en de python-package binnen te halen. Ik kan nu via SSH met de commandline het script uitvoeren (dat op een USB-stick staat, gemount op /mnt/sda1):

code:
1
root@APWerkkamer ~ $ python /tmp/mnt/sda1/apps/pvoutput/OmnikExport.py


Het script draait, de data wordt geüpload en er worden een paar regels aan de logfile toegevoegd. Het router is dus in staat om het script te draaien.

Maar nu komt het probleem, ik wil het script namelijk elke 5 minuten laten draaien. Je zou denken dat dat geen problemen moet geven, maar dat pakte anders uit. Na een paar uur klooien draait het nog steeds niet. Ik heb de env waarin cronjob draait gelijk gemaakt aan de env van de shell (ergens op internet gevonden) en dus de PATH aangeduid in de cronjob. Dit is de code die ik in de routersettings heb gegooid:

code:
1
2
3
PATH=/sbin:/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/usr/bin:/usr/sbin:/opt/usr/local/bin
LD_LIBRARY_PATH=/opt/lib:/opt/usr/lib:/lib:/usr/lib:/opt/usr/local/lib
* * * * * /tmp/mnt/sda1/opt/usr/bin/python /tmp/mnt/sda1/apps/pvoutput/OmnikExport.py


Het draait voor geen meter. Ik heb van alles geprobeerd, maar het script draait niet.

Nog een paar dingen:
  • Het ligt niet aan het cronjob-proces zelf, andere cronjobs draaien prima
  • Het ligt niet aan het path, als ik de onderste regel van de cronjob plak in de shell (zonder de sterretjes) dan draait het script prima.
  • Ik heb veel meer geëxperimenteerd met de cronjob die ik aan het router meegeef maar niets lijkt te werken.
Iemand een idee?

Acties:
  • 0 Henk 'm!

  • DiedB
  • Registratie: September 2011
  • Laatst online: 27-09 21:04
Never mind, got it working.

Mocht iemand er nog wat aan hebben:
code:
1
2
3
4
PATH=/sbin:/opt/bin:/opt/usr/bin:/opt/sbin:/opt/usr/sbin:/bin:/usr/bin:/usr/sbin:/opt/usr/local/bin
LD_LIBRARY_PATH=/opt/lib:/opt/usr/lib:/lib:/usr/lib:/opt/usr/local/lib
PYTHONPATH=/opt/usr/bin/python
* * * * * root python /mnt/sda1/apps/pvoutput/OmnikExport.py