同步时间

系统时间与硬件时间

一台计算机有两个时钟,一是硬件时间时钟(RTC,Real Time Clock,又实时时钟),二是系统时钟(System Clock);

1 概念

硬件时钟是嵌在主板上的特殊电路,平时关机后还可计算时间;

系统时钟是操作系统的kernel用以计算时间的时钟;

2 工作原理

在Linux系统下,系统时间在开机时会和硬件时间同步,随后各自独立运行;

默认情况下,系统时间和硬件时间不会自动同步;

硬件时间运行依靠BIOS电池,系统时间运行依靠CPU tick,这也是系统时间长时间运行会产生时间偏差的原因;

同步系统时间和硬件时间

查看系统时间: date , 查看硬件时间 clock 或者 hwclock
在这里插入图片描述
设置系统时间
date -s “20170522 14:29:25” #或
date -s “2017-05-22 14:29:25” # 或
date -s “14:29:25 20170522” # 或
date -s “14:29:25 2017-05-22” # 或

设置硬件时间
hwclock --set --date=“2017-05-22 14:29:25”; # 或
clock --set --date “2017-05-22 14:29:25”;

** 系统时间同步为硬件时间 **

hwclock -s
或者
hwclock --systohc

** 硬件时间同步为系统时间 **

hwclock -w
或者
hwclock --hctosys

同步系统时间为网络时间

ntpdate -u  ntp.api.bz

我写了个脚本,定期同步系统时间硬件时间
/opt/syncTime.sh

#!/bin/bash
# chkconfig: 2345 90 80

ntpServer=(
ntp.api.bz
ntp1.aliyun.com
)


serverNum=${#ntpServer[*]}

for ((i=0;i<=$serverNum;i++));do
   echo "同步服务器: ${ntpServer[$i]} 中..."
   /usr/sbin/ntpdate -u ${ntpServer[$i]} >> syncTime.log
   if [ $? -eq 0 ];then
        echo  "同步服务器: ${ntpServer[$i]} 成功";
        break
   else
        echo  "同步服务器: ${ntpServer[$i]} 失败"
   fi
done


#将系统时间同步到硬件时间
hwclock -w

再放到cron定时任务里

# crontab -e
*/2 * * * * /opt/syncTime.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值