阿斯
#!/bin/sh while [ 1 ] do STIME=`date +%F"@"%H%M%S` #抓取抓包时间 DATE_DIR=`date +%F` #抓取抓包文件夹日期 if [ ! -d /data/$DATE_DIR ];then mkdir -p /data/$DATE_DIR #判断目标文件夹下是否有该日期的目录,有则忽略,无则创建 fi /usr/sbin/tcpdump -i eth1 -c 30000 -w /data/$DATE_DIR/$STIME.pcap > /dev/null 2>&1 & #后台抓包,监控eth1端口,每次自动抓包3w个自动停止并保存到相应目录,这个值可以根据需要来修改 sleep 1m #抓包后停止1分钟继续抓,该值可以根据需要来修改 done
2:监控硬盘使用率脚本 modisk.sh ,由于连续抓包会生成众多pcap数据文件,非常占用硬盘空间,所以监控硬盘使用率是保证监控脚本健康运行的前提条件,下面写了个脚本,可以设定计划任务,每6个小时执行一次(可根据需要来修改),监控硬盘使用率大于50%(可以根据情况来修改),则自动筛选出最早的数据文件夹并删除. #!/bin/bash FREEDISK=`df -h|grep "/dev/sda1"|awk '{print $5}'|awk -F % '{print $1}'` #抓取磁盘占用百分比 HEADDIR=`ls -l /data|grep ^d|awk '{print $NF}'|sort|head -n 1` #抓取之间最靠前的文件夹名称 if [ "$FREEDISK" -ge "50" ];then rm -rf /data/"$HEADDIR" #判断磁盘占用百分比是否超过设定阈值,如果不超过则忽略并退出脚本,超过则执行删除HEADDIR目录 fi 3: 监控抓包脚本运行状态的脚本 motcpdump.sh , 由于机器长期运行,中间又不可能天天登陆服务器去检查抓包脚本是否在运行中怎么办? 下面脚本可以实现这个自动巡检的功能. #!/bin/bash MOTCPDUMP=`ps -elf|grep tcpdump|grep -v grep` #抓取系统进程中是否有tcpdump进程 if [ ! "$MOTCPDUMP" ];then /bin/bash /home/tcpdump.sh & #判断有则忽略并退出,没有则重新后台执行该脚本 fi 将上