若要在 Linux 上執行 適用於端點的 Microsoft Defender 更新,請參見「部署 Linux 上的 適用於端點的 Microsoft Defender 更新」。
Linux 和 Unix 有一個叫 crontab 的工具, (類似任務排程器) ,可以執行排程任務。
先決條件
注意事項
若要取得所有時區的清單,請執行下列命令:timedatectl list-timezones
時區的範例:
America/Los_AngelesAmerica/New_YorkAmerica/ChicagoAmerica/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
為了確認 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