Cronjob unter raspberry (raspbian) erstellen - sendmail fatal error ?

Meteorologe

Ensign
Registriert
Aug. 2006
Beiträge
254
Hallo,

mir wurde freundlicherweise ein Python-Script zur Verfügung gestellt, welches bei mir allerdings nicht funktionieren möchte.

Folgendermaßen sieht der Befehl des Cronjob's aus:
*/5 * * * * python /home/pi/bahn/json4simon.py

->5 Minuten (wie auch vorgesehen), wird das Script abgerufen. Nur leider funktioniert die Script-Ausführung nicht so ganz. Folgende Fehler werden mir im log angezeigt:

testaa.jpg

Wie kommt cronjob drauf, dass ich eine E-Mail versenden möchte? Ich würde die empfangenen Daten gerne auf dem Raspberry abspeichern.

Folgendermaßen sieht das Script aus:

PHP:
#!/usr/bin/python
# -*- coding: utf-8 -*-

# Benötigte Module importieren
import requests
import json

# URL zum Abruf der JSON-Daten
json_url = 'http://BLABLABLA.com

# Abruf und Aufbereitung der Zug-Daten
data = requests.get(json_url)   # Abruf der JSON-Daten
text = json.loads(data.text)    # Extrahiere den Text
trains = text["look"]["trains"]   # Extrahiere vom Text nur die Zuginformationen

# Verarbeitung der Daten (momentan nur Anzeige)
for n in range(0, len(trains)):
    print('name: ' + trains[n]["name"].replace(' ', ''))


Eine Änderung in ein Bash-Script (#!/bin/bash) führte nicht zum Erfolg. Die Ausgabe des Fehlerprotokolls brachte folgendes Ergebnis:
Traceback (most recent call last):
File "/home/pi/bahn/json4simon.py", line 19, in <module>
print(' lstopname: ' + trains[n]["lstopname"])
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 15: ordinal not in range(128)
/home/pi/bahn/json4simon.sh: Zeile 6: import: Kommando nicht gefunden.
/home/pi/bahn/json4simon.sh: Zeile 7: import: Kommando nicht gefunden.
/home/pi/bahn/json4simon.sh: Zeile 10: json_url: Kommando nicht gefunden.
/home/pi/bahn/json4simon.sh: Zeile 13: Syntaxfehler beim unerwarteten Wort `('
/home/pi/bahn/json4simon.sh: Zeile 13: `data = requests.get(json_url) # Abruf der JSON-Daten'

Habe ich einen wichtigen Schritt übersehen?

Vielen Dank für die Hilfe.
Simon
 
Da fehlt doch schon ein ' am ende der URL in Zeile 9. Das sieht man ja gleich bei den Syntax highlighter hier im Forum.
 
Also das Skript ist definitiv ein python script. Das ganze auf bash zu ändern hilft hier nicht. Es ist bei Cron Jobs so üblich, dass mails verschickt werden. Du müsstest deinen Cron Daemon Konfigurieren, sodass er keine mails mehr verschickt. Wo willst du überhaupt die Ausgabe von dem Python script haben? Am Bildschirm? da bist du dann komplett falsch unterwegs mit Cron, weil das nur in Logs schreibt.

Du könntest ein Bash Script schreiben, das alle 5 minuten das python script öffnet und die ausgabe ins Terminal weitergibt. Das Skript lässt du dann von deiner ~/.xsessionrc ausführen.
 
Zurück
Oben