Cron е програма за планиране на задачи в операционната система Linux. Тя ви позволява да стартирате скриптове или команди автоматично в определени часове, интервали или събития.
За да използвате Cron, трябва да създадете файл crontab
, който съдържа списък със задачи и времеви интервали, през които те трябва да се изпълняват. Всяка задача в crontab представлява низ, който се състои от пет полета, разделени с интервали:
* * * * * command_to_execute
- - - - -
| | | | |
| | | | +----- day of the week (0 - 6) (Sunday = 0 or 7)
| | | +------- month (1 - 12)
| | +--------- day of the month (1 - 31)
| +----------- hour (0 - 23)
+------------- minutes (0 - 59)
*
означава всяка стойност, например, ако полето minutes съдържа *
, задачата ще се изпълнява на всяка минута. Ако искате да зададете конкретна стойност за дадено поле, например всеки ден в 3 часа сутринта, трябва да напишете 0 3 * * * *
.
За да създадете или промените файл crontab, използвайте командата crontab -e. Всеки потребител може да има свой собствен crontab файл, както и системния файл /etc/crontab
, който съдържа задачите, изпълнявани като потребител root.
Съществува команда cronjob
, която ви позволява да изпълнявате задачи вътре в контейнерите Docker. Тя работи подобно на crontab
, но задачите могат да се изпълняват вътре в контейнера вместо в хост системата.
За да започнете да използвате Cron в Linux, следвайте следните стъпки:
1. отворете терминал и въведете командата crontab -e.
Това ще отвори файла crontab за текущия потребител.
2. Добавете задача към файла crontab в съответствие с формата на полето, описан по-горе. Например, ако искате да стартирате скрипта every_hour.sh
на всеки час, добавете реда 0 * * * * * * /path/to/every_hour.sh
.
3. Запазете промените и затворете файла.
4. Проверете дали задачата е добавена в crontab, като използвате командата crontab -l.
Тя ще покаже списък на всички задачи, добавени в crontab
.
5. Проверете дали задачата се изпълнява по график, като използвате командата tail -f /var/log/syslog
. Ще видите изходните данни, свързани с изпълнението на задачата.
6. Ако искате да премахнете дадена задача от crontab
, използвайте командата crontab -r.
Има някои важни моменти, които трябва да имате предвид:
crontab
. Но ако искате да изпълните скрипт, уверете се, че той има права за изпълнение(chmod +x /path/to/script.sh)
.sudo crontab -e
, за да отворите файла crontab
за потребителя root.Обърнете внимание, че времето, посочено в crontab
, ще съвпадне с времето на сървъра, на който се изпълнява Cron. Ако използвате отдалечен сървър, уверете се, че времето на сървъра е конфигурирано правилно.