Nie jestem pewien, czy ktoś go uruchomił, ale przyjmuję sugestie dotyczące rozwiązywania problemów i/lub metod alternatywnych.Problemy z uruchamianiem skryptu Pythona przez program do planowania zadań systemu Windows, który wykonuje polecenie pscp
Mam serwer Windows 2008, na którym uruchamiam kilka zaplanowanych zadań. Jednym z tych zadań jest skrypt w języku Python, który używa protokołu pscp do logowania do systemu Linux, sprawdza nowe pliki i jeśli jest coś nowego, kopiuje je do lokalnego katalogu na dysku C :. Zanotowałem również logowanie do skryptu w kluczowych punktach i używam logging.basicConfig(level=DEBUG)
.
Zbudowałem polecenie, używając zmiennej, command = 'pscp -pw xxxx [email protected]:/ c:\local_dir'
, a następnie używam subprocess.call(command)
do wykonania polecenia.
Oto część dziwna. Jeśli uruchomię skrypt ręcznie z linii poleceń, działa dobrze. Nowe pliki są pobierane i przetwarzane. Jeśli jednak Task Scheduler uruchomi skrypt, żadne nowe pliki nie zostaną pobrane. Skrypt działa pod tym samym użytkownikiem, ale przynosi różne wyniki.
Zgodnie z plikami dziennika utworzonymi przez skrypt i na pudełku Linux, skrypt pomyślnie loguje się do Linux-a. Jednak żadne pliki nie są pobierane pomimo istnienia nowych plików. Ponownie, gdy uruchomię go za pomocą wiersza poleceń, pliki zostaną pobrane.
Wszelkie pomysły? sugestie, alternatywne metody?
Dzięki.
Dzięki za te odpowiedzi. Okazuje się, że oboje macie rację. Harmonogram zadań jest dziwny na dwa sposoby: Pierwszy; nie lubi mapowanych dysków. Działa dobrze z referencjami UNC. Druga; dla wszystkich lubi pełne odwołanie do ścieżki. Pliki, polecenia, składnia w skryptach, wszystko. W rzeczywistości, używając tych dwóch technik, naprawiłem mój problem. Teraz moim jedynym problemem jest ustalenie, która odpowiedź na kliknięcie jest poprawna, ponieważ oba działają. – user1070061