20 praktičnih `cron` komandi koje bi svaki Linux admin trebao znati!

`cron` je Linux servis koji omogućava automatizaciju zadataka u tačno određeno vrijeme. Administratori ga koriste za backup, čišćenje logova, monitoring sistema i mnoge druge zadatke. U ovom članku prikazujemo 25 praktičnih `cron` komandi koje bi svaki Linux admin trebao znati.



Kako izgleda format jednog cron zadatka?


* * * * * komanda

│ │ │ │ │

│ │ │ │ └── dan u sedmici (0-7)

│ │ │ └──── mjesec (1-12)

│ │ └────── dan u mjesecu (1-31)

│ └──────── sat (0-23)

└────────── minuta (0-59)



1. Uređivanje cron zadataka


Primjer komande sa sintaksom:

$crontab -e

Otvara crod editor za trenutnog korisnika.



2. Pregled cron zadataka


Primjer komande sa sintaksom:

$crontab -l

Prikazuje sve aktivne cron zadatke.



3.Prikazuje sve aktivne cron zadatke


Primjer komande sa sintaksom:

$crontab -r

Briše sve cron unose.



4. Crontab za drugog korisnika (root)


Primjer komande sa sintaksom:

$crontab -u user -e

Administracija cron zadataka drugih korisnika.



== Praktični cron primjeri – realni scenariji - ==



1. Pokretanje skripte svake minute


Primjer komande sa sintaksom:

$* * * * * /home/user/script.sh

Koristi se za česte provjere (monitoring).



2. Svakih 5 minuta (najčešći slučaj)


Primjer komande sa sintaksom:

$*/5 * * * * /home/user/script.sh

Idealno za health-check skripte.



3. Svakih sat vremena


Primjer komande sa sintaksom:

$0 * * * * /home/user/script.sh

Pokreće se na početku svakog sata.



4. Svaki dan u ponoć


Primjer komande sa sintaksom:

$0 0 * * * /home/user/daily.sh

Standard za dnevne zadatke.



5. Backup svaki dan u 2 ujutro


Primjer komande sa sintaksom:

$0 2 * * * /backup/backup.sh

Pravi backup skripte svaki dan u 2 ujutro.



6. Svaki ponedjeljak u 3 ujutro


Primjer komande sa sintaksom:

$0 3 * * 1 /home/user/weekly.sh

Za sedmične zadatke.



7. Prvi dan u mjesecu


Primjer komande sa sintaksom:

$0 4 1 * * /home/user/monthly.sh

Mjesečni izvještaji ili cleanupi.



8. Samo radnim danima


Primjer komande sa sintaksom:

$0 9 * * 1-5 /home/user/work.sh

Radni raspored (pon – pet).



9. Svakih 30 minuta


Primjer komande sa sintaksom:

$*/30 * * * * /home/user/script.sh

Pokreće cron zadatak svakih 30 minuta.



10. Tačno u 14:30


Primjer komande sa sintaksom:

$30 14 * * * /home/user/script.sh

Pokreće cron zadatak tačno u 14:30.



11. Brisanje logova starijih od 30 dana


Primjer komande sa sintaksom:

0 1 * * * find /var/log -name "*.log" -mtime +30 -delete

Šta radi:

Svaki dan u 01:00 briše sve .log datoteke starije od 30 dana.

Objašnjenje:

  • 0 1 * * * → svaki dan u 1:00

  • find /var/log → pretraga log direktorija

  • -name "*.log" → samo log fajlovi

  • -mtime +30 stariji od 30 dana

  • -delete → briše ih

Kada koristiti:

serveri sa puno logova
✔ automatizacija održavanja



12. Backup sa timestampom


Primjer komande sa sintaksom:
$0 2 * * * tar -czf /backup/home-$(date +\%F).tar.gz /home

Šta radi:

Svaki dan u 02:00 pravi backup /home direktorija sa datumom u nazivu.

Objašnjenje:

  • tar -czf → kompresovani backup

  • $(date +%F) → format datuma (YYYY-MM-DD)

  • \%F → escape jer cron tretira % posebno

Kada koristiti:

dnevni backup
✔ audit i restore scenariji



13. Logovanje izlaza skripte


Primjer komande sa sintaksom:

$*/5 * * * * /script.sh >> /var/log/script.log 2>&1

Šta radi:

Pokreće skriptu svakih 5 minuta i zapisuje sve u log.

Objašnjenje:

  • >> → dodaje output u fajl

  • 2>&1 → preusmjerava greške u isti log

Kada koristiti:

debugging
✔ produkcija (uvijek!)



14. Slanje email notifikacije


Primjer komande sa sintaksom:

$0 8 * * * echo "Report ready" | mail -s "Daily Report" admin@example.com

Šta radi:

Svaki dan u 08:00 šalje email administratoru.

Objašnjenje:

  • echo → sadržaj poruke

  • mail -s → subject emaila

Kada koristiti:

izvještaji
✔ alerting sistemi

⚠️ zahtijeva konfigurisan mail server



15. Restart servisa


Primjer komande sa sintaksom:

$0 3 * * * systemctl restart nginx

Šta radi:

Restartuje servis svaki dan u 03:00.

Objašnjenje:

  • koristi se za:

    • memory leak

    • reset servisa

