在linux6.1的环境希望写个shell怎么利用纪元秒然后减去86400秒求出昨天的秒数,然后换算成昨天的时间

在linux6.1的环境希望写个shell怎么利用纪元秒然后减去86400秒求出昨天的秒数,然后换算成昨天的时间,第1张

linux6.1不知道,有的date有--date参数,date --date "-1 day"就是前一天了

如果没有,这里有个段淘来的脚本,高手写的:

#date=YYYYMMDD

#Usage:command date days

str=$1

days=$2

yy=`echo $str|cut -c 1-4`

mm=`echo $str|cut -c 5-6`

dd=`echo $str|cut -c 7-8`

sav_dd=$days

days=`expr $days - $dd`

while [ $days -ge 0 ]

do

mm=`expr $mm - 1`

[ $mm -eq 0 ] &&mm=12 &&yy=`expr $yy - 1`

aaa=`cal $mm $yy`

bbb=`echo $aaa|awk '{print $NF}'`

days=`expr $days - $bbb`

done

dd=`expr 0 - $days`

expr $dd : "^.$" >/dev/null &&dd=0$dd

expr $mm : "^.$" >/dev/null &&mm=0$mm

echo $yy$mm$dd

转秒用%s

date +%s

date -d "2014-10-25 11:11:11" +%s

秒转标准时间:

date -d "1970-1-1 0:0:0 +1415101567 seconds"

date -d @1415101567

第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间。

while

true

do

command

sleep

XX

//间隔秒数

done

第二种方案,使用crontab。

以下方法将每20秒执行一次

crontab

-e

*

*

*

*

*

/bin/date

*

*

*

*

*

sleep

20

/bin/date

*

*

*

*

*

sleep

40

/bin/date

说明:需要将/bin/date更换成你的命令即可

这种做法去处理隔几十秒的定时任务还好,要是每1秒运行一次就得添加60条记录。。。如果每秒运行还是用方案一吧。

作者

shootyou


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7164748.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存