发表于: 2018-02-08 23:32:45

2 564


今日完成:

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命令结合使用。

Psuniq去重功能,只能针对连续的多行进行去重,只剩下唯一的一条。

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包放置于resinwebapps文件夹下,重启resin,但是war包并没有自动解压

明日计划:

1.       resin配置好

2.       完成任务三

遇到的问题:

1.       resin无法自动解压war

2.       shell脚本如何对两个变量做除法后echo输出,需要保留小数

收获:

1.       编写nginx的访问日志配置

2.       编写shell脚本统计ip请求数量和访问时间

3.       配置resin,学习resin.xml配置



返回列表 返回列表
评论

    分享到