我正在尝试编写一个脚本,以便在 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}'"