Shell脚本调快调慢系统时间(测试服务器时使用)

所属分类: 脚本专栏 / linux shell 阅读数: 914
收藏 0 赞 0 分享

公司近来服务器测试,需要经常调整系统时间,一两台还好半,稍微多点,就各种纠结了,笔者这几台都把笔者快弄疯了。老大一句话:全部调快3分钟...过会又全部调慢5分钟......然后咱们干活的,各种date 01021511....你懂的.于是为了解放生产力--代码如下:

复制代码 代码如下:

#!/bin/bash
# Author: MOS
# Script name: etime.sh
# Date & Time: 2013-01-02/21:47:58
# Version: 1.0.1
# Description:
#
#ntpserver
Tip='time.nist.gov'
 
# sync now system time, yes: $3="-u"  no: $3 is none.
if [[ "$3" == "-u" ]];then
    Tcmd='/usr/bin/rdate'
    [ ! -x $Tcmd ] && echo 'rdate not install!!' && exit 1
    "$Tcmd" -s "$Tip"
fi
 
# Modf
if [[ -n "$2" &&  "$1" == '-' || "$1" == '+' ]];then
    Func=$1
    [[ "$3" == "-s" ]] && Num=$2 || Num=$(($2*60))
    Ntime=`date +%s`
    Ltime=$(($Ntime$Func$Num))
    #Date=`/bin/date -d @"$Ltime" 2>/dev/null`
    #echo $Ltime
    Res=`date -d "1970-01-01 UTC $Ltime seconds" +%m%d%H%M%Y.%S`
    date
    date $Res
else
    echo 'First,input + or -;Second,input a number.'
    exit 2
fi

笔者已上传到附件,下载后,先给个执行权限,然后放到系统路径:

复制代码 代码如下:

[root@vpn1 scripts]# ls
casetup.sh  etime.sh
[root@vpn1 scripts]# chmod +x etime.sh
[root@vpn1 scripts]# mv etime.sh /bin/etime

用法格式如下:
复制代码 代码如下:

command [+|-] number [option]

笔者写的急,代码并非精炼,慎用:譬如,时间同步失败未作处理,number位置的严格限制等,用法示例如下:

1. 与时间服务器(time.nist.gov)同步 -u ,代码第九行,可根据您的位置,自行修改指定的时间服务器;如果您的rdate命令未安装至(/usr/bin/rdate),脚本会自动退出

复制代码 代码如下:

[root@vpn1 scripts]# date
Thu Jan  3 00:13:25 CST 2013
[root@vpn1 scripts]# etime + 0 -u
Wed Jan  2 16:13:29 CST 2013    #第一行输出为当前时间,使用-u参数时,时间更新顺序排在修改时间之前
Wed Jan  2 16:13:29 CST 2013    #第二行输出为修改为时间
[root@vpn1 scripts]# grep -n "time.nist.gov" /bin/etime
9:Tip='time.nist.gov'

2. 以当前系统时间为准,调快10分钟,默认以分钟为单位

复制代码 代码如下:

[root@vpn1 scripts]# etime + 10
Wed Jan  2 16:24:47 CST 2013
Wed Jan  2 16:34:47 CST 2013

3. 以当前系统时间为准,调慢20分钟,以秒为单位
复制代码 代码如下:

[root@vpn1 scripts]# etime - 600 -s
Wed Jan  2 16:36:27 CST 2013
Wed Jan  2 16:26:27 CST 2013

4. 以当前世界时间为准,调快50分钟,只能以分钟为单位
复制代码 代码如下:

[root@vpn1 scripts]# etime + 50 -u
Wed Jan  2 16:28:25 CST 2013
Wed Jan  2 17:18:25 CST 2013

另附俩个暂时可用的时间服务器:
复制代码 代码如下:

time.nist.gov
rdate.darkorb.net
time-b.nist.gov
ntp.openxid.com

写东西不容易,觉得还凑合的话,给个赞吧 (^-^) ..

更多精彩内容其他人还在看

linux whatis与whatis database 使用及查询方法(man使用实例)

在学习man命令时候,估计很多朋友都发现有man –f ,man –k 参数,可以查出很多数据。这些有的与man手册页相同,有些不是属于手册页的。它们数据怎么收集来的,并且whatis是怎么样工作的
收藏 0 赞 0 分享

linux dev 常见特殊设备介绍与应用(loop,null,zero,full,random)

这篇文章主要介绍了linux dev 常见特殊设备介绍与应用(loop,null,zero,full,random),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell命令快捷获得系统帮助(一)[man-pages定义规范]

linux命令帮助,一般有2种,命令自身代码里面带有使用帮助说明,这种一般很精简,太长了,程序自身的大小以及日常维护不方便。还有一种,就是带有帮助文件,类似windows的chm格式文件。下面我说下这2种怎么样查阅
收藏 0 赞 0 分享

linux shell实现随机数几种方法分享(date,random,uuid)

这篇文章主要介绍了linux shell实现随机数多种方法(date,random,uuid),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell 脚本实现tcp/upd协议通讯(重定向应用)

这篇文章主要介绍了linux shell 脚本实现tcp/upd协议通讯(重定向应用),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell数据重定向(输入重定向与输出重定向)详细分析

这篇文章主要介绍了linux shell数据重定向(输入重定向与输出重定向)详细分析,需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell 管道命令(pipe)使用及与shell重定向区别

这篇文章主要介绍了linux shell 管道命令(pipe)使用及与shell重定向区别,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux下使用tcpdump抓包的实现方法

tcpdump是Linux下面的一个开源的抓包工具,和Windows下面的wireshark抓包工具一样, 支持抓取指定网口、指定目的地址、指定源地址、指定端口、指定协议的数据。这篇文章主要介绍了Linux下使用tcpdump抓包的实现方法,需要的朋友可以参考下
收藏 0 赞 0 分享

零基础入门篇之Linux及Arm-Linux程序开发笔记

这篇文章主要介绍了零基础入门篇之Linux及Arm-Linux程序开发笔记,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux 中 CURL常用命令详解

这篇文章主要介绍了Linux 中 CURL常用命令详解,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多