linux写硬盘时间,编写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
linuxshell脚本怎么运行
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: 没有那个⽂件或⽬录
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论