Планирование сканирования с использованием cron с помощью crontab -e
В этом шаге мы настроим наш скрипт scan.sh
на автоматическое выполнение с использованием cron
. cron
- это планировщик задач по времени в операционных системах, подобных Linux. Он позволяет вам планировать выполнение команд или скриптов в определенные моменты времени, даты или с определенным интервалом.
Для планирования задачи с использованием cron
мы используем команду crontab
. Команда crontab -e
открывает файл crontab в текстовом редакторе (обычно nano
в среде LabEx).
В терминале введите следующую команду:
crontab -e
Если это первый раз, когда вы используете crontab
, вас может попросить выбрать редактор. Выберите nano
, выбрав соответствующую цифру.
Файл crontab содержит список задач cron, каждая на отдельной строке. Каждая строка состоит из шести полей:
minute hour day_of_month month day_of_week command
- minute: Минуты часа, когда задача будет выполняться (0 - 59).
- hour: Часы дня, когда задача будет выполняться (0 - 23).
- day_of_month: День месяца, когда задача будет выполняться (1 - 31).
- month: Месяц года, когда задача будет выполняться (1 - 12).
- day_of_week: День недели, когда задача будет выполняться (0 - 6, где 0 - воскресенье).
- command: Команда для выполнения.
Например, чтобы выполнить скрипт scan.sh
каждую минуту, добавьте следующую строку в файл crontab:
* * * * * /home/labex/project/scan.sh
Эта строка означает:
*
: Каждую минуту
*
: Каждый час
*
: Каждый день месяца
*
: Каждый месяц
*
: Каждый день недели
/home/labex/project/scan.sh
: Команда для выполнения (полный путь к нашему скрипту)
Важно: в реальном мире обычно не рекомендуется выполнять сканирование каждую минуту, так как это может нагружать сеть и целевые устройства. В целях тестирования в этом лабораторном стенде выполнение каждую минуту допустимо.
Для сохранения изменений нажмите Ctrl+X
, затем Y
, чтобы подтвердить, а затем Enter
, чтобы сохранить файл.
Вы должны увидеть сообщение вида "crontab: installing new crontab". Это означает, что задача cron была успешно запланирована.
Задачи cron обычно выполняются в фоновом режиме без отображения никакого вывода. Чтобы увидеть вывод скрипта scan.sh
, вы можете перенаправить его в файл. Например, чтобы перенаправить вывод в файл с именем scan.log
в вашей директории ~/project
, вы можете изменить запись задачи cron следующим образом:
* * * * * /home/labex/project/scan.sh > /home/labex/project/scan.log 2>&1
Часть > /home/labex/project/scan.log
перенаправляет стандартный вывод в файл scan.log
, а 2>&1
перенаправляет стандартную ошибку в тот же файл.