Nicht sicher, ob jemand in diese aufgetreten ist, aber ich nehme Vorschläge für die Fehlerbehebung und/oder alternative Methoden.Probleme beim Ausführen von Python-Skript von Windows-Task-Scheduler, die pscp
Ich habe einen Windows 2008 Server, auf dem ich mehrere geplante Aufgaben ausführen. Eine dieser Aufgaben ist ein Python-Skript, das pscp verwendet, um sich bei einer Linux-Box anzumelden, nach neuen Dateien zu suchen und diese, wenn es etwas Neues gibt, in ein lokales Verzeichnis auf dem Laufwerk C: zu kopieren. Ich habe ein paar Logging in das Skript an wichtigen Punkten und ich verwende logging.basicConfig(level=DEBUG)
.
Ich habe den Befehl mit einer Variablen command = 'pscp -pw xxxx [email protected]:/ c:\local_dir'
erstellt und dann verwende ich subprocess.call(command)
, um den Befehl auszuführen.
Jetzt ist hier der seltsame Teil. Wenn ich das Skript manuell über die Befehlszeile ausführe, funktioniert es einwandfrei. Neue Dateien werden heruntergeladen und verarbeitet. Wenn der Taskplaner das Skript ausführt, werden jedoch keine neuen Dateien heruntergeladen. Das Skript wird unter demselben Benutzer ausgeführt, führt jedoch zu unterschiedlichen Ergebnissen.
Gemäß den Protokolldateien, die vom Skript und der Linux-Box erstellt wurden, meldet sich das Skript erfolgreich in der Linux-Box an. Es werden jedoch keine Dateien heruntergeladen, obwohl neue Dateien vorhanden sind. Auch wenn ich es über die Befehlszeile ausführe, werden Dateien heruntergeladen.
Irgendwelche Ideen? Vorschläge, alternative Methoden?
Danke.
Vielen Dank für diese Antworten. Es stellt sich heraus, dass Sie beide recht haben. Taskplaner ist auf zwei Arten seltsam: Erstens; Es mag keine gemappten Laufwerke. Es funktioniert gut mit UNC-Referenzen. Zweite; Es mag eine vollständige Pfadreferenz für alles. Dateien, Befehle, Syntax in Skripten, alles. Mit diesen beiden Techniken habe ich mein Problem gelöst. Jetzt ist mein einziges Problem, zu entscheiden, welche Antwort richtig zu klicken, da beide arbeiten. – user1070061