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

请求配置Perforce Checkpoint新增文件实时通知DL或指定群组

实现Perforce Checkpoint文件新增时的自动邮件通知

方法1:用inotify-tools实时监控(推荐)

该方法能在文件创建瞬间触发通知,延迟极低。

  1. 安装inotify-tools

    • Debian/Ubuntu系统:
      sudo apt update && sudo apt install inotify-tools
      
    • RHEL/CentOS/Rocky Linux系统:
      sudo dnf install inotify-tools
      
  2. 编写监控脚本
    创建脚本/usr/local/bin/p4_checkpoint_notify.sh,内容如下:

    #!/bin/bash
    MONITOR_DIR="/p4/1/checkpoints"
    DL_EMAIL="your-dl-group@example.com"
    
    # 监控目录的文件创建事件,过滤目标格式文件
    inotifywait -m -e create --format '%f' "$MONITOR_DIR" | while read FILENAME; do
        if [[ "$FILENAME" =~ ^p4_1\.ckp\.[0-9]+\.gz$ ]]; then
            # 发送通知邮件
            echo "Perforce Checkpoint文件已新增:$MONITOR_DIR/$FILENAME" | mailx -s "【Perforce】新Checkpoint文件生成" "$DL_EMAIL"
        fi
    done
    
  3. 配置脚本权限与后台运行

    • 赋予执行权限:
      chmod +x /usr/local/bin/p4_checkpoint_notify.sh
      
    • 后台启动并持久化(可添加到systemd实现开机自启):
      nohup /usr/local/bin/p4_checkpoint_notify.sh > /var/log/p4_checkpoint_notify.log 2>&1 &
      

方法2:定时检查(适合无法使用inotify的环境)

如果服务器不支持inotify,可通过crontab定时扫描目录,对比文件变化:

  1. 编写检查脚本
    创建脚本/usr/local/bin/p4_checkpoint_check.sh:

    #!/bin/bash
    MONITOR_DIR="/p4/1/checkpoints"
    DL_EMAIL="your-dl-group@example.com"
    LAST_CHECK_FILE="/var/tmp/p4_checkpoint_last.list"
    
    # 生成当前目录下的目标文件列表
    CURRENT_FILES=$(ls "$MONITOR_DIR"/p4_1.ckp.*.gz 2>/dev/null)
    
    # 首次运行初始化记录文件
    if [ ! -f "$LAST_CHECK_FILE" ]; then
        echo "$CURRENT_FILES" > "$LAST_CHECK_FILE"
        exit 0
    fi
    
    # 对比找出新增文件
    NEW_FILES=$(comm -13 <(sort "$LAST_CHECK_FILE") <(echo "$CURRENT_FILES" | sort))
    
    if [ -n "$NEW_FILES" ]; then
        echo "以下Perforce Checkpoint文件已新增:
    $NEW_FILES" | mailx -s "【Perforce】新Checkpoint文件生成" "$DL_EMAIL"
        # 更新记录文件
        echo "$CURRENT_FILES" > "$LAST_CHECK_FILE"
    fi
    
  2. 配置crontab定时执行
    编辑用户crontab:

    crontab -e
    

    添加以下内容(每分钟检查一次,可按需调整频率):

    * * * * * /usr/local/bin/p4_checkpoint_check.sh > /dev/null 2>&1
    

注意事项

  • 确保服务器已配置好邮件发送服务(如postfix),mailx命令可正常发送邮件。
  • 替换脚本中的your-dl-group@example.com为实际的邮件分发列表地址。
  • 可调整日志路径,方便后续排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:15:28