Планирование обновлений аналитики безопасности для Microsoft Defender для конечной точки в Linux

Сведения о запуске обновления для Microsoft Defender для конечной точки на Linux см. в статье Развертывание обновлений для Microsoft Defender для конечной точки на Linux.

Linux и Unix имеют средство crontab (аналогично планировщику задач), которое позволяет выполнять запланированные задачи.

Prerequisites

Примечание.

Чтобы получить список всех часовых поясов, выполните следующую команду: timedatectl list-timezones

Примеры часовых поясов:

  • America/Los_Angeles
  • America/New_York
  • America/Chicago
  • America/Denver

Установка задания cron

Используйте следующие команды:

Резервная копия записей crontab

Используйте следующую команду, чтобы создать резервную копию текущих записей crontab перед внесением изменений:

sudo crontab -l > /var/tmp/cron_backup_201118.dat

Примечание.

В нашем примере — 201118 == YYMMDD.

Совет

Создайте резервную копию записей crontab перед их изменением или удалением.

Чтобы изменить кронтаб корневого пользователя и добавить новое задание:

sudo crontab -e

Примечание.

Редактор по умолчанию — VIM.

Возможно, вы увидите следующее:

0 * * * * /etc/opt/microsoft/mdatp/logrorate.sh

И

0 2 * * sat /bin/mdatp scan quick>~/mdatp_cron_job.log

Инструкции по созданию запланированного задания антивирусной проверки см. в разделе "Планирование проверок с помощью Microsoft Defender для конечной точки (Linux)".

Нажмите кнопку "Вставить".

Добавьте следующие записи. CRON_TZ Используйте параметр, чтобы убедиться, что запланированные задания cron выполняются в предполагаемом часовом поясе:

CRON_TZ=America/Los_Angeles

#! RHEL и варианты (CentOS и Oracle Linux)

0 6 * * sun [ $(date +\%d) -le 15 ] && sudo yum update mdatp -y >> ~/mdatp_cron_job.log

#!SLES и разновидности

0 6 * * sun [ $(date +\%d) -le 15 ] && sudo zypper update mdatp >> ~/mdatp_cron_job.log

#! Системы Ubuntu и Debian

0 6 * * sun [ $(date +\%d) -le 15 ] && sudo apt-get install --only-upgrade mdatp >> ~/mdatp_cron_job.log

Примечание.

В записях cron для RHEL, SLES, Ubuntu и Debian 0 6 * * sun задаёт 00 минут, 6 часов утра (час в 24-часовом формате), любой день месяца, любой месяц и воскресенье. [$(date +\%d) -le 15] не выполняется, если он не равен или меньше 15-го дня (третья неделя). Полная запись cron означает, что задание работает в 6 утра каждый воскресенье, но только если день месяца является 15-й или более ранней.

Нажмите клавишу ESC.

Введите ":wq" без двойных кавычек.

Примечание.

w == запись, q == выход

Чтобы просмотреть задания cron, введите sudo crontab -l

обновите Microsoft Defender for Endpoint в Linux.

Чтобы убедиться, что задания cron, связанные с Defender, выполняются, выполните поиск в журнале cron для mdatp записей:

sudo grep mdatp /var/log/cron

Чтобы открыть файл журнала и просмотреть выходные данные запланированных задач обновления Defender:

sudo nano mdatp_cron_job.log

Настройка запланированных обновлений с помощью Ansible, Chef или Puppet

Используйте следующие команды:

Настройка заданий cron в Ansible

Используйте модуль cron Ansible для управления заданиями cron:

cron - Manage cron.d and crontab entries

Дополнительные сведения см. в статье https://docs.ansible.com/ansible/latest.

Настройка заданий cron в Chef

Используйте ресурс cron Chef для управления заданиями cron:

cron resource

Дополнительные сведения см. в статье https://docs.chef.io/resources/cron/.

Настройка заданий cron в Puppet

Тип ресурса: cron

Дополнительные сведения см. в статье https://puppet.com/docs/puppet/5.5/types/cron.html.

Автоматизация с помощью Puppet: задания Cron и запланированные задачи

Дополнительные сведения см. в статье https://puppet.com/blog/automating-puppet-cron-jobs-and-scheduled-tasks/.

Общие команды crontab и примеры

Следующие команды охватывают распространенные задачи crontab, такие как перечисление, резервное копирование, редактирование и удаление записей cron.

Чтобы получить помощь с crontab

Выполните следующую команду, чтобы просмотреть страницу руководства crontab:

man crontab

Получение списка crontab-файла текущего пользователя

Выполните следующую команду, чтобы вывести записи crontab текущего пользователя:

crontab -l

Получение списка crontab-файла другого пользователя

Выполните следующую команду, чтобы получить список записей crontab другого пользователя:

crontab -u username -l

Резервное копирование записей crontab

Используйте следующую команду, чтобы создать резервную копию текущих записей crontab:

crontab -l > /var/tmp/cron_backup.dat

Совет

Сделайте это перед изменением или удалением.

Восстановление записей crontab

Выполните следующую команду, чтобы восстановить записи crontab из файла резервной копии:

crontab /var/tmp/cron_backup.dat

Изменить crontab и добавить новое задание от имени пользователя root

Используйте следующую команду, чтобы изменить кронтаб корневого пользователя и добавить новое задание:

sudo crontab -e

Изменение crontab и добавление нового задания

Выполните следующую команду, чтобы изменить кронтаб текущего пользователя и добавить новое задание:

crontab -e

Изменение записей crontab другого пользователя

Выполните следующую команду, чтобы изменить записи crontab другого пользователя:

crontab -u username -e

Удаление всех записей crontab

Предупреждение

Эта команда удаляет все записи crontab для текущего пользователя без запроса на подтверждение. Сначала создайте резервную копию crontab с помощью crontab -l > /var/tmp/cron_backup.dat, если вам может понадобиться восстановить его.

Используйте следующую команду, чтобы удалить все записи crontab для текущего пользователя:

crontab -r

Удаление записей crontab другого пользователя

Предупреждение

Эта команда окончательно удаляет все записи crontab для указанного пользователя без запроса на подтверждение. Создайте резервную копию crontab пользователя перед выполнением этой команды.

Используйте следующую команду, чтобы удалить все запланированные задачи для определенного пользователя, удалив записи crontab этого пользователя:

crontab -u username -r

Справочник по полям выражения Cron

На следующей схеме описываются поля в выражении cron:

+—————- минуту (значения: от 0 до 59) (специальные символы: , - * /) 
| +————- час (значения: от 0 до 23) (специальные символы: , - * /)
| | +———- день месяца (значения: от 1 до 31) (специальные символы: , - * / L WC)
| | | +——- месяц (значения: 1 – 12) (специальные символы: , - * / )
| | | | +—- день недели (значения: 0 –6) (воскресенье=0 или 7) (специальные символы: , - * / L W C)
| | | | |*****command to be executed