Seite 1 von 1
problem mit subprocess.call
Verfasst: Donnerstag 22. März 2018, 12:36
von muscat
hallo,
wie man sich denken kann, anfänger - sorry
kann mir einer sagen, warum mein code immer einen OSError macht. was muß ich ändern
Code: Alles auswählen
import os, sys, subprocess
try:
# os.system ("crontab -l > mycron.txt")
subprocess.call ("crontab -l > mycron.txt")
f = "ok"
except Exception as e:
f = ("Fehlermeldung:", e.args[0])
Re: problem mit subprocess.call
Verfasst: Donnerstag 22. März 2018, 13:16
von Sirius3
@muscat: Du benutzt hier Shell-Befehle, die call nicht kennt. Falls Du mit der Ausgabe von crontab weiterarbeiten willst, solltest Du sie nicht erst in eine Datei schreiben, sondern direkt damit arbeiten. Die Exception sollte man an der Stelle, wo sie sinnvoll behandelbar ist behandeln, und nicht in eine Variable `f` (schlechter Name, weil nichtssagend) entweder einen String oder ein Tuple schreiben, das dann wieder später mühselig auseinander genommen werden muß.
So:
Code: Alles auswählen
import subprocess
with open("mycron.txt", "wb") as output:
subprocess.call(["crontab", "-l"], stdout=output)
oder so:
Code: Alles auswählen
import subprocess
for line in subprocess.Popen(["crontab", "-l"], stdout=subprocess.PIPE).stdout:
print(line)
Re: problem mit subprocess.call
Verfasst: Donnerstag 22. März 2018, 19:30
von muscat
hallo Sirius3,
danke. hat an meinem Raspi vor mir geklappt. Auf meinen entfernten Raspi, zu dem ich nur per email zugriff habe leider nicht.
habe mich jetzt entschlossen, eine neue speicherkarte zu erstellen, und dorthin zu schicken.
morgen versuche ich mich, den crontab per email neu zu schreiben. du befürchtest richtig, wenns nicht klappt, bin ich wieder hier.
thanks
georg
Re: problem mit subprocess.call
Verfasst: Freitag 23. März 2018, 11:02
von muscat
moin,
es geht. Ist es so auch in Ornung? Habe den code sicher nicht 100% verstanden bislang. sorry.
thanks
georg
Code: Alles auswählen
import os, subprocess, m100, time, datetime
with open("mycron.txt", "rb") as output:
subprocess.call(["crontab"], stdin=output)
Re: problem mit subprocess.call
Verfasst: Freitag 23. März 2018, 11:26
von Sirius3
@muscat: in diesem Fall einfach
Re: problem mit subprocess.call
Verfasst: Freitag 13. April 2018, 09:40
von muscat
hallo,
sorry noch mal ein Problem.
kann es sein, wenn ich subprocess.call an der Konsole ausführe, als Administrator mit sudo su, dass es klappt
und wenn ich es über einen crontab ausführen lasse, klappt es nicht?
weiß da im Moment nicht weiter.
danke
georg
Re: problem mit subprocess.call
Verfasst: Freitag 13. April 2018, 10:00
von Sirius3
@muscat: Du willst CronJobs mit einem CronJob setzen? Kannst Du das genauer erklären?
Re: problem mit subprocess.call
Verfasst: Freitag 13. April 2018, 13:57
von muscat
sorry, wenn ich unklar rüberkomme.
Ich habe eine Raspi am laufen, der nicht in Reichweite ist, und meine Beregnung im Garten steuert. Leider kann ich nur über email mit dem Raspi kommunizieren, da es über einen Router vom Nachbarn läuft. Ich möchte jetzt die Beregnungszeiten, die per CronJob gesteuert werden ändern. Dazu wollte ich mit subprocess.call die alten CronJobs lesen und dann neue auf den Raspi schreiben.
Das lesen und schreiben der CronJobs, sowie das auswerten der emails wird natürlich vom lfd. CronJob veranlasst.
thanks georg