• 案例二:shell脚本获取当前日期和时间及磁盘使情况


    习题分析

    本题有两个核心知识点:

      1. 如何自动表示当天的日期
    
      2. 磁盘使用情况
    

    打印日期的命令为 date,示例命令如下:

      # date
    
      2017 年 12 月 20 日 星期三 16:26:55 CST
    

    而题目中要求的格式为应该是:2017-12-20,date 命令是有这样的功能的,示例命令如下:

      # date +%Y-%m-%d
    
      2017-12-20
    
      或者:
    
      # date +%F
    
      2017-12-20
    

    磁盘使用情况,我们用命令 df -h 实现,示例命令如下:

      # df -h
    
      文件系统 容量 已用 可用 已用% 挂载点
    
      /dev/vda1 99G 1.8G 92G 2% /
    
      devtmpfs 911M 0 911M 0% /dev
    
      tmpfs 920M 0 920M 0% /dev/shm
    
      tmpfs 920M 336K 920M 1% /run
    
      tmpfs 920M 0 920M 0% /sys/fs/cgroup
    
      tmpfs 184M 0 184M 0% /run/user/0
    
    习题答案

    有了上面的分析之后,我们最终得到本题答案:

      #! /bin/bash
    
      d=`date +%F`
    
      logfile=$d.log
    
      df -h > $logfile
     
    答案解析

    把当天日期赋值给变量 d,从而定义每日的日志文件名,最终把磁盘使用情况的结果直接输入到该日志里。这里的>,比较特殊它可以把该符号左边的结果写入到该符号右边的文件里。

    扩展知识点

    1. shell 中反引号可以表示一个命令的结果,通常给变量赋值,示例命令如下:

      # n=`wc -l /etc/passwd|awk '{print $1}'`
    
      # echo $n
    
      23
    

    2. date 命令还有诸多用法,示例如下:

      # date +%H ##小时
    
      16
    
      # date +%M ##分钟
    
      38
    
      # date +%S ##秒
    
      55
    
      # date +%T ##时间
    
      16:39:31
    
      # date +%w ##星期
    
      3
    
      # date -d "-1 day" +%F ##一天以前
    
      2017-12-19
    

    3. >为正确重定向,我们运行一条命令时,有正确的输出信息也有错误的输出信息,>会把正确的输出信息写入到指定文件里,与其对应的还有一个错误重定向符号 2>,顾名思义它会把错误信息写入到指定文件里。示例如下:

      # ls /etc/passwd /etc/nofile ##其中/etc/nofile 是不存在的,所以会报错
    
      ls: 无法访问/etc/nofile: 没有那个文件或目录
    
      /etc/passwd
    
      # ls /etc/passwd /etc/nofile > /tmp/log 2>/tmp/error
    
      # cat /tmp/log
    
      /etc/passwd
    
      # cat /tmp/error
    
      ls: 无法访问/etc/nofile: 没有那个文件或目录
  • 相关阅读:
    YAML资源清单
    Kubernetes 监控Prometheus 高可用: Thanos
    nginx中 location正则的理解
    proxysql cluster 的搭建
    Kubernetes 监控Prometheus
    Kubeadm搭建高可用(k8s)Kubernetes v1.24.0集群
    Elasticsearch 快照生命周期管理 (SLM) 实战指南
    重要参考文档MySQL 8.0.29 使用yum方式安装,开启navicat远程连接,搭建主从,读写分离(需要使用到ProxySQL,此文不讲述这个)
    前端安全配置xss预防针ContentSecurityPolicy(csp)配置详解
    nginx配置文件中location的三个匹配规则定义
  • 原文地址:https://www.cnblogs.com/linuxprobe-sarah/p/11183121.html
Copyright © 2020-2023  润新知