Crontab und Skript-Ordner
Verfasst: Dienstag 5. September 2017, 19:21
Hallo zusammen,
ich habe folgendes Problem. Ich habe folgende Struktur:
App
\- delete_contacts.py
\- app-api.py
Im Ordner 'App' liegen zwei Python-Dateien, 'app-api.py' führt hierbei URL-Post-Requests an einen Webserver mittels JSON durch und liefert die Werte an die aufrufende Stelle in 'delete_contacts.py' zurück, wo die Daten weiter verarbeitet werden.
Soweit funktioniert alles, sofern ich 'delete_contacts.py' händisch aufrufe. Mittels crontab funktioniert das leider noch nicht ganz, dazu folgender Eintrag in crontab -e:
Das Skript soll zunächst mal zu Testzwecken jede Minute aufgerufen werden, auch das läuft anstandslos, allerdings sehe ich im app-error-log folgenden Traceback:
Beide Skripte gehören dem Benutzer, haben eine entsprechende Shebang und sind zusätzlich ausführbar. Ich habe das ganze Analog nochmal mit einfachen Skripten nachgestellt um zu schauen, ob ich einen Fehler in crontab oder bei den Pfaden / Rechtevergabe gemacht hätte - scheint aber nicht der Fall zu sein.
Der API-Call liefert den Wert der Daten nicht sofort zurück, kann es sein dass Crontab hier sturr durchfetzt ohne auf das zweite Skript "zu warten"? Oder liegt das Problem anderswo?
Vielen dank für die Hilfe im Voraus.
Mfg,
sls
ich habe folgendes Problem. Ich habe folgende Struktur:
App
\- delete_contacts.py
\- app-api.py
Im Ordner 'App' liegen zwei Python-Dateien, 'app-api.py' führt hierbei URL-Post-Requests an einen Webserver mittels JSON durch und liefert die Werte an die aufrufende Stelle in 'delete_contacts.py' zurück, wo die Daten weiter verarbeitet werden.
Soweit funktioniert alles, sofern ich 'delete_contacts.py' händisch aufrufe. Mittels crontab funktioniert das leider noch nicht ganz, dazu folgender Eintrag in crontab -e:
Code: Alles auswählen
* * * * * /usr/bin/python3 /home/user/App/delete_contacts.py >> /var/log/app.log 2> /var/log/app-error.log
Code: Alles auswählen
Traceback (most recent call last):
File "/home/user/App/delete_contacts.py", line 7, in <module>
response = obj.get_all_contacts()
File "/home/user/App/app-api.py", line 25, in get_all_contacts
req = requests.post(self.url+"contacts/all", headers=self.headers).json()
File "/usr/lib/python3/dist-packages/requests/models.py", line 808, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib/python3.5/json/__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Der API-Call liefert den Wert der Daten nicht sofort zurück, kann es sein dass Crontab hier sturr durchfetzt ohne auf das zweite Skript "zu warten"? Oder liegt das Problem anderswo?
Vielen dank für die Hilfe im Voraus.
Mfg,
sls