Spędziłem już ponad 1 godzinę, aby zrobić to łatwo i całkowicie nie powiodło się: /
Nie mogę się dowiedzieć, dlaczego ten python nie działa na crontabie, podczas gdy działa idealnie w wierszu poleceń ...
Skrypt to (bash):
#!/bin/bash
touch before_zzz_text.txt # to check if cron works at all
ls > "before_zzz_text.txt" # just to check if I'm in the correct directory
/root/anaconda3/bin/python -V > pv.txt # this is empty! or a white char
touch after_zzz_text.txt # this works new file every minute
W ten sposób wiem, że działa w cronie (pliki .txt są tworzone co minutę - podobnie jak cron działa co minutę).
Jednak pv.txt jest pusty ... więc wygląda na to, że skrypt bash nie działa?
W końcu chcę, aby bardziej skomplikowany skrypt działał w skrypcie bash, ale próbowałem wykopać, dlaczego nie działa, więc aby uprościć to teraz: „/ root / anaconda3 / bin / python -V”
/root/anaconda3/bin/
jest to mało prawdopodobne miejsce dla tłumacza. Zostanie utworzony pusty plik dziennika, jeśli błąd uniemożliwi uruchomienie interpretera. Dodaj 2>&1
na końcu python
połączenia, aby zobaczyć błędy.
stderr
: tak jak ty, założyłem, że będzie włączona stdout
, ale właśnie to potwierdziłem na własnym systemie. Cieszę się, że jesteś w interesach. Myślę, że prześlę odpowiedź, z korzyścią dla innych użytkowników strony.
/root/anaconda3/bin/python
plik skryptu Pythona? Jest to mylące, ponieważpython
jest to program obsługi, który chcesz uruchomić. Czy zaczyna się od#!/usr/bin/python
czegoś podobnego? Czy on i wszystkie jego komponenty katalogu mają uprawnienia do wykonania wszystkich? Jest to ważne, ponieważcrontab
środowisko nie jest takie samo jak dla twojego terminala. Jeśli.txt
pliki zostały wcześniej usunięte, z jakimi uprawnieniami i nazwami użytkowników / grup zostały utworzone?