编写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: 没有那个文件或目录
本文由 帝一博客 原创发布。用户在本站发布的原创内容(包括但不仅限于回答、文章和评论),著作权均归用户本人所有。独家文章转载,请联系邮箱:17762131@qq.com。获得授权后,须注明本文地址: https://bubukou.com/mljb/1119.html
-
bat脚本批处理实现手动输入变量 参数
2019-09-18 13:06
-
企业Shell实战-MySQL分库分表备份脚本
2019-07-20 08:00
-
shell脚本统计所有人有总钱数awk脚本
2019-07-18 07:53
-
shell脚本硬件信息获取json数值输出
2019-07-17 07:54
-
Shell处理日志-保留30天,超过14天的压缩为gz格式
2019-07-17 07:54
-
Shell脚本简单入门教程
2019-07-17 07:53
-
mysql数据库批量插入数据shell脚本实现
2019-07-15 07:48
-
开发Shell脚本解决DOS安全Linux服务器生产案例
2019-07-15 07:48
-
老鸟教你如何监控网站URL是否正常
2019-07-15 07:47
-
Linux Shell系列教程Shell文件包含
2019-07-15 07:46
网友留言评论