发表于: 2018-02-08 23:32:45
2 563
今日完成:
1. 编写shell脚本统计指定日期ip访问量和平均每分钟请求次数
1) #! /bin/bash
在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本
2) cat
cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
cat主要有三大功能:
1.一次显示整个文件。
$ cat filename
2.从键盘创建一个文件。
$ cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件。
$cat file1 file2 > file
3) | 管道
利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
4) sed
不带任何参数的set命令将显示shell的全部变量
命令p用于显示模式空间的内容。默认情况下,sed把输入行打印在屏幕上,选项-n用于取消默认的打印操作。当选项-n和命令p同时出现时,sed可打印选定的内容。
sed -n '/my/p' datafile
#选项-n取消sed默认的打印,p命令把匹配模式my的行打印一遍。
5) > >> 重定向符
">"是右重定向符,表示将左边命令结果当成右边命令的输入,注意:如果右侧文件是一个已存在文件,其原有内容将会被清空,而变成左侧命令输出内容。如果希望以追加方式写入,请改用">>"重定向符。
如果">"左边没有指定文件,如: cat >file1,将会等用户输入,输入完毕后再按[Ctrl]+[c]或[Ctrl]+[d],就会将用户的输入内容写入file1。
6) awk 行处理器
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出。
print & $0
print 是awk打印指定内容的主要命令
awk '{print $1}' 将每一行的第一个字段,分行输出
7) sort
sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
8) uniq
uniq命令用于报告或忽略文件中的重复行,一般与sort命令结合使用。
Ps:uniq去重功能,只能针对连续的多行进行去重,只剩下唯一的一条。
9) for循环
for 循环中可以使用 break 和 continue 关键字来跳出循环, 和java 用法一致
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
for var in item1 item2 ... itemN; do command1; command2… done;
10) grep
grep是(global search regular expression(RE) and print out the line的缩写,用于从文件面搜索包含指定模式的行并打印出来,它是一种强大的文本搜索工具,支持使用正则表达式搜索文本。
grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。
grep 是查找含有指定文本行的意思,比如grep test 就是查找含有test的文本的行
grep –v
grep -v 是反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的行
11) wc
wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息
12) echo
用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。
2. 默认访问日志中没有统计相应时间,修改nginx.conf,日志添加响应时间
修改shell,统计平均响应时间
awk中的$NF表示取得最后一列的数据,-S “\”” 表示以”为间隔符,iptime+=$2表示对第二列累加
但是打印的响应时间为0
需要将sum print出来,赋值给变量
修改除法计算方法
但是依然为零,待解决
3. 安装resin
./comfigure显示的问题
make显示的问题
关闭tomcat,启动resion
启动正常,网页正常访问
4. 将war包放置于resin的webapps文件夹下,重启resin,但是war包并没有自动解压
明日计划:
1. 把resin配置好
2. 完成任务三
遇到的问题:
1. resin无法自动解压war包
2. shell脚本如何对两个变量做除法后echo输出,需要保留小数
收获:
1. 编写nginx的访问日志配置
2. 编写shell脚本统计ip请求数量和访问时间
3. 配置resin,学习resin.xml配置
评论