准备开一个新坑,每天更新一道shell练习。因为shell脚本属于那种不练习就会生疏,甚至忘记的技能,所以,为了对抗遗忘阻力,我只能不断加强练习了。
【题目】
请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,例如今天生成的文件为2018-04-08.log,并且把磁盘的使用情况写到这个文件中,不用考虑cron,仅仅写脚本即可。
【分析】
第一点,要明白 linux 命令 date 的用法,打印“xxxx-xx-xx”这样的时间格式用date +%F 或者 date +%Y-%m-%d;
第二点,检查磁盘使用情况的命令是:df -h 。
有了上面两点分析,写脚本就很容易了。
#!/bin/bash
name=`date %F`
logfile=$name.log
df -h > $logfile
【脚本分析】
将当天的日期赋值给变量name,然后定义日志文件名logfile。
“>”这个符号在shell 脚本中有输出重定向的功能。它比较特殊,可以将符号左边的输出内容,写入到该符号的右边的文件中。
shell 中反引号可以表示一个命令的结果,通常给变量赋值,例如下面的命令:
# n=`wc -l /etc/passwd | awk ‘{print $1}‘`
# echo $n
29
date 还有诸多用法,例如:
date +%H # 小时
21
date +%M # 分钟
48
date +%S # 秒钟
48
date +%T # 时间
21:49:04
date %w # 星期
0 # 从0开始,表示星期日
date -d "-1 day" +%F # 表示1天之前,-d 用来进行算术运算
2018-04-07
date -d "-1 hour" ‘+%T‘ # 表示 1 小时以前
20:50:01
[root@cenvm71 work]# ls /etc/nofile
ls: cannot access /etc/nofile: No such file or directory
上面的这条就是错误的提示信息。
ls /etc/passwd /etc/nofile > /tmp/log 2> /tmp/errorlog
[root@cenvm71 work]# cat /tmp/log
/etc/passwd
[root@cenvm71 work]# cat /tmp/errorlog
ls: cannot access /etc/nofile: No such file or directory
今天的脚本,复习了反引号的用法,date命令和df 这个查看磁盘使用情况的命令。还对这几个命令进行了扩展学习。
原文地址:http://blog.51cto.com/hellocjq/2095837