udev 및 msmtp를 사용하여 자동 이메일을 보낼 수 없습니다

udev 및 msmtp를 사용하여 자동 이메일을 보낼 수 없습니다

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}'"

관련 정보