Как да показвате и изброявате задачите на Cron с помощта на Crontab
В тази статия ще обясним как да показвате и изброявате задачите на 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)
- Скрипт за почистванесе изпълнява всяка неделя в 2:30 ч.
(cleanup.sh)
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 command17 * * * * 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 )
В този пример:
- задачите се изпълняват на 17-ата минута на всеки час.
/etc/cron.hourly
- задачитесе изпълняват всеки ден в 6:25 ч. сутринта.
/etc/cron.daily
- задачите се изпълняват всяка неделя в 6:47 ч.
/etc/cron.weekly
- задачите се изпълняват на първия ден от всеки месец в 6:52 ч.
/etc/cron.monthly
Можете също така да прегледате задачите в /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, можете да автоматизирате повтарящи се задачи, да поддържате резервни копия и да гарантирате, че вашите скриптове се изпълняват последователно в цялата ви среда.