实战五中我们已经学习了 怎么进行日志文件的备份保存。
linux实战(五)----压缩备份文件并删除原文件----实例解析
但是我们保存的日志文件为了防止命名冲突和方便查找,其实最好加上备份的日期。
这次我们来学习在shell脚本中怎么获取时间。
并结合实战五的例子来使用。
实战五checkSpace.sh代码如下:
#!/bin/bash function GetDiskSpc { if [ $# -ne 1 ] then return 1 fi Folder="$1$" DiskSpace=`df -k |grep $Folder |awk '{print $5}' |awk -F% '{print $1}'` echo $DiskSpace } function CheckDiskSpc { DiskSpace=`GetDiskSpc $1` echo "The system $Folder disk space is $DiskSpace%" echo "The system $Folder disk space is $DiskSpace%" >> space.txt if [ $DiskSpace -gt 90 ] then { echo "The usage of system disk($Folder) is larger than 90%" echo "The usage of system disk($Folder) is larger than 90%" >> space.txt } else { echo "The usage of system disk($Folder) is normal" echo "The usage of system disk($Folder) is normal" >> space.txt } fi } CheckDiskSpc /boot tar cvf - /data/shell/space.txt > /data/shell/space.tar rm space.txt
-ITIMESPEC, –iso-8601[=TIMESPEC] 以ISO8601 格式显示日期/时间。
TIMESPEC为”date”(只显示日期)、”hours”、”minutes”、”senconds”(显示时间精度)之一,默认为”date”。
-r, –reference=FILE 显示文件的最后修改时间
-R, –rfc-2822 以RFC-2822兼容日期格式显示时间
-s, –set=STRING 设置时间为STRING
-u, –utc, –universal 显示或设定为Coordinated Universal Time时间格式
`date +%Y%m%d`
或
`date +%F`
或
$(date +%y%m%d)
`date -d yesterday +%Y%m%d`
也可以写成
`date -d -1day +%Y%m%d`
`date -d -2day +%Y%m%d`
date "+%s"
#从1970年1月1日00:00:00到当前的秒数
$ date -d ’2 weeks’关于使用该命令,还有其他一些重要的方法:
date -d | --date= ‘yyyy-mm-dd hh:mi:ss’ +%s
(日期格式为yyyy-mm-dd hh:mi:ss)
如:date --date="2010-12-03" "+%s" #--date后面接需要转换的日期
stamp1=`date --date=$date1 +%s`
stamp2=`date --date=$date2 +%s`
stamp=`expr $stamp2 - $stamp1`
echo $stamp
if [ $stamp -gt 0 ] #大于0
修改后脚本为:
#!/bin/bash function GetDiskSpc { if [ $# -ne 1 ] then return 1 fi Folder="$1$" DiskSpace=`df -k |grep $Folder |awk '{print $5}' |awk -F% '{print $1}'` echo $DiskSpace } function CheckDiskSpc { DiskSpace=`GetDiskSpc $1` echo "The system $Folder disk space is $DiskSpace%" echo "The system $Folder disk space is $DiskSpace%" >> space.txt if [ $DiskSpace -gt 90 ] then { echo "The usage of system disk($Folder) is larger than 90%" echo "The usage of system disk($Folder) is larger than 90%" >> space.txt } else { echo "The usage of system disk($Folder) is normal" echo "The usage of system disk($Folder) is normal" >> space.txt } fi } CheckDiskSpc /boot time=`date +%F` tar cvf - /data/shell/space.txt > /data/shell/${time}space.tar rm space.txt