linux - 每次从我的 apache 服务器访问某个文件时向我发送电子邮件

标签 linux apache bash email logging

我希望每次有人访问我的网络服务器上的 PDF 文件时,我的服务器都会向我发送一封电子邮件。

也许:

tail -f /var/log/apache.log | grep pdf > ??something??

每次 tail/grep 输出内容时,如何生成新的电子邮件?我怎样才能让它作为后台进程运行?

最佳答案

有点粗糙,但可以完成工作。保存文件并使用 ./name.sh & 执行它以将其置于后台

#!/bin/bash
FILE=/path/to/your/file
TERM="pdf"

while read line; do
        echo $line | grep $TERM > /dev/null && echo "your mail body"  | mail -s "new $TERM access" you@somewhere.com
done < <(tail -1f $FILE) 

但是,我不一定建议使用这种方法。如果您希望每次在 apache 中访问文件时触发某些内容,您可以编写一个小型 cgi 程序来处理您的操作并返回文件。我建议调查 AddHandler 指令,如下所述 http://httpd.apache.org/docs/2.2/handler.html

关于linux - 每次从我的 apache 服务器访问某个文件时向我发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21678301/

相关文章:

python - 将 n 行追加到上一行中的某个字符

c - 为交互模式编写C程序

linux - 使用 Linux 和 Windows 时最好的 git 配置设置是什么?

linux - Shell 脚本 while 循环

macos - 波浪号在 Mac 终端中无法识别

linux - 可以创建/编辑组文件但不能更改权限

python - 我可以将 apache mahout 与 django 应用程序一起使用吗

php - 在 APACHE2 中创建数据库返回内部服务器错误

apache - 服务器如何设置 HTTP 响应头?

linux - 如何从包含日期的多个文件中提取日期?