案例二:shell脚本获取当前日期和时间及磁盘使情况
习题分析
本题有两个核心知识点:
1. 如何自动表示当天的日期 2. 磁盘使用情况
# 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: 没有那个文件或目录
案例二:shell脚本获取当前日期和时间及磁盘使情况的更多相关文章
- shell脚本:统计分析 /home/ 目录用户磁盘使用情况
一.统计单台机器 /home/ 目录下磁盘空间使用 top3 的用户 common.sh 脚本用于统计 /home/* 目录下存储空间 top3 的用户. du -sb /home/* |sort - ...
- 在 shell 脚本获取 ip、数字转换等网络操作
在 shell 脚本获取 ip.数字转换等网络操作 ip 和数字的相互转换 ip转换为数字 :: function ip2num() { local ip=$1 local a=$(echo $ip ...
- PHP获取当前日期和时间的方法
PHP获取当前日期和时间的方法 来源:wikiHow 时间:2014-12-04 14:49:45 阅读数:7240 分享到:0 [导读] PHP是用来创建网络中动态内容的常见语言,因此PHP ...
- shell脚本获取mysql插入数据自增长id的值
shell脚本获取mysql插入数据自增长id的值 在shell脚本中我们可以通过last_insert_id()获取id值,但是,需要注意的是,该函数必须在执行插入操作的sql语句之后,立即调用,否 ...
- 关于使用java执行shell脚本获取centos的硬盘序列号和mac地址
1.获取硬盘序列号: 新建shell脚本文件: identifier.sh, 内容为: diskdata=`fdisk -l` diskleft=${diskdata#*"identifie ...
- 014-交互式Shell和shell脚本获取进程 pid
Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程 1.交互式 Bash Shell 获取进程 pid 在已知进程名(name)的前提下,交互式 ...
- java如何获取当前日期和时间
System.currentTimeMillis() 获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响,得到的结果是时间戳格式的.例如: 15431 ...
- JS小知识--获取当前日期的时间和上周五时间
获取当前日期的时间和上周五时间 var today=new Date();//获取当前时间var weekday=today.getDay();//获取星期几 var monday=new Da ...
- 通过shell脚本获取日期,并赋给变量
通过shell获取当前8位日期,并赋给变量,并且使用变量作为文件名,建立文件夹 代码如下: ls_date=`date +%Y%m%d` mkdir ${ls_date} 上面两句代码虽然简单 但是在 ...
随机推荐
- 一步一步超级详细的zabbix安装教程
安装说明: 1. 虚拟机上安装两台全新Linux: zabbix-server:192.168.255.128 zabbix-agent :192.168.255.129 2. zabbix-serv ...
- 『无为则无心』Python函数 — 35、Python中的闭包
目录 1.闭包的概念 2.实现一个闭包 3.在闭包中外函数把临时变量绑定给内函数 4.闭包中内函数修改外函数局部变量 5.注意: 6.练习: 1.闭包的概念 请大家跟我理解一下,如果在一个函数的内部定 ...
- Ventoy的UEFI模式安全启动操作说明
Ventoy 1.0.07 版本开始支持 Secure Boot (安全启动),但是这个方案不是非常的完美,会导致在一些机器上不管BIOS里安全启动是否关闭都不能正常工作.因此从 1.0.09 版本开 ...
- C++函数调用过程解析
编译环境:Windows 10 + VS2015. 0.引言 函数调用的过程实际上也就是一个中断的过程,本文演示和深入分析参数入栈.函数跳转.保护现场.恢复现场等函数调用过程. 首先对三个常用的寄存器 ...
- [论文][半监督语义分割]Adversarial Learning for Semi-Supervised Semantic Segmentation
Adversarial Learning for Semi-Supervised Semantic Segmentation 论文原文 摘要 创新点:我们提出了一种使用对抗网络进行半监督语义分割的方法 ...
- IDE添加自定义注释
前言:最近在找IDE自定义模板注释时,十分不愉快,找了很久,才找到适合自己的,故记录一下 一.IDE自定义类注释: 1:打开自定义模板界面,并添加自定义内容: 2:新建类,效果如下 备注: ...
- foreEach 跳出循环
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; const _ = require('lodash'); let outArr = []; try { arr. ...
- 【微服务】- SpringCloud中Config、Bus和Stream
文章目录 SpringCloud中Config 1.Config的简介 官网 分布式系统面临的问题 config是什么 如何使用 能做什么 与git的配合使用 2.Config服务端的配置和测试 准备 ...
- 超详细的node/v8/js垃圾回收机制
前言 垃圾回收器是一把十足的双刃剑.其好处是可以大幅简化程序的内存管理代码,因为内存管理无需程序员来操作,由此也减少了(但没有根除)长时间运转的程序的内存泄漏.对于某些程序员来说,它甚至能够提升代码的 ...
- 类扩展(Class Extension)
类扩展(Class Extension) 也有人称为匿名分类 - 作用 - 能为某个类增加额外的属性.成员变量.方法声明 - 一般将类扩展写到.m文件中 - 一般将一些私有的属 ...