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

无Bash经验,需实现监控目录触发Curl请求的Filewatcher脚本

监控指定文件并触发Curl请求的Bash脚本

下面是完全符合需求的脚本,针对无Bash经验的用户做了详细注释:

#!/bin/bash

# 配置监控参数
MONITOR_DIR="C:/directory/"   # 要监控的目标目录
TARGET_FILE="FILE_RECEIVED.CSV"  # 需要触发动作的文件名
CURL_BASE_URL="http://localhost:3030/load/process-file"

# 无限循环持续监控
while true; do
    # 检查目标文件是否存在
    if [ -f "${MONITOR_DIR}${TARGET_FILE}" ]; then
        echo "找到文件 ${TARGET_FILE},执行请求..."
        # 拼接完整URL并发起GET请求
        curl -X GET "${CURL_BASE_URL}?filename=${TARGET_FILE}&filePathFile=${MONITOR_DIR}"
        
        # (可选)执行后重命名文件,避免重复触发
        # mv "${MONITOR_DIR}${TARGET_FILE}" "${MONITOR_DIR}${TARGET_FILE}_$(date +%Y%m%d%H%M%S).processed"
        
        echo -e "\n请求执行完成"
        # 暂停10秒再继续监控,防止短时间内重复触发
        sleep 10
    fi
    # 每隔2秒检查一次目录,可根据需要调整频率
    sleep 2
done

使用步骤

  1. 把代码复制到文本编辑器,保存为file_watcher.sh
  2. 打开Bash终端(比如Git Bash、WSL、Linux终端),进入脚本所在目录
  3. 给脚本加执行权限:chmod +x file_watcher.sh
  4. 运行脚本:./file_watcher.sh

关键细节说明

  • 路径兼容:Bash中C:/directory/和/c/directory/两种写法都能识别,选自己习惯的就行
  • 重复触发问题:脚本里的可选重命名代码可以把已处理的文件改名,避免每次检查都触发请求,按需开启
  • 资源占用:sleep命令控制检查间隔,间隔太短会占用更多CPU,太长会延迟检测,根据实际情况调整
  • 后台运行:如果需要脚本在后台持续运行,可以用nohup ./file_watcher.sh &,输出会存在nohup.out文件里

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:39:41