ubuntu

Ubuntu Sniffer如何进行网络数据备份

小樊
36
2025-12-19 21:41:12
栏目: 智能运维

Ubuntu Sniffer网络数据备份实操指南

一、概念澄清与总体思路

二、本地滚动抓包并自动备份

三、长期保存与归档策略

四、自动化脚本示例

#!/usr/bin/env bash
set -Eeuo pipefail

IFACE="${1:-eth0}"
CAP_DIR="/var/captures"
LOG_FILE="/var/log/sniffer_backup.log"
RSYNC_USER="backup"
RSYNC_HOST="10.0.0.10"
RSYNC_DIR="/backup/captures"
RETENTION_DAYS=7

rotate_and_backup() {
  local ts
  ts=$(date +"%Y%m%d_%H%M%S")
  local cur="$CAP_DIR/cap_${ts}.pcap"

  echo "[$(date)] Start capture on $IFACE -> $cur" | tee -a "$LOG_FILE"

  # 滚动抓包:100MB/文件,最多10个,抓取完整报文
  sudo tcpdump -i "$IFACE" -w "$cur" -C 100 -W 10 -s 0 >> "$LOG_FILE" 2>&1

  # 同步到远端;成功后删除已同步文件(按需保留本地)
  if rsync -avz --partial --bwlimit=5000 --remove-source-files "$CAP_DIR/" "$RSYNC_USER@$RSYNC_HOST:$RSYNC_DIR/" >> "$LOG_FILE" 2>&1; then
    echo "[$(date)] Backup succeeded: $cur" | tee -a "$LOG_FILE"
  else
    echo "[$(date)] Backup FAILED: $cur" | tee -a "$LOG_FILE"
  fi

  # 本地保留最近 RETENTION_DAYS 天
  find "$CAP_DIR" -type f -mtime +"$RETENTION_DAYS" -delete 2>/dev/null || true
}

mkdir -p "$CAP_DIR"
rotate_and_backup

五、合规与性能注意事项

0
看了该问题的人还看了