find有一个参数 -size +10000M
你可以定义一个变量 它的值为
查找目录下 是否满足同时名字叫123.cap 并且尺寸大于10000M的
是就赋予var
先执行tcpdump 后台运行
然后做一个循环 每隔一秒判断这个var
var=$(find . -name "123.cap" -size +10000M)
判断这个var是否不为空
当不为空 那么代表文件超出10g了 那么就完毕吧 exit
思路这样 你自己试试看
我来写写:
#!/bin/bash
LIMIT=10
FILESIZE=0
while [ $FILESIZE -lt $LIMIT ];do
sleep 1
FILESIZE=`du -sh 123.cap | awk '{print $1}' |sed 's/K|M|G//g'`
done
killall tcpdump
#!/bin/bash
LIMIT=$((1024*1024*1024*10)) #10G Bytes
FILESIZE=0
while [ $FILESIZE -lt $LIMIT ];do
sleep 1
FILESIZE=`stat -c%s 123.cap`
done
# do some killall
killall tcpdump