4 начина да проверите да ли црон ради на Линук-у

Cron je alat za raspoređivanje zadataka prisutan na Linux i Unix operativnim sistemima. Već je instaliran na svim Linux distribucijama i idealan je za automatizaciju rutinskih, ponavljajućih operacija.

Da bi cron pravilno funkcionisao, neophodno je s vremena na vreme proveriti njegovu operativnost. To možete učiniti na nekoliko načina: proverom statusa cron servisa, analizom cron logova, pokretanjem testnog cron zadatka i pregledom aktivnih procesa na sistemu.

Šta je cron?

Cron je tihi izvršilac zadataka koji automatizuje i raspoređuje poslove na sistemu. Korisnici koji konfigurišu i održavaju softverska okruženja koriste cron za zakazivanje zadataka, kao što su komande ili skripte, koji se periodično izvršavaju u unapred određenim vremenskim intervalima. Ovi zadaci se često nazivaju cron poslovi.

Cron automatizuje zadatke održavanja ili administracije sistema koje je potrebno često obavljati, štedeći vreme i resurse.

Postoji nekoliko verzija cron-a dostupnih na Linuxu. Verzija koju imate zavisi od vaše distribucije. „Vixie cron“, nazvan po svom tvorcu Paulu Vixie-u, je čest i standardan na Debianu i Ubuntuu. Arch Linux nema podrazumevanu cron verziju, preferirajući systemd tajmere.

Cronie je verzija Vixie cron-a koja je dostupna kao standardni Arch Linux paket. Za instalaciju koristite pacman:

 sudo pacman -S cronie 

Zatim ga pokrenite i omogućite:

 sudo systemctl start cronie.service
sudo systemctl enable cronie.service

Verziju cron-a instaliranu na vašem sistemu možete proveriti pretragom njegove man stranice:

 man cron 

Kako proveriti da li cron radi na Linuxu

Evo nekoliko načina da proverite da li cron radi ispravno:

1. Provera statusa cron servisa na Linuxu

Jedan od načina da proverite da li cron radi je da pogledate status cron servisa koristeći osnovnu Linux komandu. Otvorite Linux terminal pritiskom na Ctrl + Alt + T i koristite komandu systemctl da biste proverili status cron-a:

 sudo systemctl status cron 

Ako vidite sledeći izlaz, to znači da je cron aktivan i funkcioniše normalno:

Međutim, šta ako je cron u neaktivnom stanju, kao što je prikazano na slici ispod?

Servis možete pokrenuti na sledeći način:

 sudo systemctl start cron.service 

Nakon pokretanja cron servisa, omogućite ga da se automatski pokreće pri svakom restartovanju sistema:

 sudo systemctl enable cron.service 

2. Provera cron logova na Linuxu

Drugi način da proverite da li cron radi kako treba je analizom log fajlova. Cron logovi se čuvaju u /var/log/syslog direktorijumu na Linuxu.

Syslog je protokol koji Linux sistemi koriste za centralizaciju evidencije podataka o događajima. Logovi se zatim analiziraju radi revizije, praćenja, rešavanja problema i drugih važnih IT zadataka.

Logove cron poslova možete pregledati u syslog fajlu izvršavanjem sledeće komande:

 grep 'cron' /var/log/syslog 

Videćete sličan izlaz koji pokazuje da cron radi kako treba i da se njegovi zapisi čuvaju u log fajlu:

S obzirom da syslog folder sadrži i druge sistemske logove pored cron logova, može biti malo teško pregledati samo logove vezane za cron. To možete rešiti kreiranjem zasebnog log fajla koji će čuvati samo cron unose iz syslog fajla.

U ovom primeru ćemo koristiti nano editor, ali možete koristiti bilo koji editor koji vam odgovara.

Otvorite sledeći fajl koristeći nano:

 nano /etc/rsyslog.d/50-default.conf 

Pronađite liniju koja počinje sa:

 #cron.* 

