1.有一个文件,里面有二列,第一列ip地址,第二列是时间,同一个ip可能出现多次,但时间不同.
文件类似下面的样子:现要求写一脚本,显示出现最多的ip top 10
awk ‘{print $1}‘ file|sort|uniq -c|sort -nr|head -10
分析:
只是提取最多的IP,并没有要求包含时间,所以先提取该IP列进行下一步的处理;
然后利用sort排序,再用uniqu -c 统计次数并显示;
再用sort -nr 按由高到低的顺序排列,最后利用head 截取前10 排;
[root@localhost ~]# awk ‘{print $1}‘ bb.txt | sort -nr |uniq -c |head -10 10 192.168.1.2 5 192.127.12.1
2.假设Apache产生的日志文件为access.log,在Apache正在运行的时候,执行命令mv access.log access.bak
,执行完毕后,请问新的apache日志会打印到那里?为什么?
答: 新的日志会打印在access.bak中. 因为apache启动时,会找到access.log文件,随时准备向文件中追
加日志,虽然此时文件被改名,但是由于服务正在运行,因为它的inode节点的位置没有变,程序打开的
fd仍然会指向原来的那个inode.不会因为文件名的改变而改变,但若重启服务器之后,系统就会检查
access.log文件是否存在,不存在,则创建.
3.在shell环境中,如何查看远程Linux系统运行了多少时间?
[root@localhost ~]# uptime 10:37:40 up 12:50, 2 users, load average: 0.02, 0.03, 0.00 [root@localhost ~]# ssh root@192.168.10.100 uptime | awk ‘{print $1,$2,$3}‘ root@192.168.10.100‘s password: 10:37:45 up 12:50,
4.处理一下文件内容,将域名取出并进行计数排数,如处理:
http://www.baidu.com/index.html
http://www.baidu.com/1.html
http://www.baidu.com/2.html
http://post.baidu.com/index.html
http://mp3.baidu.com/index.html
http://www.baidu.com/3.html
http://post.baidu.com/2.html
得到如下结果:域名的出现次数,域名
4 www.baidu.com
2 post.baidu.com
1 mp3.baidu.com
shell程序如下
[root@localhost ~]# cat aa.txt http://www.baidu.com/index.html http://www.baidu.com/1.html http://www.baidu.com/2.html http://post.baidu.com/index.html http://mp3.baidu.com/index.html http://www.baidu.com/3.html http://post.baidu.com/2.html [root@localhost ~]# cat aa.txt |sed ‘s#http://##g;s#/.*##g‘|sort -nr |uniq -c 4 www.baidu.com 2 post.baidu.com 1 mp3.baidu.com [root@localhost ~]# awk -F "/" ‘{print $3}‘ aa.txt |sort -nr |uniq -c 4 www.baidu.com 2 post.baidu.com 1 mp3.baidu.com [root@localhost ~]# cat aa.txt |sed -e ‘s/http:\/\///g ‘ -e ‘s/\/.*//g‘|sort -nr |uniq -c 4 www.baidu.com 2 post.baidu.com 1 mp3.baidu.com
原文:http://feilong0663.blog.51cto.com/3265903/1360766