目标
在linux下实现每天8点-0点每2分钟一次统计web服务器各端口的请求情况,并输出结果到相应的log文件--shell脚本
脚本存放目录
/opt/tomcat/bin/total.sh
主要命令
netstat、grep
、touch、cd、vi、mkdir、chmod、
crontab、cat、date
第一步:编写脚本
1、进入脚本存放目录:cd
/opt/tomcat
2、创建文件夹、并进入: mkdir
bin、cd
bin
3、创建total.sh文件:touch
total.sh
4、写total.sh文件:vi
total.sh
使用i
命令在total.sh中输入以下内容
#! /bin/sh #定义脚本运行shell
count=0 #定义特定端口下的连接数
count1=0 #定义特定端口下来自 JAVA的连接数
#写日志
WriteLog(){
time=`date +%D' '%T` #获取执行时间
out=$time,$1,$count,$count1
echo $out >>/opt/tomcat/bin/bingfa_$1.log #记录统计日志
# 练习使用块注解及case语法
:<<block
case $1 in
9080) echo $out >>/opt/tomcat/bin/log_9080.txt;;
8080) echo $out >>/opt/tomcat/bin/log_8080.txt;;
7080) echo $out >>/opt/tomcat/bin/log_7080.txt;;
4080) echo $out >>/opt/tomcat/bin/log_4080.txt;;
*) echo " error "
esac
block
}
#统计并发量
Total(){
count=`netstat -anop|grep $1 -wc`
count1=`netstat -anop|grep java |grep $1 -wc`
WriteLog $1
}
Total 5080 #调用
后按esc :wq
保存退出,到此该脚本完成。
5、给该文件添加可执行权限:chmod +x
total.sh
设置完成后就可以使用total.sh来运行该脚本了。
第二步:设置定时器
接下来就是在了linux上设置使其定时执行:
linux有个Crontab程序可以很好的完成我们的目标,避免我们自己在shell脚本中写循环执行。具体如下:
crontab -l
(查看当前用户的定时程序)
crontab -e
(进入编辑用户定时程序)
使用i命令,写入
*/2 8-23 * * * /opt/tomcat/bin/total.sh
输完内容后按esc :wq 保存退出
这样total.sh就会在每天的8-23点每两分钟执行一次。
补充
-
shell脚本中定义的变量是全局的
,没有作用域之分。因为刚开始由于疏忽time=`date +%D' '%T`
这句我是写在Total()函数中的,而在WirteLog()是直接调用$time的,结果发现程序正常运行,因此判定变量是全局的。
- shell脚本总的两种注释方式 #注释内容
或者 :<<block 注释内容 block
前者用来注释行,后者用来注释块
- 脚本编写中的第三步可以使用 cat>
total.sh 命令替代
分享到:
相关推荐
英文原版的shell script脚本编写,原版就是比中文的蹩脚翻译好啊,问题讲解的清晰,原理逻辑清晰不啰嗦,学Linux的朋友们不可错过的一本好书啊,Linux系统操作我现在都用一个脚本搞定,真的是想偷懒就写一个脚本吧...
一开始搭建中国博客联盟,既有博友提醒我,做网址大全这类网站维护很麻烦,需要大量的精力去Debug一些已...上午用PHP做了一个放到了京东云试了下,发现检测速度一般,要等上半天(我写的php太蹩脚,就不献丑了)。 随后
保留JS 你好。... 值保存在一个标识符中,如果没有设置“preserve”属性的值,则生成依赖于 url 和 elementID 的标识符。 您可以通过指定保留属性的值来更改此设置 <input type="checkbox" id="chec
###连接器|| - 如果 or 命令返回 true,它将运行第一个命令。 如果返回 false,则将运行第二个命令。 && - 如果两者都返回 true,则 and 连接器将运行两个命令。 如果返回 false,则它根本不会运行。 ; - 分号将...
mocker是一个用于学习目的Docker的一个蹩脚模仿,采用纯Python开发
一个蹩脚的工具用于我们的私人PS4越狱
Little-Jhool-and-the-magical-jewels- Little Jhool 仍然精神错乱——探索他... 输入格式:第一行包含一个数字 t - 表示测试用例的数量。 下一行包含一个字符串。 输出格式:打印他可以从给定字符串生成的最大 rub
6. **命令行接口**:考虑到 `srtfilefixer` 是一个工具,它很可能有一个命令行界面,通过 `java.lang.ProcessBuilder` 或 `java.lang.Runtime.exec` 进行调用。 7. **编译与打包**:Java 项目通常使用 `javac` 编译...
1. **Shell脚本**:Unix的命令行界面和shell脚本是其强大功能的一部分。学习如何编写shell脚本可以提高日常任务的自动化程度,提高工作效率。 2. **进程控制**:Unix中的进程是程序的执行实例。了解如何创建、管理...
一开始搭建中国博客联盟,既有博友提醒我,做网址大全这类网站维护很麻烦,需要大量的精力去Debug一些已夭折...上午用PHP做了一个放到了京东云试了下,发现检测速度一般,要等上半天(我写的php太蹩脚,就不献丑了)。
【标题】"django-news-aggregator" 是一个使用 Django 框架开发的新闻聚合器项目,作者通过构建这个应用来学习 Django 的相关技术。虽然它可能并不适合所有人的需求,但对于那些想要了解如何在 Django 中实现类似...
本文将深入探讨一个名为"Moneywell-Sanitizer"的Ruby脚本,该脚本专为解决DBS(Development Bank of Singapore)和POSB(Post Office Savings Bank)提供的交易文件与MoneyWell之间的格式不匹配问题。 Moneywell-...
初中语文文摘人生最蹩脚的预言
Niagara驱动是连接Niagara系统与硬件设备或第三方系统的桥梁,它们负责数据的传输、解析和处理。 文档可能涵盖以下关键知识点: 1. **Niagara架构**:Niagara基于组件的架构,由工作站、服务器、站点和点组成。...
《构建轻量级HMM-GMM自动语音识别系统——以lameasr为例》 自动语音识别(Automatic Speech Recognition, ASR)技术是人工智能领域的一个重要组成部分,它旨在将人类的语音信号转化为文本或者指令。在众多ASR系统中...
在IT领域,聊天应用的开发是一个常见的学习项目,它能够帮助开发者深入理解网络通信、数据加密以及用户界面设计等关键概念。"JustChat"是一个专为教学而设计的安全聊天应用,旨在帮助初学者通过实际操作掌握Java编程...
这是因为在处理这些数据集时很难同时获得干净的数据和元数据——亲爱的科学家们,请停止发布蹩脚的 excel 电子表格的 zip 文件。 包括预处理脚本和生成的数据库,但不包括导出数据的原始数据(有时版权状态不明)...
系统 这是一个基于vue前端的后台管理信息系统,当时我认识的计院的一个同学,然后接了这么一个项目,我拉着实验室的一个同学一起做的,...emmm虽然不太顺利,但是这个项目也算是我入门vue前端的第一个练手,学到很多。
审查延迟我拼凑了一个蹩脚的小脚本,用于检查 GitHub 拉取请求的首次评论时间是否存在性别偏见。安装安装 。 然后,您可以通过以下方式编译 jar: $ lein uberjar用法您可能想要做的第一件事是打开src/review\_...