Jakiego pliku należy użyć i jak najlepiej to zrobić?
crontab -e
to najlepszy sposób, aby to zrobić - pozwoli to na łatwą edycję crontabów dla poszczególnych użytkowników.
Jeśli zaplanuję zadanie jako użytkownik inny niż root, czy będzie ono uruchamiane samo w określonym przedziale czasu, bez żadnych problemów?
Tak, i będzie działać z uprawnieniami tego konta użytkownika.
Zasadniczo najlepiej jest uruchamiać zaplanowane zadania z najniższymi uprawnieniami, na jakie można sobie pozwolić, więc jeśli to, co robisz, nie będzie wymagało rootowania, nie używaj roota. Jeśli nawet nie trzeba mieć dostępu do Twojego pliki i foldery konta, możesz utworzyć nowego użytkownika i korzystania z konta użytkownika tylko dla tego zadania. Z drugiej strony, jeśli zadanie robi wymagają korzeń, crontab wykorzystaniu koniecznie roota ( su
/ sudo su
root następnie użyć crontab -e
).
Czy muszę ponownie uruchomić serwer po zapisaniu zadania cron w pliku crontab, zanim zacznie działać?
Nie, zacznie działać od razu (cóż, następny możliwy zaplanowany czas).
Dlaczego nie edytować pliku bezpośrednio? Gdzie to się znajduje?
Pliki crontab użytkownika znajdują się w /var/spool/cron/crontabs
, ale ich uprawnienia są ustawione w taki sposób, że nie można przejść do nich bez zgody administratora (ale po otwarciu i procesie cron upuszcza uprawnienia, nadal może uzyskać dostęp do pliku).
System nie jest przeznaczony dla użytkowników końcowych do bezpośredniej edycji tych plików, a faktycznie u góry pliku znajduje się surowe DO NOT EDIT THIS FILE
ostrzeżenie u góry w tym celu. Plik jest natomiast przeznaczony do edycji, za pomocą crontab -e
której konfiguruje tymczasowe dublowanie pliku /tmp
do edycji - bez surowego ostrzeżenia - po czym sprawdza i instaluje sam plik crontab. Można to wszystko zrobić bez zgody administratora.
Jeśli edytowałeś plik crontab bezpośrednio, nie wiem jaki byłby wynik. Możliwe, że po prostu nie zadziała do następnego uruchomienia, a wszelkie błędy mogą być trudne do debugowania.
crontab -e
pozwala edytować crontab użytkownika bez sudo. Pliki crontab użytkownika znajdują się w/var/spool/cron/crontabs
katalogu, do którego nie można uzyskać dostępu bez zgody administratora (ale w taki sposób, że gdy cron porzuci uprawnienia, nadal będzie mógł je odczytać). Nawet jeśli używasz sudo do bezpośredniej edycji pliku, u góry zobaczysz duże ostrzeżenie: „NIE EDYTUJ TEGO PLIKU” - plik jest przeznaczony do edycji za pomocącrontab
polecenia, które korzysta z tymczasowej kopii,/tmp
a następnie instaluje to po zapisaniu.Każdy użytkownik ma swój własny
crontab
.Aby to zobaczyć, po prostu wpisz
i tak, dobrze to widziałeś, kiedy chcesz dodać,
crontab
po prostu zróbpo raz pierwszy zostaniesz zapytany o edytor do użycia
crontab
. Ponieważ jesteś początkującym, jak mówisz, polecam używać nano, jest to najprostszy edytor do użycia.Sam crontab działa w ten sposób
Na przykład, aby uruchamiać zadanie co 15 minut tylko w poniedziałek, robisz to w ten sposób
i TAK, bardzo ważne jest, aby umieścić swoją cronjob w tabeli cront użytkownika, który ma wystarczające prawa do jej wykonania.
Więc jeśli twoim skryptem musi być root lub specjalny użytkownik, upewnij się, że wykonałeś su dla tego użytkownika i tam dodajesz cronjob.
Również bardzo ważne!
cronjob jest głupi! Tak, powiedziałem to. Zawsze upewnij się, że wprowadzasz pełną ŚCIEŻKĘ dla
application/command/script
używanego, ponieważ crontab nie będzie działać z.bashrc
podobnym. Zawsze musisz upewnić się, że poinformujesz crona, gdzie może znaleźć pliki i katalogi.Aby odpowiedzieć na pozostałe pytania:
Oczywiście będzie działać samodzielnie, po to jest. Ale musisz sprawdzić, czy koleżeństwo naprawdę to robi, czy czegoś brakuje. Na przykład zaloguj się do pliku dziennika, aby zobaczyć, czy to naprawdę działa.
I NIE, restart nie jest potrzebny. Ponowne uruchomienie w systemie Linux jest zwykle potrzebne tylko po zainstalowaniu nowego jądra. Aby go użyć, musisz zrestartować komputer. Prawie wszystko inne można zrobić bez ponownego uruchamiania systemu Linux. Oczywiście są wyjątki, ale ogólnie to stwierdzenie jest poprawne.
źródło