zoukankan      html  css  js  c++  java
  • shell脚本第一天

    今天开始学习编写shell脚本 100例,写博客的主要是为了记录这个过程,以便日后的回顾,今天开始第一个脚本:

    1、每天生成一个文件 
    描述:请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,例如今天生成的文件为)2017-07-05.log, 并且把磁盘的使用情况写到到这个文件中,(不用考虑cron,仅仅写脚本即可)

    #/bin/bash
    filename=`date +%F`.log
    filepath=/tmp/shell/log/
    
    [ -d $filepath ] || mkdir $filepath -p
    
    df -h > $filepath/$filename
    

    总结:这里主要是考察了两个命令:日期命令date与磁盘命令df -h;另外就是条件测试的用法。

    日期格式字符串列表

    %H 小时(以00-23来表示)。 
    %I 小时(以01-12来表示)。 
    %K 小时(以0-23来表示)。 
    %l 小时(以0-12来表示)。 
    %M 分钟(以00-59来表示)。 
    %P AM或PM。 
    %r 时间(含时分秒,小时以12小时AM/PM来表示)。 
    %s 总秒数。起算时间为1970-01-01 00:00:00 UTC。 
    %S 秒(以本地的惯用法来表示)。 
    %T 时间(含时分秒,小时以24小时制来表示)。 
    %X 时间(以本地的惯用法来表示)。 
    %Z 市区。 
    %a 星期的缩写。 
    %A 星期的完整名称。 
    %b 月份英文名的缩写。 
    %B 月份的完整英文名称。 
    %c 日期与时间。只输入date指令也会显示同样的结果。 
    %d 日期(以01-31来表示)。 
    %D 日期(含年月日)。 
    %j 该年中的第几天。 
    %m 月份(以01-12来表示)。 
    %U 该年中的周数。 
    %w 该周的天数,0代表周日,1代表周一,异词类推。 
    %x 日期(以本地的惯用法来表示)。 
    %y 年份(以00-99来表示)。 
    %Y 年份(以四位数来表示)。 
    %n 在显示时,插入新的一行。 
    %t 在显示时,插入tab。 
    MM 月份(必要) 
    DD 日期(必要) 
    hh 小时(必要) 
    mm 分钟(必要)
    ss 秒(选择性) 
    

    2、检测一个局域网里面活动的机器

    #/bin/bash
    
    logFile=./fail.log
    for i in `seq 3 253`
    do
     ip=192.168.1.$i
     ping $ip -c1 -W1 > /dev/null 2>&1
     if [ $? -ne 0 ]
     then
       echo $ip is down >> $logFile
       echo $ip finish
     fi
    done
    

    总结:这里主要是考察的是for循环,判断主机状态的用法以及后台并发运行脚本的用法。

    3. 题目要求有日志access.log

    1.统计出每个IP访问量有多少&输出到文件里面     

    cat access.log  | awk -F " " '{print $1}' | sort -n | uniq -c | sort -rn > ip.log

     2.通过给出时间找到对应这个群建里面的ip地址到文件里面

       sed-n '/开始时间/,/结束时间/p'日志文件
    sed -n '/04/Dec/2020/,/05/Dec/2020/p' access.log  | awk -F " " '{print $1}' | sort | uniq -c | sort -rn > ip.log

    4. 查看服务器是否宕机

    #/bin/bash
    ipaddr=www.baidu.com
    n=`ping -c5 $ipaddr | grep "packets" | awk -F '%' '{print $1}' | awk '{print $NF}'`
    
    if [ $n -ne 0 ]
    then
      echo serviec is down
    else
      echo service is start
    fi
  • 相关阅读:
    POJ2828
    Docker容器修改端口映射
    CentOS 7使用ISO镜像配置本地yum源
    Windows 自带的 Linux 子系统
    vue富文本编辑器插件vue-quill-editor使用
    修改docker容器存放位置
    Linux 硬盘相关操作
    centos7基础相关
    ubuntu-k8s搭建
    redhat 6.6 离线docker
  • 原文地址:https://www.cnblogs.com/zh718594493/p/14699288.html
Copyright © 2011-2022 走看看