shell习题第2题:统计ip访问量】的更多相关文章

统计IP访问量 #!/bin/bash # 统计IP的访问量 # 第一步首先得获取到日志的IP # 第二步给IP排序,这样相同的的IP就会在一起 sort # 第三步则给重复的IP统计数量,去重 uniq -c # 最后一步再排序,我们按IP访问量来排序,从大到小等 sort -n awk '{print $1}' access.log |sort |uniq -c | sort -n -r |less # 或者直接注入到一个txt文件里,统计访问量就是这么简单!…
[题目要求] 有日志1.log,部分内容如下: 112.111.12.248 – [25/Sep/2013:16:08:31 +0800]formula-x.haotui.com “/seccode.php?update=0.5593110133088248″ 200″http://formula-x.haotui.com/registerbbs.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)” 61.147.76.5…
[题目要求] 需求,根据web服务器的访问日志,把一些请求高的ip给拒绝掉,并且每隔半小时把不再发起请求或者请求量很小的ip给解封 假设: 1. 一分钟内请求量高于100次的ip视为不正常的请求 2. 访问日志路径为/data/logs/access_log 取线上的Nginx日志作为练习 [核心要点] 统计ip访问次数,排序 如何标记每隔半个小时 iptables计数器是一个重要的判断标准 函数(封ip,解封ip) [脚本] block_ip() { t1=`date -d "-1 min&q…
[题目要求] 设计一个脚本,监控远程的一台机器(ip为192.168.1.100)的存活状态,当发现宕机的时候发一份邮件给自己 [核心要点] ping -c10 192.168.1.100通过 ping 来判定对方是否在线 发邮件脚本:https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py [脚本] #!/bin/bash n=`ping -c5 192.168.1.100 | grep 'pa…
[题目要求] 加入需要每小时执行一个脚本.功能:当时间是0点和12点时,将/data/log/下的文件全部清空,注意只能清空文件内容而不能删除文件.而其他时间只需要统计一下每个文件的大小,一个文件一行,输出到一个按日期和时间为名字的日志里,需要考虑/data/log/目录下的二级.三级所有的子目录中的文件 [要点] find列出所有文件 date +%H >file 清空文件 [脚本] #!/bin/bash dir=/tmp/log_stat t=`date +%d%H` t1=`date +…
[题目要求] 写一个脚本计算一下linux系统所有进程占用内存的大小的和 [核心要点] ps命令用法 for循环 加法运算 [脚本] #!/bin/bash for n in `ps aux | grep -v 'TIME COMMAND' | awk '{print $6}'` do sum=$[$sum+$n] done echo $sum…
[题目要求] 设计一个shell脚本用来备份数据库,首先在本地服务器上保存一份数据,然后再远程拷贝一份,本地保存一周的数据,远程保存一个月 假设我们知道mysql root账号的密码,要备份的库为data123,本地备份目录为/bak/mysql,远程服务器ip为192.168.1.100,远程提供了一个rsync同步服务 [核心要点] 备份数据库的命令 同步到远程服务器的命令 本地一周,可以用 date +%w做后缀,远程一个月可以用date +%d作为后缀 [脚本] #!/bin/bash…
[题目要求] 写个shell,看看你的Linux系统中是否有自定义的用户(普通用户),如有有的话统计个数 [核心要点] CentOS6,uid>=500 CentOS7,uid>=1000 [脚本] #!/bin/bash v=`cat /etc/redhat-release | awk -F'release' '{print $2}' | cut -d'.' -f1 | awk -F' ' '{pr }'` user() { -eq ]; then echo "no users&q…
[题目要求] 用shell打印下面这句话中字母数小于6的单词. Bash also interprets a number of multi-character options. [核心要点] for循环遍历所有单词 wc -L获取字符串长度 [脚本] #!/bin/bash c="Bash also interprets a number of multi-character options." n=`echo $c|awk -F '[ +-.]' '{print NF}'` ;i&…
[题目要求] 写一个支持选项的增加或删除用户的shell脚本 #!/bin/bash ]; then echo "Wrong, use bash $0 --add username, or bash $0 --del username or bash $0 -- help" exit fi exist_user() { >/dev/null >/dev/null then echo $i not exist fi } in --add) ]; then echo "…