Wenn ich ein Python-Skript in einem Terminal ausführe, wird es wie erwartet ausgeführt. lädt die Datei herunter und speichert sie an der gewünschten Stelle.
sudo python script.py
Ich habe das Python-Skript zur Root-Crontab hinzugefügt, aber dann wird es so ausgeführt, wie es soll, außer dass die Datei nicht geschrieben wird.
$ sudo crontab -l
> * * * * * python /home/test/script.py >> /var/log/test.log 2>&1
Unten finden Sie ein vereinfachtes Skript, bei dem das Problem weiterhin besteht:
#!/usr/bin/python
scheduleUrl = 'http://test.com/schedule.xml'
schedule = '/var/test/schedule.xml'
# Download url and save as filename
def wget(url, filename):
import urllib2
try:
response = urllib2.urlopen(url)
except Exception:
import traceback
logging.exception('generic exception: ' + traceback.format_exc())
else:
print('writing:'+filename+';')
output = open(filename,'wb')
output.write(response.read())
output.close()
# Download the schedule
wget(scheduleUrl, schedule)
Ich erhalte die Meldung "Schreiben: Name der Datei;" innerhalb des Protokolls, an das der Cron-Eintrag ausgegeben wird. Aber die eigentliche Datei ist nirgends zu finden ...
Das Verzeichnis / var / test ist auf 777 geändert und mit jedem Benutzer kann ich Dateien nach Belieben hinzufügen und ändern.