【Shell】30分钟关闭Tcpdump,开启Tcpdump、检测目录大小终止任务

场景

按照一定时间规律运行Tcpdump

思路

编程思路细化思考

查看文件个数

    file_count_results=`ls -al "C:\\Users\\Windows32\\Desktop\\test" | grep ^- | wc -l`

显示文件大小

$ du -h --max-depth=0
2.1G . $ du -bs
2177623726 .

这样的话,在SHELL里把文件夹大小做为命令输出赋值到一个变量里,但是用awk命令取第一列

CHECK=$(du -bs /data/sflow_log | awk '{print $1}')

关系运算符

运算符	说明	举例
-eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
-ne 检测两个数是否不相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
-lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
-ge 检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
-le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。

判断文件大小,超过大小终止程序

# 2GB
SIZE="2177622069" # check the current size
CHECK=$(du -bs | awk '{print $1}') if [ "$CHECK" -gt "$SIZE" ]; then
# kill Tcpdump
kill_tcpdump=$(ps aux | grep tcpdump | awk '{print $2}' | xargs sudo kill -9)
fi

sudo运行bash

$ cat test.sh
#!/bin/foo
echo bar $ ./test.sh
bash: ./test.sh: /bin/foo: bad interpreter: No such file or directory $ bash test.sh
bar $ sudo ./test.sh
sudo: unable to execute ./test.sh: No such file or directory $ sudo bash ./test.sh
bar

Windows与Linux文件转换

cat test.sh | col -b > test1.sh

计划任务部分

计划任务实现30分钟运行一次shell脚本,关闭和开启TCPdump

#------------crontab
*/30 * * * * /test.sh

shell脚本内容:


# kill Tcpdump kill_tcpdump=$(ps aux | grep tcpdump | awk '{print $2}' | xargs sudo kill -9) # run tcpdump ,`date `是时间戳 tcpdump -i eth0 -w `date +%s`.pcap

检测文件目录大小

目的是为了检测文件目录的文件是不是超出了预估范围。如果已经超出了预期就停止tcpdump进程

#------------sec shell
# init file_count_results
file_count_results=0 # 1GB
SIZE="1088811863"
while(( $file_count_results<=5 ))
do
# check the current size
CHECK=$(du -bs | awk '{print $1}')
# if file size > 1GB
if [ "$CHECK" -ge "$SIZE" ]; then
# kill Tcpdump,也可以选择删除计划任务
kill_tcpdump=$(ps aux | grep tcpdump | awk '{print $2}' | xargs sudo kill -9)
#break
fi
# watch file size
file_count_results=`ls -al | grep ^- | wc -l`
echo "current file count: $file_count_results"
done

参考

Linux下的换行符\n\r以及txt和word文档的使用

一个Linux平台的门罗币挖矿木马的查杀与分析

sudo: unable to execute ./script.sh: no such file or directory

上一篇:优秀的程序员是如何利用工具来提升工作效率的?


下一篇:底盘智能化的关键技术探讨