Cron - Automatyzacja codziennych zadań SEO
Wykonywanie powtarzających się zadań każdego dnia może być męczące. Dlaczego więc nie zaprząc do tego Crona?! W tym artykule krok po kroku pokażę, jak skonfigurować proste zadanie w Cron na komputerach z systemem macOS. Podam też kilka przykładów, jak automatyzacja może być wykorzystana w codziennej pracy SEOwca.
- Autor:
- Daniel Jędrysik
- Czas czytania:
- Publikacja:
- 28 listopada 2020
- Aktualizacja:
- 9 kwietnia 2022
- Kategorie:
Monotonia z czasem zabije nawet najciekawszą pracę. Codzienne wykonywanie tych samych czynności sprawia, że szybciej się męczymy oraz nie poświęcamy czasu na rzeczy naprawdę istotne. I tutaj na scenę wkracza automatyzacja.
W pracy wykorzystuję wiele narzędzi, które automatycznie, bez mojej wiedzy, zbierają informację, które w dogodnym czasie mogę przetworzyć. Czasem wymagamy jednak czegoś więcej, czego ogólnodostępne narzędzia nie są nam w stanie zapewnić.
W tym wpisie przedstawię, w jaki sposób wykorzystać Cron’a do automatyzacji prostych, cyklicznych zadań.
Z tego artykułu dowiesz się:
- Co to jest Cron i Crontab?
- Do czego można wykorzystać Cron w SEO?
- Harmonogram Cron, czyli ustalamy cykliczne zadania do wykonania
- Krok 1. Tworzymy skrypt w Pythonie
- Krok 2. Uruchamiamy Crontab
- Krok 3. Budowa wyrażenia Cron
- Wyrażenia Cron – Przykłady
- Krok 4. Utworzenie harmonogramu dla skryptów w Pythonie
- Krok 5. Dodanie zadania do tablicy Crontab
- Jak sprawdzić, czy Cron działa?
Co to jest Cron i Crontab?
Zanim zaczniemy. Cron jest to narzędzie, które umożliwia uruchomienie skryptu, zadania lub programu według wcześniej przygotowanego harmonogramu.
Crontab to z kolei lista zadań, które Cron ma wykonać.
Narzędzie Cron głównie kojarzone jest z usługą na serwerze, kiedy to możemy ustawić uruchomienie skryptu o dowolnej porze. Nie każdy jednak wie, że również komputery wyposażone w system Linux czy macOS także oferują taką opcję. Niestety, żeby zadania Cron były wykonywane, komputer musi być uruchomiony.
Nie mniej jednak jeżeli chcemy zautomatyzować pewne czynności w trakcie godzin pracy, konfiguracja Cron będzie niezwykle pomocna.
Do czego można wykorzystać Cron w SEO?
W pracy specjalisty SEO Cron można użyć do automatyzacji cyklicznych czynności takich jak:
- wysyłanie comiesięcznych raportów,
- crawlowanie portalu o określonej porze,
- sprawdzanie raz dziennie statusu odpowiedzi serwera,
- usuwanie lub aktualizowanie adresów znajdujących się w indeksie,
- pobieranie danych z Google Search Console czy Google Analytics.
Harmonogram Cron, czyli ustalamy cykliczne zadania do wykonania
Do utworzenia zadania cyklicznego Cron potrzebować będziesz:
- komputera z systemem macOS,
- Pythona,
- dowolnego edytora, w którym utworzysz kod. Ja używam programu Atom lub Notepad++.
Krok 1. Tworzymy skrypt w Pythonie
Na potrzeby tego miniporadnika utworzymy przykładowy skrypt, który będzie odczytywał godzinę i zapisywał ją w pliku.
Plik zapisujemy pod dowolną nazwą z rozszerzeniem .py np. test.py
Pokrótce wyjaśnię, co każda linijka oznacza.
#!/usr/bin/python3
– linia wskazująca, gdzie znajduje się interpretator kodu,
import datetime
– importujemy bibliotekę datatime odpowiedzialną za pobieranie czasu i daty z systemu operacyjnego
x = datetime.datetime.now()
– przypisujemy do zmiennej x obiekt z aktualną datą i czasem
text = x.strftime("%m/%d/%Y, %H:%M:%S")+"\n"
– przy wykorzystaniu metody strftime przekształcamy – zgodnie z wzorcem – datę i czas z obiektu na ciąg znaków (string). Dodatkowo do ciągu dodaję jeszcze znak końca wiersz \n
f = open("/Users/admin/desktop/python/cron/cron-test.txt", "a")
– otwieramy plik, w którym przechowywać będziemy pobraną z systemu datę i godzinę. Drugi parametr oznacza tryb, w jakim zostanie otwarty plik.
Stosować możemy kilka trybów:
"r"
- otwarcie pliku tylko do odczytu ("read"). W przypadku braku pliku wystąpi błąd."a"
- otwarcie pliku w trybie edycji ("append"). Treść dodawana jest na końcu bez kasowania wcześniejszej zawartości pliku. Jeżeli plik nie istnieje, zostanie on utworzony."w"
- otwarcie pliku w trybie edycji ("write"). Dotychczasowa treść zostanie skasowana. Jeżeli plik nie istnieje, zostanie on utworzony.
f.write(text)
– zapisanie zmiennej text w pliku.
f.close()
– zamknięcie pliku.
print(text."Zadanie wykonane poprawnie!")
– polecenie wyświetlenia komunikatu o poprawnym wykonaniu zadania, który zostanie zapisany w pliku log.txt
Skrypt możesz przetestować, uruchamiając go w terminalu.
cd siezka/do/katalogu
python3 test.py
Jeżeli wszystko jest w porządku, w tym samym katalogu znajdziemy plik cron-test.txt, a wewnątrz niego w pierwszej linii datę i czas wykonania skryptu.
Krok 2. Uruchamiamy Crontab
Do obsługi Crontab w systemie macOS używane są 3 polecenia, które wprowadza się w terminalu:
- crontab -l - pozwala sprawdzić, czy mamy jakieś aktywne zadania w Cron
- crontab -e - służy to tworzenia nowych zadań i modyfikacji obecnych
- crontab -r - umożlkiwia usuwanie utworzonych zadań.
W pierwszej kolejności skorzystaj z polecenia crontab -l. Pozwoli to na sprawdzenie, czy masz jakieś aktywne zadanie Cron.
Następnie w terminalu wpisz crontab -e. Otworzy się vi editor. Edytor nie jest trudny w obsłudze i musisz zapamiętać jedynie kilka komend, które go obsługują.
- i - przejście w tryb edycji
- esc - wyjście z trybu edycji
- dd - usunięcie linii
- u - cofnięcie zmian
- :q! - wyjście z edytora bez zapisania zmian
- :wq - wyjście z edytora po uprzednim zapisaniu zmian
Krok 3. Budowa wyrażenia Cron
Wyrażenie Cron składa się z 6 parametrów. Pięć pierwszych odpowiada za to, kiedy skrypt będzie wykonany. W kolejności od lewej do prawej to:
- minuty (0-59)
- godziny (0-23)
- dzień miesiąca (1-31)
- miesiąc (1-12)
- dzień tygodnia (0-6)
Zamiast tych pięciu parametrów możemy wpisać ciąg znaków poprzedzony @. Przykłady takich ciągów znajdziesz w tabeli poniżej.
Ostatni parametr w wyrażeniu to wskazanie, co ma zostać wykonane o podanej porze.
Wyrażenia Cron – Przykłady
Poniższa tabela zawiera przykłady najczęściej używanych wyrażań.
Parametr słowny | Czas wykonania zadania | Parametry liczbowe |
---|---|---|
@hourly | co godzinę | 0 * * * * |
@daily | raz dziennie | 0 0 * * * |
@weekly | raz w tygodniu | 0 0 * * 0 |
@monthly | raz w miesiącu | 0 0 1 * * |
@yearly | raz w roku | 0 0 1 1 * |
@reboot | przy starcie systemu | – |
– | co minutę | * * * * * |
– | co 5 minut | */5 * * * * |
– | co minutę codziennie od poniedziałku do piątku | * * * * 1-5 |
– | co 5 minut w dni parzyste w lutym | */5 * 2/2 2 * |
– | o godzinie 8 każdego dnia roboczego | 0 8 * * 1-5 |
– | codziennie o 4 godzinie pierwszego dnia każdego miesiąca | 0 4 1 * * |
– | codziennie o północy w styczniu oraz od kwietnia do lipca | 0 0 * 1,4-7 * |
– | co 2 godzin w poniedziałek i piątek | 0 */2 * * 1,5 |
Dla ułatwienia można skorzystać z narzędzia crontab.guru.
Dla naszych przypadku skrypt powinien się uruchamiać co minutę (* * * * *). Dzięki temu szybko sprawdzimy, czy nasz Cron działa.
Krok 4. Utworzenie harmonogramu dla skryptów w Pythonie
Jednym z ostatnich kroków będzie utworzenie wyrażenia, które umieścimy w tablicy Cron, a które będzie odpowiedzialne za uruchamianie cykliczne napisanego wcześniej skryptu w Pythonie.
Budowa takiego wyrażenia przedstawia się następująco:
* * * * * cd ~/desktop/python/cron && /usr/bin/python3 test.py >> ~/desktop/python/cron/log.txt 2>&1
* * * * *
– argumenty liczbowe wskazujące na uruchamianie skryptu co minutę
cd ~/desktop/python/cron
– wskazanie ścieżki do katalogu, w którym znajduje się skrypt. Jeżeli zapisałeś w innym katalogu swój skrypt, ścieżka do niego będzie inna.
/usr/bin/python3
– wskazanie ścieżki do katalogu, w którym zainstalowany jest Python. Do znalezienia ścieżki możesz wykorzystać polecenie whereis python3.
test.py
– nazwa skryptu
>>
– symbol oznaczający przekierowanie danych wyjściowych z programu do pliku. Dane będą dołączane do końca pliku.
~/desktop/python/cron/cron.txt
– lokalizacja pliku, gdzie będą kierowane dane wyjściowe z programu
2>&1
– oznacza, że standardowe wyjście błędów zostanie przekierowane do standardowego wyjścia. Innymi słowy, jeżeli wystąpi się błąd, to informacja o tym pojawi się w pliku log.txt
Krok 5. Dodanie zadania do tablicy Crontab
Mamy już gotowe polecenie, które pozwoli nam co minutę uruchomić skrypt dopisujący czas i datę do pliku.
W edytorze vi editor przyciskamy klawisz i i przechodzimy w tryb edycji.
W linijce wklejamy lub wpisujemy przygotowane we wcześniejszym kroku polecenie.
Wciskamy klawisz esc wychodząc z trybu edycji.
Wpisujemy :wq i wciskamy enter. Nasze zadanie zostało zapisan
W oknie terminalu powinna pokazać się informacja, która świadczy o powodzeniu całego procesu: crontab: installing new crontab
Jak sprawdzić, czy Cron działa?
To czy Cron działa czy nie przekonamy się, sprawdzając efekt działania skryptu. Jeżeli plik cron-test.txt nie zawiera wierszy z kolejnymi datami i godzinami, koniecznie sprawdź plik z danymi wyjściowymi. W nim będą składowane informacje o błędach, jeżeli się pojawią.
Czy warto automatyzować zadania w Cron?
Moim zdaniem tak. Skrypty wykonywane automatycznie to duża oszczędność czasu oraz zmniejszenie ryzyka, że w ciągu intensywnego dnia zapomnimy o jakimś zadaniu. Mam nadzieję, że ten artykuł przybliżył Ci nieco tematykę automatyzacji zadań oraz skłoni do częstszego używania tego narzędzia.
Od 2018 roku związany jestem z marketingiem internetowym. Specjalizuję się w optymalizacji stron internetowych i sklepów. Obecnie pełnię funkcję Marketing Managera w Agencji KS. Prywatnie jestem miłośnikiem fantastyki oraz zapalonym czytelnikiem.