Tworzenie niestandardowego zadania Cron w systemie Linux

Automatyzacja rutynowych zadań jest niezbędna w każdej solidnej administracji systemem lub przepływie pracy w rozwoju stron internetowych. Zadania Cron zapewniają potężny, oparty na czasie harmonogram zadań w systemach operacyjnych podobnych do Uniksa, umożliwiając automatyczne uruchamianie skryptów lub poleceń w zaplanowanych odstępach czasu.

 Czym jest zadanie Cron?

Zadanie cron to zaplanowane zadanie zdefiniowane w crontabie systemu (tabela cron), które wykonuje polecenia lub skrypty w określonych czasach lub odstępach. Cron jest szeroko stosowany, ponieważ jest:

  • Lekki

  • Wysoce konfigurowalny

  • Wbudowany w większość dystrybucji Linuxa

 Typowe przypadki użycia

  • Codzienne lub tygodniowe kopie zapasowe bazy danych

  • Uruchamianie skryptów PHP/Python

  • Rotacja logów i czyszczenie plików tymczasowych

  • Wysyłanie zaplanowanych e-maili

  • Aktualizowanie pamięci podręcznych danych lub synchronizacja plików

Krok 1: Uzyskaj dostęp do Crontab

Aby edytować crontab swojego użytkownika (bez dostępu root):

crontab -e
Aby edytować crontab root (wymaga sudo):
sudo crontab -e

Krok 2: Rozbicie składni Cron

Każde zadanie cron używa następującego formatu:

* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └──── Day of the week (0-7, Sunday = 0 or 7)
│ │ │ └────── Month (1–12)
│ │ └──────── Day of the month (1–31)
│ └────────── Hour (0–23)
└──────────── Minute (0–59)

 Przykład: Uruchom skrypt codziennie o 2:00

0 2 * * * /home/user/scripts/backup.sh

Krok 3: Utwórz niestandardowy skrypt

Załóżmy, że chcesz uruchomić niestandardowy skrypt Python. Najpierw utwórz plik:

nano /home/user/scripts/cleanup.py

Przykładowy skrypt:

#!/usr/bin/env python3
import os
import datetime
log_dir = "/var/log/myapp"
threshold = 7 # days
now = datetime.datetime.now()
for filename in os.listdir(log_dir):
filepath = os.path.join(log_dir, filename)
if os.path.isfile(filepath):
file_age = now - datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
if file_age.days > threshold:
os.remove(filepath)

Uczyń skrypt wykonywalnym:

chmod +x /home/user/scripts/cleanup.py

 Krok 4: Dodaj zadanie Cron

Edytuj swój crontab i dodaj:

0 1 * * * /home/user/scripts/cleanup.py >> /var/log/cleanup.log 2>&1

To:

  • Uruchamia skrypt codziennie o 1:00

  • Rejestruje wyjście do /var/log/cleanup.log

 Przykłady przypadków użycia

✅ Uruchamiaj co 10 minut

*/10 * * * * /home/user/check_status.sh

✅ Uruchamiaj tylko w poniedziałki o 3:00

0 3 * * 1 /home/user/scripts/weekly_report.sh

 Wyłącz lub usuń zadanie Cron

Tymczasowo wyłącz linię, komentując ją za pomocą #.

Aby usunąć wszystkie zadania:

crontab -r

Niestandardowe zadania cron to potężne narzędzie do automatyzacji, konserwacji i niezawodności. Niezależnie od tego, czy zarządzasz osobistym VPS, wdrażasz skrypty backendowe, czy uruchamiasz obciążenia produkcyjne, opanowanie crona pozwala kontrolować kiedy i jak zadania są uruchamiane — bez wysiłku.