awk命令

系统巡检脚本

时光怂恿深爱的人放手 提交于 2019-11-26 06:13:08
#!/bin/bash #主机信息每日巡检 IPADDR=$(ifconfig eth0|grep 'inet addr'|awk -F '[ :]' '{print $13}') #环境变量PATH没设好,在cron里执行时有很多命令会找不到 export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin source /etc/profile [ $(id -u) -gt 0 ] && echo "请用root用户执行此脚本!" && exit 1 centosVersion=$(awk '{print $(NF-1)}' /etc/redhat-release) VERSION="2017.08.22" #日志相关 PROGPATH= echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,' [ -f $PROGPATH ] && PROGPATH="." LOGPATH="$PROGPATH/log" [ -e $LOGPATH ] || mkdir $LOGPATH RESULTFILE="$LOGPATH/HostDailyCheck-$IPADDR- date +%Y%m%d .txt" #定义报表的全局变量 report_DateTime

web服务器日志里面访问次数最多的IP

本小妞迷上赌 提交于 2019-11-26 00:46:52
apache日志里面访问次数最多的IP 假设apache日志格式为: 118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] “GET /Public/Css/index.css HTTP/1.1″ 304 – “ http://www.a.cn/common/index.php ” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.3)” 问题1:在apachelog中找出访问次数最多的10个IP。 awk '{print $1}' apache_log |sort |uniq -c|sort -nr|head -n 10 awk 首先将每条日志中的IP抓出来,如日志格式被自定义过,可以 -F 定义分隔符和 print指定列; sort进行初次排序,为的使相同的记录排列到一起; upiq -c 合并重复的行,并记录重复次数。 head进行前十名筛选; sort -nr按照数字进行倒叙排序。 我参考的命令是: 显示10条最常用的命令 sed -e "s/| //n/g" ~/.bash_history | cut -d ' ' -f 1 | sort | uniq -c | sort -nr | head 问题2:在apache日志中找出访问次数最多的几个分钟。 awk