Chcę zaplanować uruchamianie zadania regularnie i słyszałem, że Cron jest na to sposób.
Jak dodać zadania Cron w Ubuntu?
Umieścić skrypt w jednym z tych folderów: /etc/cron.daily
, /etc/cron.hourly
, /etc/cron.monthly
lub /etc/cron.weekly
.
Jeśli to ci nie wystarczy, możesz dodać bardziej szczegółowe zadania, np. Dwa razy w miesiącu lub co 5 minut. Przejdź do terminala i wpisz:
crontab -e
Spowoduje to otwarcie twojego osobistego pliku crontab (plik konfiguracyjny crona). Pierwszy wiersz w tym pliku wyjaśnia wszystko! W każdym wierszu możesz zdefiniować jedno polecenie do uruchomienia i jego harmonogram, a format jest dość prosty, gdy się go zawiesi. Struktura jest:
minute hour day-of-month month day-of-week command
Dla wszystkich liczb, których możesz użyć, np. 5,34,55
W polu minut będzie oznaczać bieg o 5, 34 i 55 po dowolnej godzinie.
Możesz także użyć interwałów. Są one zdefiniowane następująco: */20
. Ten przykład oznacza co 20, więc w kolumnie minut jest to równoważne 0,20,40
.
Aby uruchomić polecenie w każdy poniedziałek o 5:30 po południu:
30 17 * * 1 /path/to/command
lub co 15 minut
*/15 * * * * /path/to/command
Pamiętaj, że dzień tygodnia rozpoczyna się w przedziale od 0 do 6, gdzie 0 to niedziela.
Możesz przeczytać więcej tutaj .
*/15 * * * * /path/to/command
możesz zrobić@reboot /path/to/command
, aby wykonać coś podczas uruchamiania.Jeśli zadanie, które chcesz uruchomić, może być uruchomione z tymi samymi uprawnieniami, co twój użytkownik, polecam użycie crontab użytkownika, który możesz edytować, uruchamiając
EDITOR="gedit" crontab -e
(który użyje gedit do edycji pliku crontab) lub po prostucrontab -e
(który będzie używał domyślnego edytora) w terminalu.Jeśli chcesz na przykład uruchamiać coś co 10 minut, dodajesz taką linię
i zapisz plik.
Możesz zobaczyć zawartość crontab użytkownika za pomocą
crontab -l
.Aby dodać zadanie crona działające jako root, możesz edytować crontab roota, uruchamiając
sudo crontab -e
.Najbardziej elastycznym sposobem jest użycie crontab systemowego,
/etc/crontab
który można edytować tylko z uprawnieniami roota. W tym pliku użytkownik ma wykonać każdą komendę zgodnie ze specyfikacją, aby można było uruchamiać komendy jako użytkownik root (na wypadek, gdybyś potrzebował tego poziomu uprawnień) lub jakikolwiek inny użytkownik w systemie.Na przykład, jeśli chcesz uruchamiać coś co 10 minut jako root, możesz dodać taką linię
(zauważ dodanie użytkownika do linii)
Możesz zobaczyć zawartość systemowego pliku crontab za pomocą
cat /etc/crontab
.Więcej informacji: https://help.ubuntu.com/community/CronHowto
źródło
Jeśli wolisz to zrobić za pomocą GUI, możesz przejść do Centrum oprogramowania i zainstalować Zaplanowane zadania (lub uruchomić
sudo apt-get install gnome-schedule
). Zapewni to potężny GUI do dodawania zadań CRON.Pamiętaj, że jeśli użyjesz tej metody, zadania będą domyślnie wykonywane jako własny użytkownik, a nie jako root. Zazwyczaj jest to dobra rzecz.
źródło
Polecam KDE's Scheduler (
kde-config-cron
) . Dostęp do niego można uzyskać w Ustawieniach systemu w module Harmonogram zadań .Zarządza Crontabs zarówno osobistymi, jak i systemowymi, a łatwość tworzenia granic czasowych bardzo mnie zaskoczyła (patrz zrzut ekranu poniżej). Myślę, że ta część jest naprawdę niedoceniana.
źródło
Harmonogram zadań KDE nie będzie działał w zwykłym systemie Ubuntu. Działa tylko w systemach KDE, takich jak KUbuntu. W systemie innym niż KDE wolisz używać harmonogramu gnome
Aplikacja ma zaplanowane zadania w Dash.
źródło
I can't install gnome schedule on Ubuntu 16.04
@ askubuntu.com/questions/785657/… . Istnieje pakiet do pobrania @ bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060/… . Po prostu zagraj$ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb
Chciałem ustawić zadanie Crona do uruchamiania przez skrypt bash, więc wykonanie skryptu dodałoby zadanie cron.
Zdałem sobie sprawę, że kiedy korzystasz z:
Następnie tworzy plik:
/var/spool/cron/crontabs/root
Gdzie root to nazwa użytkownika uruchamiającego komendę crontab. Opierając się na tym i przynajmniej w 14.04, możemy wykonać następujące polecenia bash, aby utworzyć nowe zadanie Cron:
Musimy również ustawić poprawną własność pliku:
I ustaw odpowiednie uprawnienia:
Jeśli po uruchomieniu
crontab -e
na liście znajdują się już zadania Cron, możesz dołączyć do listy za pomocą następującego polecenia:źródło
Przykład uruchamiania skryptu
test_cron.sh
przez crona co minutę na Ubuntu 18.04 za pomocą dowiązania symbolicznego:test_cron.sh
plik:Jeśli chcesz używać zmiennych skryptu w skrypcie, tak jak
$USER
w ścieżkach, lepiej wpisać dokładną ścieżkę, bash nie pozna twoich zmiennych w czasie wykonywania.myname
to nazwa użytkownika (część grupy root, nie jestem pewien, czy uprawnienia roota są konieczne).Zezwalaj użytkownikom na ustawianie zadań cron, plik zostanie utworzony w razie potrzeby:
Ścieżka do skryptu to
/home/myname/shell/test_cron.sh
Zmieniłem właściciela i uczyniłem go wykonywalnym:
Dodałem link symboliczny:
Zalogowany, gdy
myname
dodałem nowe zadanie do wykonaniatest_cron
co minutę.Aby sprawdzić, czy polecenie na liście:
Aby sprawdzić wykonanie
źródło