Как да показвате и изброявате задачите на Cron с помощта на Crontab ⋆ ALexHost SRL

Изпробвайте уменията си за всички наши хостинг услуги и получете 15% отстъпка!

Използвайте код на касата:

Skills
27.12.2024

Как да показвате и изброявате задачите на Cron с помощта на Crontab

Помощната програма cron в операционните системи, подобни на Unix, позволява на потребителите да планират задачи (команди или скриптове), които да се изпълняват автоматично в определено време или на определени интервали. Независимо дали поддържате сървър или управлявате автоматизирани задачи на локалната си машина, cron е основен инструмент както за системните администратори, така и за разработчиците.

В тази статия ще обясним как да показвате и изброявате задачите на cron с помощта на командата crontab, което ще ви помогне да управлявате ефективно планираните задачи.

Какво е Crontab?

Crontab (съкращение от “таблица на cron”) е файл, който дефинира планираните задачи в системата cron. Всеки потребител в системата, включително главният потребител, може да има своя собствена crontab, в която се посочват задачите, които иска да автоматизира.

Файлът crontab се състои от задачи на cron в следния синтаксис:

* * * * * команда_за_изпълнение
| | | | |
| | | | | ----- ден от седмицата (0 - 7) (неделя=0 или 7)
| | | ---------- месец (1 - 12)
| | --------------- ден от месеца (1 - 31)
| -------------------- час (0 - 23)
------------------------- минута (0 - 59)

Тази структура позволява прецизен контрол върху това кога се изпълняват задачите, което превръща cron в мощен инструмент за автоматизация.

Как да съставите списък на задачите на Cron с помощта на Crontab

За управление на задачите на cron командата crontab е вашата помощна програма. Ето как да покажете задачите на cron за определен потребител или за системата.

1. Преглед на собствените задачи на Cron

За да покажете задачите cron на текущия си потребител, изпълнете следната команда в терминала:

crontab -l

Това ще покаже всички планирани задачи за потребителя, който в момента е влязъл в системата. Ако няма планирани задачи, командата ще върне празен списък или съобщение, че за потребителя няма crontab.

Примерен изход:

# m h dom mon dow команда
0 0 * * * /home/user/backup.sh
30 2 * * 7 /home/user/scripts/cleanup.sh

В този пример:

  • Скрипт за архивиране
    (backup.sh)
    се изпълнява всеки ден в полунощ.
  • Скрипт за почистване
    (cleanup.sh)
    се изпълнява всяка неделя в 2:30 ч.

2. Изписване на задачите на Cron за друг потребител

Ако имате привилегии root или sudo, можете да видите задачите на cron за всеки потребител, като използвате флага

-u
, последван от потребителското име:

sudo crontab -l -u username

Заменете username с действителното потребителско име на потребителя, чиито задачи за cron искате да видите.

Например, за да изведете списъка със задачите на cron за потребител на име john, изпълнете:

sudo crontab -l -u john

Това ще покаже всички планирани задачи cron за този потребител.

3. Извеждане на задачите Cron за цялата система

В допълнение към специфичните за потребителите задачи cron има и задачи cron за цялата система, които се планират от системата или от потребителя root. Те се съхраняват в директории като /etc/crontab, /etc/cron.d/ и директория /var/spool/cron/crontabs.

За да изведете списък с общосистемните задачи cron, можете да отворите и да видите файла /etc/crontab:

cat /etc/crontab

Изходът може да изглежда по следния начин:

SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin#
m h dom mon dow user command
17 * * * * root cd / && run-parts –report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.monthly )

В този пример:

  • /etc/cron.hourly
    задачите се изпълняват на 17-ата минута на всеки час.
  • задачите
    /etc/cron.daily
    се изпълняват всеки ден в 6:25 ч. сутринта.
  • /etc/cron.weekly
    задачите се изпълняват всяка неделя в 6:47 ч.
  • /etc/cron.monthly
    задачите се изпълняват на първия ден от всеки месец в 6:52 ч.

Можете също така да прегледате задачите в /etc/cron.d/, като стартирате:

ls /etc/cron.d/

Всеки файл в тази директория може да съдържа допълнителни задачи cron за системни услуги.

4. Изброяване на задачите на Cron в директорията /var/spool/cron/

Специфичните за потребителя задачи cron обикновено се съхраняват в директорията /var/spool/cron/crontabs. Можете да отидете в тази директория и да изведете всички файлове със задачи на cron:

ls /var/spool/cron/crontabs

Това ще покаже crontab файловете за всеки потребител. За да видите съдържанието на crontab на конкретен потребител, можете да изпълните:

cat /var/spool/cron/crontabs/username

Това дава същия резултат като при изпълнение на crontab -l -u username.

Редактиране на задачи на Cron

Ако трябва да промените или да добавите нови задачи на cron, можете да редактирате своя crontab, като изпълните:

crontab -e

Това отваря вашия crontab в текстовия редактор по подразбиране, като ви позволява да добавяте или променяте съществуващи задачи.

Например, за да добавите ново задание, което изпълнява скрипт всеки ден в 3:00 ч. сутринта, трябва да добавите този ред:

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

След като запазите и излезете от файла, задачата ще бъде планирана незабавно.

Общи команди за съставяне на списък на Crontab

Ето една бърза справка за изброяване на задачите на cron в различни сценарии:

  • Списък със задачите на текущия потребител:
    crontab -l
  • Изброяване на задачите на cron на друг потребител (изисква sudo):
    sudo crontab -l -u username
  • Изброяване на задачите на cron за цялата система:
    cat /etc/crontab
  • Изброяване на всички задачи на cron в
    /etc/cron.d/
    :
    ls /etc/cron.d/
  • Преглед на задачите на cron, съхранявани в
    /var/spool/cron/crontabs/
    :
    ls /var/spool/cron/crontabs

Заключение

Изписването и показването на задачите на cron с помощта на crontab е прост, но мощен начин за управление на планираните задачи в Unix-подобна система. Независимо дали управлявате специфични за потребителя cron задачи или автоматизирани задачи за цялата система, разбирането на тези команди помага да се гарантира, че задачите ви се изпълняват гладко и навреме.

Като овладеете cron, можете да автоматизирате повтарящи се задачи, да поддържате резервни копия и да гарантирате, че вашите скриптове се изпълняват последователно в цялата ви среда.

Изпробвайте уменията си за всички наши хостинг услуги и получете 15% отстъпка!

Използвайте код на касата:

Skills