Как да прегледате и изброите Cron Jobs с помощта на Crontab
Утилитата cron в Unix-подобни операционни системи позволява на потребителите да планират задачи (команди или скриптове) да се изпълняват автоматично в определени времена или интервали. Независимо дали поддържате сървър или управлявате автоматизирани задачи на локална машина, cron е основен инструмент за системни администратори и разработчици.
Тази статия обяснява как да прегледате и изброите cron задачи с помощта на командата
crontabКакво е командата Crontab?
Crontab (съкратено от “cron таблица”) е файл, който дефинира планирани задачи за cron демон. Всеки потребител в система, включително потребителя
rootЗапис в crontab следва следния синтаксис:
* * * * * command_to_be_executed
| | | | |
| | | | +----- day of the week (0–7) (Sunday = 0 or 7)
| | | +---------- month (1–12)
| | +--------------- day of the month (1–31)
| +-------------------- hour (0–23)
+------------------------- minute (0–59)
Тази структура позволява прецизен контрол върху кога се изпълняват задачите, което прави cron мощен инструмент за автоматизация.
Как да изброите Cron задачи с Crontab
Командата
crontab1. Прегледайте своите собствени Cron задачи
За да покажете cron задачи за текущо влезлия потребител, изпълнете:
crontab -lТази команда изброява всички планирани cron задачи за текущия потребител. Ако няма съществуващи cron задачи, може да върне празен изход или съобщение, указващо, че няма дефинирана crontab.
Примерен изход:
# m h dom mon dow command
0 0 * * * /home/user/backup.sh
30 2 * * 7 /home/user/scripts/cleanup.sh
В този пример:
- Скрипт за резервно копие се изпълнява ежедневно в полунощ.
- Скрипт за почистване се изпълнява всяка неделя в 2:30 ч.
2. Изброяване на Cron задачи за друг потребител
Ако имате
sudo-usudo crontab -l -u usernameЗаменете
usernamesudo crontab -l -u johnТова показва всички cron задачи, планирани за посочения потребител.
3. Изброяване на системни Cron задачи
В допълнение към специфичните за потребител cron задачи, има системни cron задачи, планирани от системата или root потребителя. Те обикновено се съхраняват в:
/etc/crontab/etc/cron.d//var/spool/cron/crontabs/
За да видите основния системен 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 )
Тази конфигурация планира часови, дневни, седмични и месечни системни поддръжки.
За да изброите допълнителни системни cron файлове, изпълнете:
ls /etc/cron.d/Всеки файл в тази директория може да дефинира допълнителни планирани задачи за системни услуги.
4. Преглед на Cron задачи в /var/spool/cron
Файловете crontab, специфични за потребителя, обикновено се съхраняват в
/var/spool/cron/crontabsls /var/spool/cron/crontabsЗа да видите съдържанието на crontab файла на конкретен потребител:
cat /var/spool/cron/crontabs/usernameТова предоставя същия изход като
crontab -l -u usernameРедактиране на Cron задачи
За да редактирате или добавите cron задачи за текущия потребител, изпълнете:
crontab -eТова отваря crontab файла в текстовия редактор по подразбиране. След запазване и излизане, промените влизат в сила незабавно.
Пример: изпълнявайте скрипт всеки ден в 3:00 ч:
0 3 * * * /home/user/script.shЧесто срещани команди за изброяване на Crontab
- Изброяване на cron задачите на текущия потребител:
crontab -l - Изброяване на cron задачите на друг потребител (изисква sudo):
sudo crontab -l -u username - Преглед на системния crontab:
cat /etc/crontab - Изброяване на cron файлове в /etc/cron.d/:
ls /etc/cron.d/ - Изброяване на потребителски crontabs:
ls /var/spool/cron/crontabs
Заключение
Прегледът и изброяването на cron задачи с помощта на
crontabКато овладеете cron, можете да автоматизирате повтарящи се задачи, да управлявате резервни копия и да поддържате последователно изпълнение на скриптове в цялата си среда.
