码迷,mamicode.com
首页 > Windows程序 > 详细

Linux Windows 定时修改系统时间

时间:2014-08-01 13:56:22      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:shell   bash   linux   

#/bin/bash
#
beforTime=02:00
afterTime=08:00

beforTime=$(echo $beforTime | awk -F : {‘print $1‘})
afterTime=$(echo $afterTime | awk -F : {‘print $1‘})
Flag=0

while true
do
    sleep 2s
    echo "date: $(date +"%Y-%m-%d %H:%M:%S")"
    if [ $(date +%H) -eq $beforTime ]; then
        CurDate=$(date +%d)
        ChangeDate=$(expr $CurDate - 1)
        date -s ‘$(date +"%Y-%m-$ChangeDate %H:%M:%S")‘
        if [ $? -eq 0 ]; then
            echo "Changed date: $(date +"%Y-%m-$ChangeDate %H:%M:%S")"
            Flag=1
            break
        fi
     fi
done


if [ $Flag -eq 1 ];then
    while true
    do
    sleep 2s
    echo "date: $(date +"%Y-%m-%d %H:%M:%S")"
    if [ $(date +%H) -eq $afterTime ]; then
        CurDate=$(date +%d)
        ChangeDate=$(expr $CurDate + 1)
        date -s ‘$(date +"%Y-%m-$ChangeDate %H:%M:%S")‘
        if [ $? -eq 0 ]; then
            echo "Changed date: $(date +"%Y-%m-$ChangeDate %H:%M:%S")"
            Flag=0
            break
        fi
     fi
   done
fi
@echo off
@set StartDate=05
@set ChangeDate=04
@set ChangeTime=18:59
@set endTime=19:00
@echo 开始任务:05号1点更改时间

@set ErrNum=0
:ProcessDate
@if %ErrNum% EQU 1 (ping /n 5 127.0.0.1 > nul)
@for /f "usebackq tokens=1,2,3 delims=-/ " %%i in (`date /t`) do (
  set Year=%%i
  set Mon=%%j
  set TodayDate=%%k
  echo Real_Date: %%i-%%j-%%k  %TodayDate%
)
@if %TodayDate% NEQ %StartDate% (
  set ErrNum=1
  goto :ProcessDate 
)
:ProcessTime
@if %TodayDate% EQU %StartDate% (
   for /f "usebackq tokens=1,2 delims=-/ " %%a in (`time /t`) do (
     if "%%a" NEQ "%ChangeTime%" goto :ProcessTime
     if "%%a" == "%ChangeTime%" call :ChangeCurDate  
 :ProcessTime_2
 for /f "usebackq tokens=1,2 delims=-/ " %%a in (`time /t`) do (
       if "%%a" == "%endTime%" (
     echo %Year%-%Mon%-%TodayDate%
         date %Year%-%Mon%-%TodayDate%
         goto :eof
       ) else (
         goto :ProcessTime_2
       )
     )     
   )
)
:ChangeCurDate
echo Change_Date: %Year%-%Mon%-%ChangeDate%
@date %Year%-%Mon%-%ChangeDate% 
@goto :eof

 

本文出自 “专注于Oracle性能调优” 博客,谢绝转载!

Linux Windows 定时修改系统时间,布布扣,bubuko.com

Linux Windows 定时修改系统时间

标签:shell   bash   linux   

原文地址:http://5073392.blog.51cto.com/5063392/1533596

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!