USBデバイスがマイコンピュータ(Arch Linux)に接続されたら、電子メールを送信するスクリプトを作成しようとしています。私が書いたコードは
#!/bin/bash
if [[ ! -z "$1" ]]; then
echo "USB inserted at $(date) for $1 and $2" >> /home/user/commands/logs.log
cd ~
ip -4 addr | grep -oP '(?<=inet\s)\d+(\.\d+){3}' > /home/user/commands/testing.txt
echo -e "Subject: Hello \n\nBody:usb inserted at $(ip -4 addr | grep -oP '(?<=inet\s)\d+(\.\d+){3}')\nthrough the mail" | msmtp [email protected]
fi
このスクリプトはipv4アドレスをメールで送信する必要があります。 USBプラグインを検出し、ログファイルとテストtxtファイルを作成します。
しかし、電子メールは送信されませんでした。メールを端末経由で別々にコーディングしましたが、うまくいくようです。ただし、コード内ではメールは実行されません。
msmtpが動作するように設定しました。ターミナルコマンドを使って直接確認しましたが、うまくいきます。しかし、スクリプトを通しては機能しません。
他のすべてのコマンドが実行されており、ファイルをインポートしています。
これは私のルールスクリプトです。
ACTION=="add",\
SUBSYSTEMS=="usb",\
ENV{DEVTYPE}=="usb_device",\
RUN+="/usr/local/bin/usbinserted.sh '%E{DEVTYPE}' '%E{DEVNAME}'"