【图文教程】Shell100例

1. 每日一件

【题目要求】
请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件
例如生成的文件为2019-8-1.log并且把磁盘的使用情况写到这个文件中
不用考虑cron,仅仅写脚本即可

【核心要点】
date命令用法
df命令

#!/bin/bash
a=`date +%F`
b='df -h'
$b >/root/$a.log

【扩展需求1】
把这个文件放到固定的目录下去

#!/bin/bash
a=`date +%F`
b='df -h'
dir=/data/test/
if [ ! -d $dir ] && mkdir -p $dir/  # ! -d $dir 表示没有这个目录 并且 递归创建
   then
   $b > $dir/$a.log                 #把磁盘使用情况写进目录下的文件里
fi

【扩展需求2】
每天一个文件生成了5年,有2000多个文件,删除一年以前的

#!/bin/bash
a=`date +%F`
b='df -h'
dir=/data/test/
if [ ! -d $dir ] && mkdir -p $dir/
   then
   $b > $dir/$a.log
fi
   
   find $dir/ -mtime +365 |xargs rm

2. 根据日志统计访问量

【题目要求】
有日志1.log,部分内容如下

112.111.12.248[25/Sep/2013:16:08:31 +0800]formula-x.haotui.com “/seccode.php?update=0.5593110133088248200″http://formula-x.haotui.com/registerbbs.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)61.147.76.51[25/Sep/2013:16:08:31 +0800]xyzdiy.5d6d.com “/attachment.php?aid=4554&k=9ce51e2c376bc861603c7689d97c04a1&t=1334564048&fid=9&sid=zgohwYoLZq2qPW233ZIRsJiUeu22XqE8f49jY9mouRSoE71″ 301″http://xyzdiy.5d6d.com/thread-1435-1-23.html” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

统计出每个IP访问量有多少

核心要点
awk、sort、uniq命令

#!/bin/bash
awk '{print $1}' 1.log|sort |uniq -c |sort -n -r


分析:sort -n会按照数值而不是ASCII码来排序awk截取出来的IP。然后uniq命令用于报告或忽略文件中的重复行,加上-c选项后会在每列旁边显示该行重复出现的次数,在这一步就完成了统计。不过最后还得再让sort -n排序一下uniq -c统计出来的结果。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值