为 Linux 上的 Microsoft Defender for Endpoint 安排安全智能更新

若要在 Linux 上的 Microsoft Defender for Endpoint 上运行更新,请参阅在 Linux 上部署Microsoft Defender for Endpoint更新

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 条目。

编辑根用户的 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 for Endpoint (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

注意

在 RHEL、SLES、Ubuntu 和 Debian 的 cron 条目中,0 6 * * sun 指定为:00 分、6 时(24 小时制)、每月中的任意一天、任意月份,以及星期日。 [$(date +\%d) -le 15] 除非它等于或小于第 15 天 (第三周) ,否则不会运行。 完整的 cron 条目意味着作业在星期日早上 6 点运行,但前提是月中的日期是 15 日或更早。

按“Esc”

输入“:wq”,不要输入双引号。

注意

w == 写入,q == 退出

若要查看 cron 作业,请键入 sudo crontab -l

更新 Linux 上的 Defender for Endpoint。

若要验证与 Defender 相关的 cron 作业是否已运行,请在 cron 日志中搜索 mdatp 条目:

sudo grep mdatp /var/log/cron

若要打开日志文件并查看计划Defender更新任务的输出,

sudo nano mdatp_cron_job.log

使用 Ansible、Chef 或 Puppet 配置计划更新

使用以下命令:

在 Ansible 中设置 cron 作业

使用 Ansible 的 cron 模块管理 cron 作业:

cron - Manage cron.d and crontab entries

有关详细信息,请参阅 https://docs.ansible.com/ansible/latest

在 Chef 中配置 crontab

使用 Chef 的 cron 资源管理 cron 作业:

cron resource

有关详细信息,请参阅 https://docs.chef.io/resources/cron/

在 Puppet 中设置 cron 作业

资源类型: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

以 root 用户身份编辑 crontab 并添加新作业

使用以下命令编辑根用户的 crontab 并添加新作业:

sudo crontab -e

编辑 crontab 并添加新作业

运行以下命令以编辑当前用户的 crontab 并添加新作业:

crontab -e

编辑其他用户的 crontab 条目

运行以下命令以编辑其他用户的 crontab 条目:

crontab -u username -e

删除所有 crontab 条目

Warning

此命令删除当前用户的所有 crontab 条目,而无需提示确认。 如果之后可能需要恢复 crontab,请先使用 crontab -l > /var/tmp/cron_backup.dat 备份它。

使用以下命令删除当前用户的所有 crontab 条目:

crontab -r

删除其他用户的 crontab 条目

Warning

此命令会永久删除指定用户的所有 crontab 条目,而不会提示确认。 在运行此命令之前备份用户的 crontab。

使用以下命令通过删除该用户的 crontab 条目删除特定用户的所有计划任务:

crontab -u username -r

Cron 表达式字段说明

下图说明了 cron 表达式中的字段:

+—————- 分钟 (值: 0 - 59)  (特殊字符: , - * /) 
|+————- 小时 (值: 0 - 23) (特殊字符: , - * /)
| | +———- 每月中的日期(取值:1 - 31)(特殊字符:, - * / L W C)
| | |+——- 个月 (值: 1 - 12) (特殊字符: ,- * / )
| | | |+—- 星期几 (值:0 - 6) (Sunday=0 或 7) (特殊字符: , - * / L W C)
| | | | |*****command to be executed