Odkomentarišite ovu liniju uklanjanjem znaka tarabe (#). Zatim sačuvajte i izađite iz fajla pritiskom na Ctrl + X, zatim pritisnite Y i Enter.

Ponovo pokrenite rsyslog servis izdavanjem ove komande:

 sudo service rsyslog restart 

Sada ćete dobijati logove u fajlu cron.log koji se nalazi u /var/log direktorijumu.

Ako terminal ne uspe da preuzme logove, to može značiti da cron nije pokrenut. U tom slučaju, potvrdite da li cron radi koristeći druge metode.

3. Pokretanje cron zadatka na Linuxu

Takođe možete proveriti da li cron radi kreiranjem probnog cron zadatka i njegovim izvršavanjem. Ako zadatak uspešno izvrši zadatak, to znači da funkcioniše kako treba.

Prvo je potrebno kreirati Bash skriptu. Bash skriptovanje vam omogućava da automatizujete svakodnevne zadatke na Linuxu.

Napravimo Bash skriptu koja će ispisati „moj cronjob radi!“ u tekstualni fajl. Da biste kreirali fajl, prvo pronađite vaš trenutni radni direktorijum koristeći ovu komandu:

 pwd 

Kreirajte fajl u trenutnom direktorijumu koristeći touch komandu:

 touch file.txt 

Nakon toga, kreirajte Bash fajl koristeći nano:

 nano script.sh 

Dodajte sledeći sadržaj u fajl:

 #! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt

Obavezno navedite tačnu lokaciju tekstualnog fajla koji ste kreirali. Sačuvajte i izađite iz fajla pritiskom na Ctrl + X, zatim Y i Enter.

Dajte dozvole za izvršavanje Bash skripte:

 chmod +x script.sh 

Sada kreirajte cron zadatak da biste izvršili skriptu. Da biste to uradili, otvorite crontab fajl sa:

 crontab -e 

Unesite sledeću liniju na kraju fajla:

 * * * * * /path/to/script.sh 

Pet zvezdica odgovaraju vremenu izvršenja, pri čemu prva zvezdica predstavlja minute (0-59), druga sate (u 24-časovnom formatu, dakle 13:00 je 13, ponoć počinje u 0), treća zvezdica dan u nedelji (0-7, 0 i 7 su nedelja), četvrta označava mesec, a poslednja godinu.

Ime izvršne datoteke i njena putanja se takođe navode u fajlu.

Nakon što sačuvate i zatvorite fajl, videćete poruku „crontab: installing new crontab“ na terminalu.

Da biste proverili da li je cron zadatak izvršen, idite u direktorijum file.txt i odštampajte njegov sadržaj na terminalu koristeći cat:

 cat file.txt 

Ovo ukazuje da cron radi kako treba.

4. Provera aktivnih procesa na Linuxu

Drugi način da proverite da li cron radi je da navedete aktivne procese na vašem sistemu. To možete postići korišćenjem komande ps. Cron proces će se prikazati kao crond u izlazu.

 ps aux | grep cron 

Ovo potvrđuje da je cron proces pokrenut na vašem Linux sistemu.

Automatizujte i zakažite sistemske zadatke pomoću cron-a

Cron je jedan od ključnih alata na Linuxu koji omogućava efikasan rad sistema. Ponekad je neophodno proveriti da li cron radi ispravno prilikom rešavanja problema sa sistemom.

To možete učiniti proverom cron logova ili pregledom aktivnih procesa. Takođe, status crona možete proveriti korišćenjem systemctl. Pored toga, pokretanje testnog cron zadatka može vam reći da li servis funkcioniše ili ne.

Nesmetan rad crona vam omogućava da automatizujete i zakažete svakodnevne sistemske zadatke. Većinu cron zadataka automatski kreiraju instalirane aplikacije. Automatizacija i zakazivanje zadataka poboljšava sveukupne performanse sistema i održava ga zdravim.