Grįžti į tinklaraštį
Gegužė 23, 2026Vadovai

Kaip nustatyti cron užduotis Linux serveryje

Cron sintaksė, crontab redagavimas, pavyzdžiai ir žurnalų įrašymas automatizacijai VPS.

Kaip nustatyti cron užduotis Linux serveryje

Cron yra standartinis Linux planuoklis skriptų ir komandų paleidimui pagal grafiką — atsarginės kopijos, talpyklos valymas, sertifikatų tikrinimas ir kt.

Cron sintaksė

Kiekvienoje eilutėje penki laiko laukai ir komanda:

bash
# ┌──────── minute (0-59)
# │ ┌────── hour (0-23)
# │ │ ┌──── day of month (1-31)
# │ │ │ ┌── month (1-12)
# │ │ │ │ ┌─ day of week (0-7, 0 and 7 = Sunday)
# │ │ │ │ │
# * * * * * command

# Every day at 3:00 AM:
0 3 * * * /usr/local/bin/backup.sh

# Every 15 minutes:
*/15 * * * * /usr/local/bin/check.sh

Crontab redagavimas

crontab -e dabartiniam vartotojui. Sistemos užduotims — su sudo:

bash
# Edit your user crontab
crontab -e

# Edit root crontab
sudo crontab -e

# List current jobs
crontab -l
sudo crontab -l

Dažni pavyzdžiai

  • 0 2 * * * — kasdienė atsarginė kopija 2:00
  • 0 */6 * * * — kas 6 valandas
  • 0 0 * * 0 — kiekvieną sekmadienį vidurnaktį
  • */5 * * * * — kas 5 minutes (atsargiai su apkrova)
  • @reboot /path/script.sh — po serverio perkrovimo
  • @daily /usr/bin/certbot renew --quiet — kasdieninis SSL tikrinimas

Žurnalai ir derinimas

Nukreipkite išvestį į žurnalo failą, kad matytumėte klaidas:

bash
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup-cron.log 2>&1

# View cron execution in system log:
grep CRON /var/log/syslog   # Ubuntu
grep CRON /var/log/cron      # CentOS

Patarimai

  • Cron komandose naudokite absoliučius kelius
  • Prieš crontab patikrinkite skriptą rankiniu būdu
  • MAILTO=email crontab klaidų el. paštui (jei paštas sukonfigūruotas)
  • Sudėtingiems scenarijams apsvarstykite systemd timer
  • Neįvykdykite sunkių užduočių kas minutę