[转] Linux系统时区时间修改

我 们知道,计算机系统有两个时钟,一个是硬件时钟,一个是系统时钟,硬件时钟的工作原理就是电脑在开机运行的时候会给主板上的纽扣电池充电,关机后这块电池 还为存放系统参数的CMOS、RAM供电,以保存其中的系统参数。系统参数包括硬盘类型、软盘驱动器、显示卡、键盘、鼠标、显示器等,反映了计算机设备的 情况,还包括日期、时间等等,这有点扯远了。

一、查看当前时区:

 

 

[root@lwy ~]# cat /etc/sysconfig/clock

ZONE="Asia/Shanghai"

UTC=false

ARC=false

 

 

其中,ZONE="Asia/Shanghai" 中的内容是/usr/share/zoneinfo/下的文件:

 

[root@lwy ~]# ls /usr/share/zoneinfo/

Africa      Chile    Factory    Iceland      Mexico    posix       Universal

America     CST6CDT  GB         Indian       Mideast   posixrules  US

Antarctica  Cuba     GB-Eire    Iran         MST       PRC         UTC

Arctic      EET      GMT        iso3166.tab  MST7MDT   PST8PDT     WET

Asia        Egypt    GMT0       Israel       Navajo    right       W-SU

Atlantic    Eire     GMT-0      Jamaica      NZ        ROC         zone.tab

Australia   EST      GMT+0      Japan        NZ-CHAT   ROK         Zulu

Brazil      EST5EDT  Greenwich  Kwajalein    Pacific   Singapore

Canada      Etc      Hongkong   Libya        Poland    Turkey

CET         Europe   HST        MET          Portugal  UCT

 

 

UTC=false 硬件时钟是否为UTC或者说GMT时钟(UTC和GMT的故事见另一日记--《UTC时间和GMT时间》)。

ARC=false 如果是Alpha硬件体系的机器,则设置为true。

 

二、Linux加载时区和时间:

Linux 启动时,其中的一个脚本(/etc/rc.d/rc.sysinit)会运行 /sbin/hwclock 程序,把当前的硬件时钟复制为系统时间。脚本文件会读取时区配置文件 /etc/sysconfig/clock ,因此我们不需要修改脚本,直接修改这个配置文件就可以了,根据需要把其中的 UTC 行,设置为 true 或者 false。

三、查看、修改系统时区:

查看当前时区
                date -R

1、tzselect 可以修改/etc/sysconfig/clock这个配置文件,根据命令的提示进行修改就好了。


   但是在实际工作中,发现这种方式是不能够使得服务器上的时间设置马上生效的,而且使用ntpdate去同步时间服务器也不能够更改时间。即使你使用了 date命令手工设置了时间的话,如果使用ntpdate去进行时间同步的话,时间又会被改动到原来的错误时区的时间。而生产的机器往往是非常重要的,不 能够进行重启等操作。

 

2、如果要修改时区并且马上生效,可以复制相应的时区文件,替换系统默认时区:

# cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime  

对于中国服务器则执行:  

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

其实加个软连接也可以,但是通常都是复制。软连接方法如下:

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

然后,将当前时间写入BIOS永久生效(避免重启后失效)

# hwclock

四、修改系统时间

date -s
比如将系统时间设定成1996年6月10日的命令如下。
#date -s 06/10/96
将系统时间设定成下午1点12分0秒的命令如下。
#date -s 13:12:00

#clock -w
这个命令强制把系统时间写入CMOS

 

From: http://lmh860628.blog.163.com/blog/static/193976102201371595635836/

猜你喜欢

转载自107x.iteye.com/blog/2094211
今日推荐