cron е програма за планиране на задачи за Linux и Unix-подобни операционни системи. Той идва предварително инсталиран на всички Linux дистрибуции и е най-подходящ за автоматизиране на повтарящи се задачи.
За да функционира правилно cron, трябва периодично да проверявате дали помощната програма работи добре на вашата система. Можете да направите това, като използвате четири различни начина, включително проверка на състоянието на услугата cron, преглед на журналите на cron, стартиране на тестова задача на cron и изброяване на изпълняваните процеси във вашата система.
Съдържание
Какво е cron?
Безшумният манипулатор на задачи, cron, автоматизира и планира системни задачи. Потребителите, които конфигурират и поддържат софтуерни среди, използват cron, за да планират задания като команди или скриптове на обвивката – наричани също задания на cron – за периодично изпълнение на фиксирани времена или интервали.
cron автоматизира задачи по поддръжка или администриране на системата, които може да се наложи да изпълнявате често.
В Linux има няколко реализации. Версията, която ще имате, зависи от вашето разпространение. „Vixie cron“, кръстен на оригиналния си разработчик Пол Викси, е често срещан и е стандартен за Debian и Ubuntu. Arch няма версия на cron в полза на таймерите systemd.
cronie е разклонение на Vixie cron, което се предлага като стандартен пакет Arch. За да го инсталирате, използвайте pacman:
sudo pacman -S cronie
След това стартирайте и го активирайте с:
sudo systemctl start cronie.service
sudo systemctl enable cronie.service
Можете да видите коя версия на cron е инсталирана на вашата система, като потърсите нейната страница с ръководство:
man cron
Как да проверите дали cron работи на Linux
Ето някои от начините, по които можете да проверите дали cron работи правилно:
1. Проверете състоянието на услугата cron на Linux
Един от начините да проверите дали cron работи е като проверите състоянието на услугата cron, като изпълните основна команда на Linux. Отворете терминала на Linux, като натиснете Ctrl + Alt + T и използвайте командата systemctl, за да проверите състоянието на cron:
sudo systemctl status cron
Ако видите следния изход, това означава, че cron е активен и работи добре на вашата система.
Но какво ще стане, ако cron е в неактивно състояние, както е показано по-долу?
Можете да стартирате услугата по следния начин:
sudo systemctl start cron.service
След като стартирате услугата cron, активирайте я, така че да стартира всеки път, когато системата се рестартира:
sudo systemctl enable cron.service
2. Проверете журналите на cron на Linux
Друг начин да проверите дали cron работи правилно е като прегледате лог файловете. cron регистрационните файлове се съхраняват в директорията /var/log/syslog на Linux.
syslog е протокол, който Linux системите използват за централизиране на регистрационните файлове с данни за събития. След това се осъществява достъп до регистрационните файлове за извършване на одити, наблюдение, отстраняване на неизправности, докладване и други необходими ИТ оперативни задачи.
Можете да видите регистрационните файлове на задачите на cron в syslog файла, като изпълните следната команда:
grep 'cron' /var/log/syslog
Ще видите подобен резултат, който показва, че cron работи добре и неговите регистрационни файлове се съхраняват в лог файла:
Тъй като папката syslog съдържа други системни регистрационни файлове заедно с регистрационните файлове на cron, може да бъде малко трудно да се изследват само свързаните с cron регистрационни файлове във файла. Можете да разрешите това, като създадете отделен лог файл, който съхранява само cron записи, които се появяват в syslog файла.
В този пример ще използваме нано редактора, но можете да използвате всеки редактор, с който се чувствате комфортно.
Отворете следния файл с помощта на nano:
nano /etc/rsyslog.d/50-default.conf
Намерете реда, който започва с:
#cron.*
Разкоментирайте този ред, като премахнете знака решетка (#). След това запазете и излезте от файла, като натиснете Ctrl + X, след това натиснете Y и натиснете Enter.
Рестартирайте услугата rsyslog, като издадете тази команда:
sudo service rsyslog restart
Вече ще получавате регистрационни файлове във файла cron.log, който се намира в директорията /var/log.
Ако вашият терминал не успее да извлече никакви регистрационни файлове, това може да означава, че cron не работи. В такъв случай потвърдете дали cron работи или не използва други методи.
3. Изпълнение на cron Job на Linux
Можете също така да проверите дали cron работи, като просто създадете тестова задача на cron и я изпълните. Ако задачата успее да изпълни задачата, това означава, че функционира добре.
Първо трябва да създадете Bash скрипт. Bash скриптовете ви позволяват да автоматизирате ежедневните задачи на Linux.
Нека създадем Bash скрипт, който ще отпечата „моят cronjob работи!“ в TXT файл. За да създадете файла, първо открийте настоящата си работна директория, като използвате тази команда:
pwd
Създайте файл в текущата директория, като използвате командата touch:
touch file.txt
След това създайте Bash файл с помощта на nano:
nano script.sh
Добавете следното съдържание към файла:
#! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt
Уверете се, че сте предоставили правилното местоположение на текстовия файл, който сте създали. Запазете и излезте от файла, като натиснете Ctrl + X, след това Y и натиснете Enter.
Дайте разрешения за изпълнение на Bash скрипта:
chmod +x script.sh
Сега създайте cron задание, за да изпълните скрипта. За да направите това, отворете файла crontab с:
crontab -e
Въведете следния ред в края на файла.
* * * * * /path/to/script.sh
Петте звездички съответстват на времето на изпълнение, в което първата звездичка представлява минутите (0-59), втората представлява часовете (в 24-часово време, така че 13:00 ч. е 13, полунощ започва от 0), третата звездичка означава деня (0-7, 0 и 7 са неделя), четвъртата означава месеца, а последната звездичка показва годината.
Името на изпълнимия файл и пътят му също се споменават във файла.
След като запазите и затворите файла, ще видите съобщение „crontab: инсталиране на нов crontab“ на терминала.
За да проверите дали заданието cron работи или не, отидете в директорията на file.txt и отпечатайте съдържанието му на терминала с помощта на cat:
cat file.txt
Това показва, че cron работи добре.
4. Проверете Running Processes на Linux
Друг начин, по който можете да проверите дали cron демонът работи, е като изброите изпълняваните процеси във вашата система. Можете да постигнете това с помощта на командата ps. Демонът cron ще се покаже в изхода като crond.
ps aux | grep cron
Това потвърждава, че процесът cron работи на вашата Linux система.
Автоматизирайте и планирайте системни задачи с cron
cron е една от най-важните помощни програми на Linux, която позволява на системата да работи ефективно. Понякога трябва да проверите дали cron работи, докато отстранявате системни проблеми.
Можете да постигнете това, като проверите журналите на cron или видите изпълняваните процеси във вашата система. Можете също да проверите състоянието на cron с помощта на помощната програма systemctl. Освен това, стартирането на тестова cron задача също може да ви каже дали услугата работи или не.
Гладката работа на cron ви позволява да автоматизирате и планирате ежедневни системни задачи. Повечето задачи на cron се създават автоматично от инсталирани приложения. Автоматизирането и планирането на задачи подобрява цялостната производителност на системата и я поддържа здрава.