CentOS 6 时间、时区、设置修改及时间同步

时区

显示时区

date --help获取帮助

[root@bigdata-training ~]# date -R
Sat, 06 Jul 2019 22:19:27 +0800


[root@bigdata-training ~]# date +%z
+0800

主要就是后面的+0800,东八区

时区的信息存在/usr/share/zoneinfo/下面,本机的时区信息存在/etc/localtime,

[root@bigdata-training ~]# ls /usr/share/zoneinfo/Asia/
Aden    Ashgabat   Beirut      Chongqing  Dili      Ho_Chi_Minh  Jayapura   Kathmandu     Kuching   Manila        Oral        Rangoon    Shanghai       Tehran         Ulaanbaatar  Yakutsk
Almaty  Ashkhabad  Bishkek     Chungking  Dubai     Hong_Kong    Jerusalem  Katmandu      Kuwait    Muscat        Phnom_Penh  Riyadh     Singapore      Tel_Aviv       Ulan_Bator   Yekaterinburg
Amman   Baghdad    Brunei      Colombo    Dushanbe  Hovd         Kabul      Khandyga      Macao     Nicosia       Pontianak   Saigon     Srednekolymsk  Thimbu         Urumqi       Yerevan
Anadyr  Bahrain    Calcutta    Dacca      Gaza      Irkutsk      Kamchatka  Kolkata       Macau     Novokuznetsk  Pyongyang   Sakhalin   Taipei         Thimphu        Ust-Nera
Aqtau   Baku       Chita       Damascus   Harbin    Istanbul     Karachi    Krasnoyarsk   Magadan   Novosibirsk   Qatar       Samarkand  Tashkent       Tokyo          Vientiane
Aqtobe  Bangkok    Choibalsan  Dhaka      Hebron    Jakarta      Kashgar    Kuala_Lumpur  Makassar  Omsk          Qyzylorda   Seoul      Tbilisi        Ujung_Pandang  Vladivostok

修改时区

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

时间
概念:Linux时间有两个
系统时间:也叫软件时间(sys), 1970年1月1日到当前时间的秒数

BOIS时间:也叫硬件时间(hc)

硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。
当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

显示时间
Linux hwclock命令用于显示与设定硬件时钟。
————————————————
版权声明:本文为CSDN博主「浮云6363」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lz6363/article/details/94909549

[root@bigdata-training ~]# date;hwclock -r
Sat Jul  6 22:23:15 CST 2019
Sat 06 Jul 2019 10:19:14 PM CST  -0.454161 seconds

设置时间

1、date -s

[root@bigdata-training ~]# date -s 20190705
Fri Jul  5 00:00:00 CST 2019
[root@bigdata-training ~]# 
[root@bigdata-training ~]# date -s 23:00:00
Fri Jul  5 23:00:00 CST 2019
[root@bigdata-training ~]# 
[root@bigdata-training ~]# date -R
Fri, 05 Jul 2019 23:00:09 +0800

没有网络的情况下可以用这个

2、ntpdate
ntpdate time.windows.com && hwclock -w
连网更新时间,如果成功,将系统时间,写入BOIS

hwclock -w或 hwclock –systohc

可以做到crontab里
先编写脚本cat ntpdate.sh

#!/bin/bash

#restart ntpdate and synchronization time
DATE_STR=`/bin/date '+%Y%m%d%H%M%S'`

#log
NTPDATE_SERVICE_LOG=/home/fuyun/logs/ntpdate-${DATE_STR}.log

#start ntpdate service
service ntpdate restart >>${NTPDATE_SERVICE_LOG} 2>&1

if [ $? -eq 0 ]; then #此处$?是接收上条命令是否成功,成功为0,失败为非0
  echo restart ntpdate service succeed!!! 1>>${NTPDATE_SERVICE_LOG}
  #synchronization time
  logs=`ntpdate time.windows.com && hwclock -w` # >>${NTPDATE_SERVICE_LOG} 2>&1
  echo ${logs} 1>>${NTPDATE_SERVICE_LOG}  

  if [ $? -eq 0 ]; then #此处$?是接收上条命令是否成功,成功为0,失败为非0
    echo  Synchronizing with time succeed!!! 1>>${NTPDATE_SERVICE_LOG}
  else 
    echo Synchronizing with time failed!!!1>>${NTPDATE_SERVICE_LOG}
  fi

else
  echo restart ntpdate service failed!!! 1>>${NTPDATE_SERVICE_LOG}
fi

再用root用户编辑定时任务
crontab -e
在定时任务中添加以下内容
00 00 * * * sh /home/fuyun/ntpdate.sh
表示每天00:00定时执行脚本

3、启动ntpd服务,开启后2就不能用了

先用ntpdate更新一下,确保时间不至于差别太大

rpm -qa | grep ntp #查询一下可安装了

chkconfig --list | grep ntp #看下服务情况

chkconfig ntpd on

service ntpd start 或/etc/init.d/ntpd start

Copyright © 2014 - 2021 創雲信息科技(國際)電信集團 All Rights Reserved