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

Posted Linux就该这么学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了案例二: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 9110 9110% /dev

  tmpfs 9200 9200% /dev/shm

  tmpfs 9203369201% /run

  tmpfs 9200 9200% /sys/fs/cgroup

  tmpfs 1840 1840% /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
  1. 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
  1. '>'为正确重定向,我们运行一条命令时,有正确的输出信息也有错误的输出信息,>会把正确的输出信息写入到指定文件里,与其对应的还有一个错误重定向符号 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: 没有那个文件或目录\


让您学习到的每一节课都有所收获

《Linux就该这么学》是一本由资深运维专家刘遄老师及国内多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。荣获双11、双12购物狂欢节IT品类书籍销量冠军,2017年、2018年国内读者增速最快的技术书籍,您可以在京东、当当、亚马逊及天猫搜索书名后购买,亦可加刘遄老师微信交流学习(手指按住下图3秒钟即可自动扫描)~


刘遄老师QQ:5604215

☀ Linux技术交流群:5604922新群,火热加群中……

☀ 官方站点:www.linuxprobe.com

☀ 书籍在线学习(电脑在线阅读效果更佳

http://www.linuxprobe.com/chapter-00.html