#!/bin/bash

# 抓包网卡
interface="eth0"

# pcap 文件保存目录（固定为 /home/packets_capture）
output_dir="/home/packets_capture"
mkdir -p "$output_dir"

# 保留最近 1 小时的数据包（文件过期时间：60 分钟）
max_age=3600  # 1小时 = 3600秒

# 无限循环进行抓包
while true; do
    # 当前时间戳
    timestamp=$(date +"%Y-%m-%d_%H-%M-%S")
    
    # pcap 文件路径
    output_file="$output_dir/$timestamp.pcap"
    
    # 使用 tcpdump 抓包，抓取 60 秒的包
    tcpdump -i "$interface" -w "$output_file" -G 60 -W 1 -v
    
    # 添加 .done 后缀
    mv "$output_file" "$output_file.done"
    
    # 删除超过 max_age 秒的 pcap 文件（以 .done 后缀为标识）
    find "$output_dir" -type f -name "*.done" -mmin +$((max_age / 60)) -exec rm -f {} \;
done

