时间在任何系统里都是最基本的部分,必不可少。本文介绍CentOS系统中与时间的相关命令。 基本概念
Linux系统启动时,首先从硬件时钟读取当前时间来初始化系统时间计数,之后就会根据定时器中断来递增它,不再依赖于硬件时钟。
硬件时钟里一般不会记录时区的信息,而往往只是当地时间。系统时间就必须要把时区的概念考虑进去,否则不同时区的计算机进行信息交流的时候,时间不能统一。这对于很多软件系统是致命的,如严重依赖于时间标签的版本管理系统。Linux内核中保存了当前时区的信息,Linux的文件系统就依赖于这个时区信息。 常用命令
[root@centos192 smstong]# hwclock -r # 读取硬件时钟 2015年06月03日 星期三 12时30分46秒 -0.891230 seconds [root@centos192 smstong]# hwclock --set --date="06/03/2015 16:45:05" # 设置硬件时钟
[root@centos192 smstong]# date # 查看当前系统时间 2015年 06月 03日 星期三 19:37:55 CST [root@centos192 smstong]# date -s 10:00:00 # 设置系统时间 2015年 06月 03日 星期三 10:00:00 CST
[root@centos192 smstong]# hwclock --hctosys # 用硬件时钟设置系统时间 [root@centos192 smstong]# hwclock --systohc # 用系统时间设置硬件时钟
[root@centos192 smstong]# date -R # 查看带时区信息的当前系统时间 Wed, 03 Jun 2015 19:45:37 +0800 [root@centos192 smstong]# export TZ='America/Havana' # 设置时区为古巴时间 [root@centos192 smstong]# date -R # 可以看到时区成了-0400 Wed, 03 Jun 2015 07:49:49 -0400 要想永久性的设置时区信息,则可以在 /etc/profile配置文件里增加 export TZ=’America/Havana’。这样机器重启后也会自动设置时区。 注意Linux内核和应用程序使用的时区并不一定相同,虽然应该相同。应用程序首先靠TZ环境变量来确定时区,如果TZ没有设置,则使用内核的设置。内核是根据/etc/sysconfig/clock文件来设置时区的。* (这段是我的猜测,请大侠指正) *
[root@centos192 smstong]# ntpdate -u s1a.time.edu.cn # 通过NTP校时修正系统时间 3 Jun 19:56:42 ntpdate[21550]: adjust time server 202.112.10.60 offset 0.000163 sec [root@centos192 smstong]# hwclock -w # 然后根据矫正过的系统时间设置硬件时钟
如果是长时间运行的服务器,则需要把校时命令写成脚本,通过crond自动定时执行之。 |