Daily Archives: August 26, 2009

Linux/Solair对时间的处理

今天跟老铁在Solaris上调试一个小的脚本,最初的需求是希望用Shell来实现修改系统时间,随机提前N秒或者推迟N秒。这个在Linux中是非常容易做到的,因为Linux的date函数提供了一个–date选项,可以支持秒,分钟,小时,甚至天或者月的修改,用法如下。 1) 取之前的时间: date -d “a day ago” 取出前1天的系统时间 date -d “2 days ago” 取出前2天的系统时间 2) 取之后的时间: date -d “a day ” 取出1天后的系统时间 date -d “2 days” 取出2天后的系统时间 因为Linux下的date是基于GNU的,但是Solaris基于POSIX的时间函数并没有提供类似的功能,甚至连秒一下的单位都无法直接获得,而是要自己写函数获得微秒和毫秒。 那么如何利用Shell在Solaris中实现之前的需求呢。有这么几种方法来实现: 利用其它语言,比如Perl、Tcl或者python。还有就是利用时区,但是这个仅仅局限于小时的修改,精确到分钟或者秒就不行了: 1)取之前的时间:yesterday=`TZ=$TZ+3; date +%Y%m%d`; echo $yesterday 取出前1天的系统时间 yesterday=`TZ=$TZ+27; date +%Y%m%d`; … Continue reading

Posted in 脚本语言 | Tagged | 1 Comment