LinuxのMicrosoft Defender for Endpointで更新プログラムを実行するには、「LinuxでのMicrosoft Defender for Endpointの更新プログラムの展開」を参照してください。
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 for Endpointを使用したスキャンのスケジュール設定 (Linux)」を参照してください。
"挿入" を押す
次のエントリを追加します。 スケジュールされた cron ジョブが目的のタイム ゾーンで実行されるようにするには、 CRON_TZ 設定を使用します。
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 日目 (第 3 週) 以下でない限り実行されません。
完全な 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 で crontabs を設定するには
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 コマンドと例
次のコマンドでは、cron エントリの一覧表示、バックアップ、編集、削除などの一般的な crontab タスクについて説明します。
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 を編集し、ルート ユーザーとして新しいジョブを追加するには
次のコマンドを使用して、ルート ユーザーの 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) (Sunday=0 または 7) (特殊文字: , - * / L W C)
| | | | |*****command to be executed