排程 Linux 版 適用於端點的 Microsoft Defender 的安全智慧更新

若要在 Linux 上執行 適用於端點的 Microsoft Defender 更新,請參見「部署 Linux 上的 適用於端點的 Microsoft Defender 更新」。

Linux 和 Unix 有一個叫 crontab 的工具, (類似任務排程器) ,可以執行排程任務。

先決條件

注意事項

若要取得所有時區的清單,請執行下列命令: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 (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 -l > /var/tmp/cron_backup.dat 備份 crontab。

請使用以下指令移除目前使用者的所有 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) (星期日 = 0 或 7) (特殊字元:, - * / L W C)
| | | | |*****command to be executed