Co to jest Cron i jak działa?
Wyobraź sobie, że Cron to Twój osobisty, cyfrowy asystent. Jego jedynym zadaniem jest wykonywanie zadań o ściśle określonych porach, nawet gdy Ty śpisz lub komputer jest wyłączony. W świecie Linuxa, Cron jest używany do automatyzowania powtarzalnych czynności, takich jak:
- ✔️ Tworzenie kopii zapasowych (backupów).
- ✔️ Aktualizowanie oprogramowania.
- ✔️ Wysyłanie raportów.
Cron działa w oparciu o plik konfiguracyjny, zwany crontabem. W nim zapisujesz wszystkie zadania, które ma wykonywać, podając czas oraz ścieżkę do skryptu lub komendy, którą ma uruchomić.
Krok 1: Stwórz skrypt do robienia backupu
Najpierw musimy napisać prosty skrypt, który będzie tworzył kopię zapasową Twoich plików. Otwórz swój ulubiony edytor tekstu (np. nano, gedit lub vscode) i wklej do niego poniższy kod. Następnie zapisz plik pod nazwą daily_backup.sh w katalogu domowym.
#!/bin/bash
# Komentarze zaczynają się od symbolu #
# Poniżej zmienne. Nie musisz ich zmieniać, ale możesz :)
SOURCE_DIR="/home/youruser/Documents" # To jest katalog, który chcesz skopiować. Zmień 'youruser' na swoją nazwę użytkownika.
DEST_DIR="/home/youruser/backups/Documents" # To jest katalog docelowy, gdzie trafi kopia. Zmień 'youruser' na swoją nazwę użytkownika.
# Sprawdzanie, czy katalog docelowy istnieje.
# Jeśli go nie ma, to go tworzymy.
if [ ! -d "$DEST_DIR" ]; then
echo "Katalog backupu nie istnieje. Tworzę go..."
mkdir -p "$DEST_DIR"
# Nadanie uprawnień do zapisu, odczytu i wykonywania dla właściciela katalogu.
# Właściciel: odczyt, zapis, wykonywanie (4+2+1=7)
# Grupa: odczyt, wykonywanie (4+1=5)
# Inni: odczyt, wykonywanie (4+1=5)
chmod 755 "$DEST_DIR"
echo "Katalog $DEST_DIR został utworzony i ma nadane uprawnienia."
fi
# Tworzenie nazwy pliku backupu, dodając datę, żeby łatwo je rozróżnić.
# np. backups_2023-10-27.tar.gz
BACKUP_FILE="$DEST_DIR/backups_$(date +%Y-%m-%d).tar.gz"
# Kompresowanie katalogu źródłowego do pliku backupu.
# 'tar' to program do archiwizacji
# '-zcvf' to opcje, które mówią:
# z - skompresuj
# c - stwórz archiwum
# v - pokaż co robisz (verbose)
# f - nazwa pliku archiwum
# Następnie podajemy nazwę pliku, który tworzymy i ścieżkę do katalogu źródłowego.
tar -zcvf "$BACKUP_FILE" "$SOURCE_DIR"
# Ta linijka wyświetli komunikat po zakończeniu
echo "Backup z dnia $(date +%Y-%m-%d) został pomyślnie utworzony w katalogu $DEST_DIR"
Po zapisaniu pliku nadaj mu uprawnienia do wykonywania. Możesz to zrobić na dwa sposoby:
-
Metoda symboliczna:
chmod +x ~/daily_backup.sh -
Metoda numeryczna:
chmod 755 ~/daily_backup.shLiczby oznaczają uprawnienia dla: właściciela (7), grupy (5), innych (5).
755oznacza, że właściciel może plik czytać, pisać i wykonywać, a reszta może go tylko czytać i wykonywać.
Krok 2: Ustaw harmonogram w Crontab
Teraz musisz poinformować Crona, żeby uruchamiał ten skrypt codziennie o 1 w nocy.
- Otwórz terminal i wpisz komendę, która otworzy plik crontab:
crontab -e - Na samym końcu pliku, który się otworzył, dodaj następującą linijkę:
0 1 * * * /home/youruser/daily_backup.shPamiętaj, aby
youruserzmienić na swoją nazwę użytkownika.
Jeśli robisz to pierwszy raz, system zapyta Cię, którego edytora chcesz użyć. Wybierz ten, który znasz. Najprostszy to nano (zazwyczaj opcja 1).
Co oznaczają te liczby i gwiazdki?
To jest harmonogram. Ma on 5 pól i działa w następujący sposób:
minuta | godzina | dzień miesiąca | miesiąc | dzień tygodnia | komenda
- 0: Minuta 0 (czyli pełna godzina).
- 1: Godzina 1 (czyli 1:00 w nocy).
- *: Każdy dzień miesiąca.
- *: Każdy miesiąc.
- *: Każdy dzień tygodnia.
A więc linijka 0 1 * * * oznacza: "Uruchom to zadanie o 1 w nocy, w każdą minutę 0, każdego dnia, każdego miesiąca, każdego dnia tygodnia."
Zapisz i zamknij plik. W edytorze nano zrobisz to, naciskając Ctrl + O, a następnie Ctrl + X.
Od teraz Cron będzie automatycznie wykonywał Twój skrypt o 1 w nocy każdego dnia, tworząc codzienną kopię zapasową Twoich ważnych plików.
Brak komentarzy:
Prześlij komentarz