USBストレージデバイスが挿入されたときに電子メール通知を受け取る方法


27

当社では、600以上のUbuntuシステムを実行しています。データセンターであるため、特定のポリシーがあります。すべてのUbuntuシステムでストレージデバイスの使用を無効にしました。ただし、電子メールアラートを設定したいと思います。誰かがストレージデバイスを挿入すると、次のような件名のアラートがメールで届きます。

メールアラート:

STORAGE DEVICE FOUND on IP: 172.29.35.18

注意:

  • Windowsシステムに関しては、DCに特定のポリシーが適用されています。したがって、Windowsシステムには問題はありません。
  • Ubuntuシステムのアラートも受信する必要があります。上記のタスクを達成する方法はどれも素晴らしいでしょう。

更新:

  • ユーザーがネットワークケーブルを切断し、ユーザーがデータ転送にusbを使用する場合、明確にすることはいくつかありますか?私はどんな暗示も受け取らないことを知っていますが、後で彼らがネットワークに接続すれば、それらの保留中の通知を受け取ることは可能ですか??
  • 携帯電話の充電にusbを使用する人もいますが、そのために電子メール通知を受け取ることは可能ですか??

スーパーユーザーにこの投稿を見に行く必要があると思います:superuser.com/questions/305723/… ベン
ベン

回答:


25

これを行う方法は、すべてのメーカーのすべてのUSBストレージデバイスに適用されるudevルールを使用することです。電子メールの部分については、Ubuntu Desktopにはコマンドラインの電子メールクライアントが含まれていないことに注意してください。


これは私からの素晴らしい+1です。D
karthick87

偉大な答えは、それがすべての出力が必要、電子メールおよびIPの両方与えた
LnxSlck

@izxは、更新に関する私の質問をご覧になるようお願いします
。– karthick87

おそらく、/ etc / udev / rules.d / usbnotif.shスクリプトは、ルールファイルとの混乱を避けるために別の場所に保存する必要があります。技術的にはそこにとどまることができますが。
elomage

@ karthick87:おかげで、電話/ネットワークの更新を数時間後に見ていきます。電話通知は問題になりませんが、ネットワーク通知の遅延には、配信されるまでメールをキューに入れることができる適切なSMTPサーバー/クライアントが各マシンに必要になる場合があります。しかし、私は何ができるか見ていきます:)
ish

18

イカを使用できます(https://apps.ubuntu.com/cat/applications/cuttlefish/)!

イカは、イベントが発生したときにアクションを実行できるプログラムです。たとえば、USBが接続されているときにコマンドを実行できます。 ここに画像の説明を入力してください

イカの使用方法:

  1. 左上隅から新しい反射を作成します。 ここに画像の説明を入力してください
  2. 好みの名前を付けて有効Activated by stimulusにし、クリックしNoneて刺激を選択します。 ここに画像の説明を入力してください
  3. 左側Hardwareと右側をクリックしUSB device plugged inます。次に「OK」をクリックします。 ここに画像の説明を入力してください
  4. [反応]タブをクリックして、左下のプラス記号をクリックします。 ここに画像の説明を入力してください
  5. [アプリケーション]-> [アプリケーションの開始](アドバンスモード)に進みます。次に「OK」をクリックします。 ここに画像の説明を入力してください
  6. これで、右側で、実行する実行可能ファイルを選択して任意のパラメーターで実行できることがわかります。そのため、システムトレイでCuttlefishを実行する必要があり、USBデバイスが接続されるたびにコマンドを実行します。 ここに画像の説明を入力してください

電子メールを送信するために使用できるコマンドを知っていると思います。そうでない場合は、コメントとして投稿して、回答に含めてください。


600のすべてのubuntuシステムで、イカをインストールして設定してほしいですか?その後、それは大きくて難しいタスクです
。.-karthick87

7
いずれかのシステムでイカを設定したら、簡単にクローンを作成できます~/.cuttlefish。また、イカのログイン設定で自動起動をオンにすると(設定で確認できます)、クローンを作成することですべてのマシンで自動起動を設定できます~/.config/autostart/cuttlefish.desktop
アレックス

@ karthick87、アレックスが言ったこと。私の知る限り、デフォルトでできることはありません。だから、とにかく600のシステムすべてで何かをする必要があります
...-hytromo

結局のところ、この方法で十分に快適だと思うということですか?
-hytromo

3

この答えに従って、このコードを/etc/udev/rules.d/90-local.rules

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/usb.sh"

そして、usb.shファイルに、このコードを追加します

#!/bin/bash
ifconfig | grep ip >>/tmp/usb.log

echo “USB inserted.” | mutt -a /tmp/usb.log -s “attachment” example@hotmail.com

ソース


今、私はそれを自動化しようとしているので、600個のUbuntuシステムにこのルール/スクリプトを追加できます。

    sudo echo " ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", ATTRS{vendor}=="SanDisk ", RUN+="/usr/local/bin/usb.sh" ">>/etc/udev/rules.d/90-local.rules

 #then the `usb.sh`

    sudo echo "     #!/bin/bash
        ifconfig | grep ip >>/tmp/usb.log

        echo “USB inserted.” | mutt -a /tmp/usb.log -s “attachment” example@hotmail.com " >>/usr/local/bin/usb.sh

このスクリプトはテストされていません。自動化プロセスは改善されます。
テスト用PCをセットアップしたらすぐに。


これは私からの+1としては良いようです。テストして作業状況をお知らせください。すべてのubuntuシステムに適用できるように..
karthick87

これにより、「SanDisk」製以外のUSBデバイスが検出されますか?
Takkat

4
いいえ、これはSandisk製のデバイスでのみ機能します。さらに、muttUbuntuデスクトップにはデフォルトでインストールされずifconfig | grep ip、null出力を提供します。
ish

1

サーバーのパワーを取得するだけでなく、新しいusbデバイスを見ることができます(通常は電話が含まれます)

USBパーツの場合:Linux、Pythonで「USBデバイス挿入」イベントをリッスンするにはどうすればよいですか?

Pythonで電子メールを送信する:電子メール-Python-utf-8電子メールの送信方法

イーサネットの場合は、netplugdを使用し、upまたはdownステートメントを使用します。Ubuntuマンページ
:netplugd-ネットワークケーブルホットプラグ管理デーモン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.