sh脚本中显示当前时间
㈠ shell脚本计算时间
TIME_INPUT=`date -d "00:00" +%s`
通过时间戳来计算
nowtime=`date +%s`
shijiancha=`expr $nowtime - $TIME_INPUT`
if [ $shijiancha -gt 180 ];then
echo 3分钟前
else
if [ $shijiancha -lt -180 ];then
echo 3分钟后
fi
fi
㈡ 如何正确在linux Shell脚本中定义一个时间变量
1、创建脚本 test.sh,并入截图内容。
㈢ Linux下用shell获取指定文件的最后修改时间并与系统时间比对,如果相差时间超过3分钟则执行另一个脚本
使用date命令加上合适的时间格式化字符串(+%s),会显示当前时间(或-d参数指定的时间)与1970-01-01 00:00:00相差的秒数(详细可以参考date的man手册)
所以基本想法就是使用date命令分别获取当前时间与文件修改时间的秒数,然后看这2个秒数之间是否有相差180秒以上。
获取当前时间比较简单,直接date +%s就ok了
下面看看如何获取文件时间
使用stat 命令后面跟一个文件名可以获取文件的状态,包括文件修改时间。其中文件修改时间会单独一行显示,格式如下:Modify: 2013-02-21 17:58:05.404876407 +0800 (具体的精度可能系统不同略微有些差别,但大致格式是这样)
所以我们可以stat myfilename | grep Modify来获取文件的修改时间的信息,然后通过awk分别获取时间的日期和时间段
stat myfilename | grep Modify | awk '{print $2}' #这句获取了日期段,即上面例子里面的2013-02-21
stat myfilename | grep Modify | awk '{split($3,var,".");print var[1]}' #这句获取了时间段,即上面例子里面的17:58:05,具体关于awk的使用可以参考awk的使用手册
那么现在可以获取文件修改时间与1970-01-01 00:00:00相差的描述了,就是date -d "$file_date $file_time" +%s
那么这个时间与当前时间想减的结果与180相比就可以知道是否满足条件了,满足条件的话就可以执行相应的命令。
参考代码如下:
current_datetime=`date +%s`
filedate=`stat tt.txt | grep Modify | awk '{print $2}'`
filetime=`stat tt.txt | grep Modify | awk '{split($3,var,".");print var[1]}'`
file_datetime=`date -d "$filedate $filetime" +%s
timedelta=`expr $current_datetime - $file_datetime`
if [ "$timedelta" -gt "180" ];then
echo "match condition"
fi
㈣ shell脚本关于时间的判断
这个用linux的date命令就可以实现,主要是判断当前的小时是否位于0晨就可以。代码大致如下:
#!/bin/sh
currentHour=$(date +%H)
if [ $currentHour -eq 00 ]
then
currentTime=$(date +%s);
tmp=$(($currentTime-3600));
echo $(date -d "@$tmp" +%Y-%m-%d);
else
echo $(date +%Y-%m-%d);
fi
㈤ shell 脚本执行日志怎么才能带有时间戳
封装一个写log的shell lib,定义如下函数
#!/bin/sh
function write_log()
{
local logType=$1
local logMsg=$2
local logName=$3
echo "$logType : `date +%Y-%m-%d\ %T` : $logMsg" >> $logName
}
# 按照如下方法调用,可以看到log.txt里面打印了日期啦
write_log FATAL "something error" log.txt
㈥ 如何在centos中用bash编写shell脚本实现收集系统输出当前的时间
1,$HOME/getdate.sh,内容如下: #!/bin/bash DATE=/bin/date $DATE +"%F %T" >>$HOME/date_log.log 2. $HOME/call_gd.sh,内容如下 #!/bin/bash SH=/bin/sh ${SH} $HOME/getdate.sh