场景

按照一定时间规律运行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

【Shell】30分钟关闭Tcpdump,开启Tcpdump、检测目录大小终止任务的更多相关文章

  1. 关闭或者开启apache的目录浏览

    为了安全或者方便需要关闭或者开启apache的目录浏览   关闭目录浏览    修改http.conf 文件    Options Indexes FollowSymLinks     改为      ...

  2. Linux系统目录结构,Shell脚本;关闭和开启防火墙

    Linux系统目录结构 目录 描述 备注 /bin a.存放着最经常使用的命令 b.可执行文件,用户命令 c.构建最小系统所需要的命令 /boot a.内核与启动文件 b.系统启动相关文件 c.启动L ...

  3. 30分钟学会Docker里面开启k8s(Kubernetes)登录仪表盘(图文讲解)

    前言 我们之前搭建了第一个docker项目: windows环境30分钟从0开始快速搭建第一个docker项目(带数据库交互):https://www.cnblogs.com/xiongze520/p ...

  4. Shell脚本编程30分钟入门

    Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...

  5. 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程

    Linux Shell脚本教程:30分钟玩转Shell脚本编程 http://c.biancheng.net/cpp/shell/

  6. opencv+opencv_contrib 人脸识别和检测 python开发环境快速搭建(30分钟)图文教程

    很多朋友为了学习python.ML(机器学习).DL(深度学习).opencv等花费了大量时间配置安装环境(一个朋友花了4天时间才配置好)各种搜索.下载.安装配置,出问题等. 市面上的配置资料很多,选 ...

  7. Linux基础 30分钟GDB调试快速突破

    引言 Linus心灵鸡汤 在*nix开发中有道卡叫gdb调试,不管你怎么搞. 它依然在那丝毫不会松动.今天致敬一个 活着的传奇 Linus Torvalds Unix 始于上个世纪60年代,在70年代 ...

  8. 30分钟学玩转RabbitMQ

    最近在学习RabbitMQ,在网上找了不少资料发现都特高端.动辄集群部署,分布式架构什么的,对于一个初学者实在不够友好.心想求人不如求自己,为什么不自己整理一套资料呢?于是<30分钟学玩转Rab ...

  9. 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理

    [微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...

随机推荐

  1. SSH框架学习环境配置

    1.      java环境 安装 安装jdk7,根据自己的操作系统选择32位或64位安装. 配置 安装后需要配置环境变量,如下所示: 配置classpath,如下: 并在path中添加java6安装 ...

  2. Linux系统上安装nodejs

    1 官网下载地址:https://nodejs.org/en/download/ 2 下载的node-v10.15.2-linux-x64.tar.xz  上传到Linux系统后  因为安装的是纯净版 ...

  3. springcloud学习笔记

    一.什么是springcloud,有什么作用 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消 ...

  4. centos之Too many open files问题-修改linux最大文件句柄数

    linux服务器大并发调优时,往往需要预先调优linux参数,其中修改linux最大文件句柄数是最常修改的参数之一. 在linux中执行ulimit -a 即可查询linux相关的参数,如下所示: [ ...

  5. BFC规范

    BFC规范 BFC规范是什么? BFC规范也叫块级格式化上下文.是指一个独立的容器. 如何触发BFC? 我们可以通过一下几种方式触发BFC 1.通过浮动触发:float(除none) 2.通过绝对\固 ...

  6. spring-data-redis时效设置

    本人转自http://hbxflihua.iteye.com/blog/2320584#bc2396403 spring目前在@Cacheable和@CacheEvict等注解上不支持缓存时效设置,只 ...

  7. 阅读:ECMAScript 6 入门(4)

    参考 ECMAScript 6 入门 ES6新特性概览 ES6 全套教程 ECMAScript6 (原著:阮一峰) JavaScript 教程 重新介绍 JavaScript(JS 教程) 数组的扩展 ...

  8. mysql使用navicat和mysqldump导出数据

    1.navicat 方式一:选中表,右键转储:(含有表结构和数据) 方式二:选择右上角工具,点击数据传输,在这个页面右侧选择数据库,左侧选择文件. 点击下一步,选择导出的表名和各种函数什么的,然后点击 ...

  9. JAVA 线程池之Callable返回结果

    本文介绍如何向线程池提交任务,并获得任务的执行结果.然后模拟 线程池中的线程在执行任务的过程中抛出异常时,该如何处理. 一,执行具体任务的线程类 要想 获得 线程的执行结果,需实现Callable接口 ...

  10. 四.HashSet原理及实现学习总结

    在上一篇博文(HashMap原理及实现学习总结)详细总结了HashMap的实现过程,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素.所以如果对HashMap比 ...