LinuxでMicrosoft Defender for Endpointを使用して crontab を使用してウイルス対策スキャンをスケジュールする

Linuxのスキャンを実行するには、「サポートされているコマンド」を参照してください。

Linux (および Unix) の場合は、crontab (Windows のタスク スケジューラと同様) というツールを使用して、スケジュールされたタスクを実行できます。

前提条件

注:

すべてのタイム ゾーンの一覧を取得するには、次のコマンドを実行します。 timedatectl list-timezones
タイム ゾーンの例:

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

Cron ジョブを設定する

cron ジョブを設定するには、この記事のコマンドを使用します。

crontab エントリのバックアップ

ヒント

エントリを編集または削除する前に、この手順を実行します。

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

Where 200919 = YYMMDD

crontab を編集し、ルート ユーザーとして新しいジョブを追加するには:

sudo crontab -e

注:

既定のエディターは VIM です。

次の情報が表示される場合があります。

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

[挿入] を押し、次のエントリを追加します。

CRON_TZ=America/Los_Angeles

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

注:

この例では、00 分、午前 2 時 (24 時間形式)、月の任意の日、任意の月、土曜日に設定しています。 この設定は、ジョブが土曜日の午前 2 時に実行されます。太平洋 (UTC -8)。

Esc キーを押し、二重引用符を使用せずに「:wq」と入力します。

注:

w == write、q == quit

cron ジョブを表示するには、次のように入力します。 sudo crontab -l

linux mdatp ページのスクリーンショット。

cron ジョブの実行を検査するには

sudo grep mdatp /var/log/cron

mdatp_cron_job.logを検査するには*

sudo nano mdatp_cron_job.log

スキャンの実行を確認する

Linuxは、スケジュールされたスキャンが実行されたことを直接確認する方法を提供しません。

crontab を使用して構成されたスケジュールされたスキャンでは、LinuxのMicrosoft Defender for Endpointで状態フィールドや専用の確認が表示されません。

スキャンが実行されたことを確認するには、次のコマンドを実行します。

mdatp scan list

mdatp scan listは、Microsoft Defender for Endpointによってデバイスで実行された過去 7 回のスキャンの履歴を返します。 スキャン エントリごとに、次の情報が表示されます。

  • スキャンの種類 - クイックまたはフル
  • スキャン開始時刻 - たとえば、2023 年 1 月 5 日午後 3 時 18 分 39 分
  • スキャン状態 - 成功、失敗、取り消しなど

スケジュールされたスキャンが予想される日付、時刻、頻度で実行されたことを確認するには、このコマンドを使用します。

出力では、最後の 7 つのスキャンのみが対象となります。 クイック スキャンとフル スキャンの両方が定期的に実行されているかどうかをチェックする必要がある場合は、時間の経過と共に監視するか、スクリプトを使用します。

スキャンの実行は、次の方法で確認することもできます。

オンデマンド スキャンの実行:

  • クイック スキャン

    mdatp scan quick
    
  • フル スキャン

     mdatp scan full
    
  • 特定のパスをスキャンする

    mdatp scan custom --path /home/user/downloads
    

スキャン結果の確認

  • 検出されたすべての脅威を一覧表示します。

    mdatp threat list
    
  • 特定の脅威の詳細を取得します。

    mdatp threat get --id [threat-id]
    

Ansible、Chef、Puppet、または SaltStack を使用している場合

次のコマンドを使用します。

Ansible で cron ジョブを設定するには

cron - Manage cron.d and crontab entries

詳細については、 Ansible のドキュメントを参照してください

Chef で crontabs を設定するには

cron resource

詳細については、 Chef のドキュメントを参照してください

Puppet で cron ジョブを設定するには

Resource Type: cron

詳細については、「 Puppet のドキュメント: リソースの種類: cron」を参照してください

Puppet を使用した自動化: Cron ジョブとスケジュールされたタスク

詳細については、 ジョブとスケジュールされたタスクに関する Puppet ドキュメントを参照してください

SaltStack で cron ジョブを管理するには

Resource Type: salt.states.cron

例:

mdatp scan quick > /tmp/mdatp_scan_log.log:
  cron.present:
    - special: '@hourly'

詳細については、 Salt.States.Cron のドキュメントを参照してください

追加情報

crontab に関するヘルプを表示するには

man crontab

現在のユーザーの crontab ファイルの一覧を取得するには

crontab -l

別のユーザーの crontab ファイルの一覧を取得するには

crontab -u username -l

crontab エントリをバックアップするには

ヒント

エントリを編集または削除する前に、この手順を実行します。

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

crontab エントリを復元するには

crontab /var/tmp/cron_backup.dat

crontab を編集し、ルート ユーザーとして新しいジョブを追加するには

sudo crontab -e

crontab を編集して新しいジョブを追加するには

crontab -e

他のユーザーの crontab エントリを編集するには

crontab -u username -e

すべての crontab エントリを削除するには

crontab -r

他のユーザーの crontab エントリを削除するには

crontab -u username -r

説明

+—————- minute (values: 0 - 59) (special characters: , \- \* /)  <br>
| +————- hour (values: 0 - 23) (special characters: , \- \* /) <br>
| | +———- day of month (values: 1 - 31) (special characters: , \- \* / L W C)  <br>
| | | +——- month (values: 1 - 12) (special characters: , \- \* /)  <br>
| | | | +—- day of week (values: 0 - 6) (Sunday=0 or 7) (special characters: , \- \* / L W C) <br>
| | | | |*****command to be executed

関連項目