Kada koristiti:

legacy aplikacije
✔ workaround rješenja



16. Monitoring diska


Primjer komande sa sintaksom:

$*/10 * * * * df -h | grep -v tmpfs >> /var/log/disk.log

Šta radi:

Svakih 10 minuta zapisuje stanje diska.

Objašnjenje:

  • df -h → disk usage

  • grep -v tmpfs → uklanja virtualne filesysteme

Kada koristiti:

analiza problema
✔ monitoring bez alata



17. Automatski update sistema


Primjer komande sa sintaksom:

$0 4 * * * apt update && apt upgrade -y

Šta radi:

Svaki dan u 04:00 ažurira sistem.

Objašnjenje:

  • apt update → lista paketa

  • apt upgrade -y → instalacija

Kada koristiti:

test serveri
✔ development okruženje



18. Provjera uptime-a


Primjer komande sa sintaksom:

$*/5 * * * * uptime >> /var/log/uptime.log7

Šta radi:

Zapisuje uptime svakih 5 minuta.

Objašnjenje:

  • uptime → koliko dugo sistem radi

Kada koristiti:

analiza restartova
✔ monitoring stabilnosti



19. Pokretanje Python skripte


Primjer komande sa sintaksom:

$*/15 * * * * /usr/bin/python3 /home/user/script.py

Šta radi:

Pokreće Python skriptu svakih 15 minuta.

Objašnjenje:

  • koristi se apsolutna putanja

  • cron nema isti PATH kao terminal

Kada koristiti:

automatizacija
✔ scraping
✔ API taskovi



20. Čišćenje /tmp direktorija


Primjer komande sa sintaksom:

$0 0 * * * rm -rf /tmp/*

Šta radi:

Briše sve iz /tmp svaki dan u ponoć.

Objašnjenje:

  • rm -rf → prisilno brisanje

  • /tmp/* → sve datoteke

Kada koristiti:

server cleanup



BONUS: Kako napisati Bash skriptu i automatizirati je pomoću cron-a (korak po korak)


U ovom primjeru ćemo:

napraviti jednostavnu Bash skriptu
✔ dati joj dozvole za izvršavanje
✔ testirati je
✔ automatizirati pomoću cron



🎯 Scenario


Napravit ćemo skriptu koja:

  • provjerava zauzeće diska

  • zapisuje rezultat u log fajl



1. Kreiranje Bash skripte


Komanda sa sintaksom:

$nano /home/amar/disk_check.sh

Kreira datoteku po imenu ‘disk_check.sh’.



2. Sadržaj skripte


#!/bin/bash

LOG_FILE="/home/amar/disk_usage.log"

echo "===== $(date) =====" >> $LOG_FILE
df -h >> $LOG_FILE
echo "" >> $LOG_FILE



Objašnjenje skripte


  • #!/bin/bash → definiše interpreter

  • LOG_FILE → lokacija log fajla

  • date → dodaje timestamp

  • df -h → prikazuje zauzeće diska

  • >> → dodaje (append) u fajl



3. Dodjela dozvole za izvršavanje


Komanda sa sintaksom:

$chmod +x /home/amar/disk_check.sh



4. Testiranje skripte (OBAVEZNO)


Komanda sa sintaksom:

$./disk_check.sh

Provjera statusa skripte komandom:

$cat /home/amar/disk_usage.log



5. Automatizacija pomoću cron-a


Komanda sa skriptom:

$crontab -e

Otvara crontab editor.



6. Dodavanje cron zadatka


Komanda sa sintaksom:

$*/10 * * * * /home/amar/disk_check.sh

Pokreće skriptu svakih 10 minuta.



7. Provjera da li cron radi


Komanda sa sinstaksom:

$tail -f /home/amar/disk_usage.log

Možemo vidjeti da je skripta ‘disk_check.sh’ uspješno automatizirana kroz cron komandu, te će ista da prikazuje stanje diska svakih 10 minuta, a rezultat spremati u datoteku ‘disk_usage.log’.


⚠️ Najvažniji savjeti


uvijek koristi apsolutne putanje
✔ uvijek testiraj skriptu prije cron-a
✔ koristi log fajlove za debugging
✔ provjeri permisije (chmod +x)



Zaključak


cron nije samo alat za zakazivanje komandi — to je temelj automatizacije u Linux administraciji. Sve što se ponavlja na serveru (backup, čišćenje logova, monitoring, restart servisa) može i treba biti automatizirano.

Kroz ovaj članak vidjeli smo:

  • kako funkcioniše crontab i njegov format

  • kako pisati jednostavne i napredne cron izraze

  • kako automatizirati realne administratorske zadatke

  • kako kombinovati cron sa alatima poput find, tar, df i Bash skripti

Ključ uspjeha u radu sa cron-om nije samo u pisanju komandi, nego u:

razumijevanju šta se izvršava
✔ testiranju prije produkcije
✔ logovanju rezultata
✔ oprezu sa destruktivnim komandama

Share:

1 komentar:

KURS LINUX ESSENTIALS

KURS LINUX ESSENTIALS

PRIRUČNIK - ZORIN OS & PRVI KORACI SA LINUXOM

POPULARNI POSTOVI

Arhiva bloga

NAJNOVIJE