路由器检测U盘,如果有则调用tcpdump,抓包文件到U盘

这篇博客介绍了如何在华硕路由器上下载并使用静态工具tcpdump进行网络数据包捕获。作者提供了检查USB空间、清理旧cap文件以及确保USB插入的脚本,以确保tcpdump能够正常运行并保存捕获的数据。
摘要由CSDN通过智能技术生成

这里使用的华硕的路由器,tcpdump工具下载,这个是一个静态工具,下载即可用。

Index of /binary/tcpdump/ - KoolCenter 固件下载服务器

#! /bin/sh

USB=/mnt/sda4
CAPS_DIR=$USB

# 如果U盘空间不够,需要清理空间出来
clean_space() {
     echo "start clean space"
     file=`ls -t $CAPS_DIR/*.cap* | tail -1`
     echo delete file: $file
     rm -rf $file
}

# 检查U盘空间,如果不够,需要删除旧的cap文件
check_space(){
     echo "start check space"
     cursize=`df | grep mnt | awk '{print $4}'`
     #minsize=30200000
     min_size=2048000

     count=0
     while [ $cursize -lt $minsize -a $count -lt 5 ]  ; do
          echo check_space cur free size:$cursize
          clean_space
          count=$(($count+1))
          cursize=`df | grep mnt | awk '{print $4}'`
     done

     if [ $cursize -lt $minsize ]; then
          echo "space too small"
          return 1
     else 
          echo "space ok"
          return 0
     fi
}

# 检测是否插上了USB
check_usb(){
     USB=`df | grep mnt | awk '{print $6}'`
     CAPS_DIR=$USB

     # USB可能为空,要先判断
     if [[ -z $USB ]]; then                
          return 1                           
     fi

     echo start check $USB
     if [ -d $USB ]; then
          check_space
          return $?
     else
          return 1
     fi
}

last_time=0
curr_time=`date +%s`

# 如果没有检测到U盘,需要随机sleep一个时间,以让出CPU
randon_sleep() {
     curr_time=`date +%s`
     tx=`shuf -i 0-20 -n 1` 
     if [ $(($last_time + 10)) -gt $curr_time ]; then 
          echo less than 10 seconds, sleep 5
          sleep 5
     fi
     echo randon sleep $tx
     sleep $tx
}

# main入口函数
main_loop(){
     while [ true ]; do
          check_usb
          if [ $? -ne 0 ]; then
               echo "CHECK USB FAIL"
               randon_sleep
          else
               echo CHECK USB OK
               #tcpdump..........
               /jffs/aimore/tcpdump -i any -C 20M -w $CAPS_DIR/`date +%Y%m%d%H%M%S`.cap
          fi
          last_time=`date +%s`
     done
}

main_loop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值