Agendar atualizações de inteligência de segurança para Microsoft Defender para Endpoint no Linux

Para executar uma atualização no Microsoft Defender para Endpoint no Linux, veja Implementar atualizações para Microsoft Defender para Endpoint no Linux.

Linux e Unix têm uma ferramenta chamada crontab (semelhante ao Programador de Tarefas) para poder executar tarefas agendadas.

Pré-requisitos

Nota

Para obter uma lista de todos os fusos horários, execute o seguinte comando: timedatectl list-timezones

Exemplos de fusos horários:

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

Definir o trabalho cron

Utilize os seguintes comandos:

Entradas do crontab para backup

Use o seguinte comando para fazer backup das entradas crontab atuais antes de fazer alterações:

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

Nota

No nosso exemplo, 201118 == YYMMDD.

Sugestão

Faça backup das suas entradas do crontab antes de as editar ou remover.

Para editar o crontab do utilizador root e adicionar um novo trabalho:

sudo crontab -e

Nota

O editor predefinido é VIM.

Poderá ver:

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

E

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

Para obter instruções sobre como criar uma tarefa de análise antivírus agendada, consulte Agendar análises com Microsoft Defender para Endpoint (Linux).

Prima "Inserir"

Adicione as seguintes entradas. Utilize a definição CRON_TZ para garantir que as tarefas cron agendadas sejam executadas no fuso horário pretendido:

CRON_TZ=America/Los_Angeles

#! RHEL e variantes (CentOS e Oracle Linux)

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

#! SLES e variantes

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

#! Sistemas Ubuntu e Debian

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

Nota

Nas entradas cron RHEL, SLES, Ubuntu e Debian, 0 6 * * sun especifica 00 minutos, 6h (hora usando o formato 24 horas), qualquer dia do mês, qualquer mês, aos domingos. [$(date +\%d) -le 15] não é executado a menos que seja igual ou menor que o 15º dia (terceira semana). A entrada completa do cron significa que o trabalho decorre às 6h todos os domingos, mas apenas se o dia do mês for dia 15 ou antes.

Prima "Esc"

Escreva ":wq" sem aspas duplas.

Nota

w == escrever, q == sair

Para ver as tarefas cron, escreva sudo crontab -l

atualize o Defender para Endpoint no Linux.

Para verificar se as tarefas cron relacionadas com o Defender foram executadas, procure entradas mdatp no registo do cron:

sudo grep mdatp /var/log/cron

Para abrir o ficheiro de registo e rever a saída das tarefas agendadas de atualização do Defender:

sudo nano mdatp_cron_job.log

Configurar atualizações agendadas com Ansible, Chef ou Puppet

Utilize os seguintes comandos:

Para definir tarefas cron no Ansible

Use o módulo cron do Ansible para gerir os cron jobs:

cron - Manage cron.d and crontab entries

Veja https://docs.ansible.com/ansible/latest para obter mais informações.

Para configurar tarefas cron no Chef

Use o recurso cron do Chef para gerir trabalhos cron:

cron resource

Veja https://docs.chef.io/resources/cron/ para obter mais informações.

Para definir tarefas cron no Puppet

Tipo de Recurso: cron

Veja https://puppet.com/docs/puppet/5.5/types/cron.html para obter mais informações.

Automatizar com o Puppet: Tarefas cron e tarefas agendadas

Veja https://puppet.com/blog/automating-puppet-cron-jobs-and-scheduled-tasks/ para obter mais informações.

Comandos e exemplos comuns de crontab

Os comandos seguintes cobrem tarefas comuns de crontab, como listagem, backup, edição e remoção de entradas cron.

Para obter ajuda com crontab

Execute o seguinte comando para visualizar a página do manual do crontab:

man crontab

Para obter uma lista do ficheiro crontab do utilizador atual

Execute o seguinte comando para listar as entradas crontab do utilizador atual:

crontab -l

Para obter uma lista do ficheiro crontab de outro utilizador

Execute o seguinte comando para listar as entradas crontab de outro utilizador:

crontab -u username -l

Para fazer uma cópia de segurança das entradas crontab

Use o seguinte comando para fazer backup das entradas crontab atuais:

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

Sugestão

Faça isto antes de editar ou remover.

Para restaurar entradas crontab

Execute o seguinte comando para restaurar entradas crontab a partir de um ficheiro de backup:

crontab /var/tmp/cron_backup.dat

Para editar o crontab e adicionar uma nova tarefa como utilizador raiz

Use o seguinte comando para editar o crontab do utilizador root e adicionar um novo trabalho:

sudo crontab -e

Para editar o crontab e adicionar uma nova tarefa

Execute o seguinte comando para editar o crontab do utilizador atual e adicionar um novo trabalho:

crontab -e

Para editar as entradas crontab de outro utilizador

Execute o seguinte comando para editar as entradas crontab de outro utilizador:

crontab -u username -e

Para remover todas as entradas do crontab

Warning

Este comando remove todas as entradas do crontab para o utilizador atual sem necessidade de confirmação. Faz primeiro uma cópia de segurança do teu crontab com crontab -l > /var/tmp/cron_backup.dat, caso precises de o restaurar.

Use o seguinte comando para remover todas as entradas crontab do utilizador atual:

crontab -r

Para remover as entradas crontab de outro utilizador

Warning

Este comando remove permanentemente todas as entradas crontab do utilizador especificado sem necessidade de confirmação. Faça uma cópia de segurança do crontab do utilizador antes de executar este comando.

Use o seguinte comando para remover todas as tarefas agendadas para um utilizador específico, eliminando as entradas crontab desse utilizador:

crontab -u username -r

Referência dos campos de uma expressão cron

O diagrama seguinte explica os campos numa expressão cron:

+—————- minuto (valores: 0 - 59) (carateres especiais: , - * /) 
| +————- hora (valores: 0 - 23) (carateres especiais: , - * /)
| | +———- dia do mês (valores: 1 - 31) (carateres especiais: , - * / L W C)
| | | +——- mês (valores: 1 - 12) (carateres especiais: ,- * / )
| | | | +—- dia da semana (valores: 0 - 6) (Domingo=0 ou 7) (carateres especiais: , - * / L W C)
| | | | |*****command to be executed