查找文件并发送电子邮件

查找文件并发送电子邮件

我想每 60 秒查找一个文件。如果该文件在该时间范围内存在,则应触发电子邮件。我在下面尝试过但不起作用。感谢您的帮助!谢谢提前

#!/bin/sh
cd /my/path
while true 
do 
    set Hrs = `date "+H"`
    if [ $Hrs >= 17 ] && [$Hrs <=23 ]; then
        $filefound = `ls tt.txt`
        if  [ $filefound = "tt.txt" ]; then
             mailx send email......
        fi
    fi
sleep 5
done

答案1

尝试下面的代码。

#!/bin/sh
cd /my/path
while true; do
    Hrs=`date "+%H"`
    if [ "$Hrs" -ge 17 ] && [ "$Hrs" -le 23 ]; then
        if  [ -f tt.txt ]; then
          echo "File Found" | mail -s "This is the subject" <email address>
        fi
    fi
    sleep 60
done

我已经测试了除邮件部分之外的整个脚本。其他一切都可以,我希望邮件也可以。干杯。

答案2

有一个精确的测试(在所有 shell 中)来查看文件是否存在、是否是真实文件、是否可读等。应避免使用 ls。

.. 每次文件不存在时,它都会发送一条错误消息。

..它每次都运行一个外部进程。

..这还将检测目录、命名管道、设备等。

如果您要发送电子邮件,您也可以包含找到的文件名。

最好将文件名声明一次作为 shell 变量。最好将其作为脚本的参数,这样它就可以用于不同的文件而无需更改。

睡眠 5 与睡眠 60 不同。

相关内容