Oto, co zrobiłem na Debian Jessie:
- zainstaluj crona przez
apt-get install cron
- włóż
backup_crontab
plik/etc/cron.d/
Jednak zadanie nigdy się nie uruchamia.
Oto kilka wyników:
/# crontab -l
no crontab for root
/# cd /etc/cron.d && ls
backup_crontab
/etc/cron.d# cat backup_crontab
0,15,30,45 * * * * /backup.sh >/dev/null 2>&1
Czy jest coś, co można zrobić, aby aktywować określony crontab lub aktywować samą „usługę” crona?
ls /etc/cron.d
jest równoważnacd /etc/cron.d && ls
pod względem wydajności. Jedyną różnicą jest to, że katalog roboczy się nie zmieni.Odpowiedzi:
Pliki
/etc/cron.d
muszą również zawierać listę użytkowników , dla których zadanie ma zostać uruchomione.to znaczy
Należy również upewnić się, że uprawnienia i właściciel: grupa są ustawione poprawnie (
-rw-r--r--
i są własnościąroot:root
)źródło
crontab -l
raporty o wpisach cron w/var/spool/cron/crontabs/
- tj . crontabs na użytkownika ./etc/cron.d
pliki to crontabs systemowe i nie są zgłaszane przezcrontab -l
.root
do pliku - po prostucrontab -l
nie wspomniałem o tym, ponieważ wyjaśniłeś, dlaczego - dziękuję za pomocetc/cron.d
pliku kropkę pośrodku nazwy i zadanie nigdy nie zostało wykonane, dopóki nie zmieniłem jego nazwyInną rzeczą, którą zaobserwowałem, jest to, że plik w
/etc/cron.d
nie może mieć rozszerzenia. W moim konkretnym przypadku miałem dowiązanie symboliczne:Ograniczenia nazw plików są udokumentowane na stronie podręcznika użytkownika : http://manpages.ubuntu.com/manpages/xenial/man8/run-parts.8.html , można przekazać opcję --regex, aby zastąpić format pliku.
Domyślne zachowanie crona pozostało jednak bez rozszerzeń, patrz komentarze pod: https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022
źródło
Myślę, że prawdopodobnie brakuje ci niezbędnej pustej linii na końcu pliku cron. Miałem ten sam problem, ale po sprawdzeniu wszystkiego, co tu wymienione (uprawnienia użytkownika, nazwa pliku, wersja crona itp.), Zdałem sobie sprawę, że nie miałem podziału wiersza po ostatnim wpisie w moim
/etc/cron.d/own_cron
pliku, co powoduje, że cały plik jest ignorowany.źródło
Jeśli jesteś jedynym użytkownikiem na tym komputerze, możesz użyć tylko
crontab -e
. Przy pierwszym uruchomieniu polecenia pojawi się monit o wybranie edytora. Następnie możesz dodać do tego:Jeśli zmienisz na zwykłe konto użytkownika, musisz użyć
sudo crontab -e
do skonfigurowania skryptów, które mają być uruchamiane jakoroot
.crontab -l
wyświetla tylko bieżący plik crontab, po skonfigurowaniu za pomocącrontab -e
. Jeśli masz plik cron w/etc/cron.d
/, nie będzie on wyświetlany przy pomocycrontab -l
.Będzie trzeba także sprawdzić, czy skrypt jest wykonywalny z:
chmod +x /backup.sh
.źródło
Dockerfile
więc nie mogę tego zrobićcrontab -e
- ale i tak jest to przydatna informacjaDla Crona z dystrybucji * bian (jak Raspbian) musisz włączyć
-l
parametr demona Cron. Jest to zalecane przy użyciu/etc/default/cron
pliku konfiguracyjnego, włączającEXTRA_OPTS
.źródło
-l
opcja dla demona cron autoryzuje rozszerzony zestaw nazw plików w/etc/cron.d
katalogu, więc jeśli plik jest dyskretnie ignorowany, ponieważ zawiera kropkę, wówczas albo „dodaj -l”, albo „usuń kropkę” rozwiąże problem.Sprawdź swoją wersję
cron
.Wygląda na to, że jeśli używasz cronda Dillona, nie potrzebujesz użytkownika we
/etc/cron.d
wpisie.Zrozumiałem to po prawie wyciągnięciu moich pozostałych włosów.
Mam garść wpisów, które zostały dodane
/etc/cron.d
przez różne instalacje. Po pewnym dochodzeniu odkryłem, że jedno z nich działa. Nie miał użytkownika. Więc usunąłem użytkownika z innych. I zaczęli pracować.źródło