You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派基于inotify实现目录监控及PDF自动处理脚本编写求助

实现方案

1. 前置依赖安装

首先确认你的树莓派已经安装所需工具,执行以下命令:

sudo apt update && sudo apt install inotify-tools postfix mailutils -y

安装postfix过程中选择「Internet Site」配置,按提示完成发件域名设置即可

2. 完整可运行脚本

你可以直接复制以下内容保存为monitor_pdf.sh,按注释修改对应自定义参数即可:

#!/bin/bash
# 自定义参数区,按需修改
MONITORDIR="/path/to/your/monitor/dir"  # 要监控的目录
TARGETDIR="/path/to/your/target/dir"    # 匹配后文件移动的目标目录
KEYWORD="你的指定关键词"                 # 文件名需要包含的关键词
RECIPIENT_EMAIL="your@receive.email"    # 接收通知的邮箱

# 提前创建目标目录避免不存在报错
mkdir -p "${TARGETDIR}"

# 监控逻辑
inotifywait -m -r -e close_write --format '%w%f' "${MONITORDIR}" | while read NEWFILE
do
    # 提取纯文件名(不含路径)
    FILENAME=$(basename "${NEWFILE}")
    # 匹配规则:后缀为.pdf 且 文件名包含指定关键词
    if [[ "${FILENAME}" == *.pdf && "${FILENAME}" == *"${KEYWORD}"* ]]; then
        # 移动文件到目标目录
        mv "${NEWFILE}" "${TARGETDIR}/"
        # 发送通知邮件
        echo "已匹配到新增符合规则的PDF文件:${FILENAME},已移动到目标目录${TARGETDIR}" | mail -s "PDF文件监控通知" "${RECIPIENT_EMAIL}"
    fi
done

这里把inotifywait的触发事件从create改成了close_write,避免文件还在写入过程中就触发动作导致移动文件出错

3. 脚本使用方法

  • 给脚本加执行权限:chmod +x monitor_pdf.sh
  • 测试运行:直接执行./monitor_pdf.sh,往监控目录放符合规则的文件测试功能是否正常
  • 如需开机自启,可以把脚本注册为systemd服务,或者加到/etc/rc.local中

注意事项

  • 运行脚本的用户需要拥有监控目录的读权限、目标目录的写权限
  • 请提前测试postfix发信功能正常,可以执行echo "测试邮件" | mail -s "测试" 你的邮箱验证
  • 如果关键词有特殊字符,需要加转义符处理

内容的提问来源于stack exchange,提问作者Vivien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:09:02