#!/bin/bash
# 需要安装sshpass

# 配置参数
cloud_user="root"
cloud_host=""
remote_dir="/home/packets_capture"
local_dir="/home/packets_capture"
password=""  # 输入你的密码
downloaded_file_list="$local_dir/downloaded_files.txt"

# 确保本地目录和记录文件存在
mkdir -p "$local_dir"
touch "$downloaded_file_list"

# 无限循环，定期检查是否有新文件需要下载和分析
while true; do
    # 获取远程 .pcap.done 文件列表
    remote_files=$(sshpass -p "$password" ssh "$cloud_user@$cloud_host" "ls $remote_dir/*.pcap.done 2>/dev/null")

    # 遍历远程文件列表
    for remote_file in $remote_files; do
        # 获取文件名
        filename=$(basename "$remote_file")

        # 检查文件是否已经下载和分析过
        if grep -q "$filename" "$downloaded_file_list"; then
            echo "文件 $filename 已经下载和分析过，跳过该文件。"
        else
            # 下载文件
            sshpass -p "$password" scp "$cloud_user@$cloud_host:$remote_file" "$local_dir/"
            echo "已下载新文件：$filename"

            # 分析下载的文件
            echo "正在使用 Suricata 处理文件：$local_dir/$filename..."
            suricata -r "$local_dir/$filename" -l /home/log/suricata --runmode single -k none
            echo "已分析文件：$filename"

            # 记录已下载和分析的文件
            echo "$filename" >> "$downloaded_file_list"

            # 可选：分析完成后删除文件以节省空间
            # rm -f "$local_dir/$filename"
        fi
    done

done

