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>&1na końcu pythonpołą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/pythonplik skryptu Pythona? Jest to mylące, ponieważpythonjest to program obsługi, który chcesz uruchomić. Czy zaczyna się od#!/usr/bin/pythonczegoś 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.txtpliki zostały wcześniej usunięte, z jakimi uprawnieniami i nazwami użytkowników / grup zostały utworzone?