Linux时区

Linux时区相关
1. 查看当前时区
# vi /etc/sysconfig/clock
# date -u
# date -R
2. 修改设置时区
 方法(1) 
  tzselect 
 方法(2) 仅限于RedHat Linux 和 CentOS 
 timeconfig 
 方法(3) 适用于Debian 
 dpkg-reconfigure tzdata
3. 复制相应的时区文件,替换系统默认时区
  # ln -sf /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
  对于中国服务器则执行:
  # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4. 将当前时间写入BIOS永久生效(避免重启后失效)
  # hwclock / clock -w
  读取BIOS时间: clock -r
注:
TZ变量的值会override /etc/localtime. 也就是说当TZ变量没有定义的时候系统才使用/etc/localtime来确定time zone. 所以你想永久修改time zone的话那么可以把TZ变量的设置写入/etc/profile里
参考1:
鳥哥的 Linux 私房菜 NTP 時間伺服器
http://linux.vbird.org/linux_server/0440ntp.php

参考 2:
Linux 每次启动时钟日期就多了 8 小时 
计算机系统有两个时钟,一个是 BIOS,或者CMOS,或者说“硬件时钟”,还有一个就是“系统(操作系统)时钟”, 
如果这两个时钟的设置上有问题,或者Linux 的时钟配置文件不正确的话,就会产生系统时钟差 8 小时的问题。

让我们先查看 /etc/sysconfig/clock 的内容:
[root@www /root]# cat /etc/sysconfig/clock 
ZONE=Asia/Shanghai  ---> /usr/share/zoneinfo 下面的文件。 
UTC=false              ---> 硬件时钟是否为 UTC 或者说 GMT 时钟。 
ARC=false              ---> 如果是在 Alpha 机器上,则设置为 true 。
把硬件时钟设置为 UTC 的好处就是他能自动设置夏时制,缺点是,在安装有多重操作系统启动的机器上,在另外的操作 
系统上时钟会错误。
Linux 的时钟设置文件为:/etc/localtime ,实际上这个文件是 /usr/share/zoneinfo 目录下对应文件的符号连接。 
假设我们所处的地区位于上海,那么只要运行以下的命令就可以设置时区了。
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Linux 启动时,其中的一个脚本(/etc/rc.d/rc.sysinit)会运行 /sbin/hwclock 程序,把当前的硬件时钟复制为系统 
时间。hwclock 假定硬件时钟已经设置为本地时钟,除非带有 --utc 参数。脚本文件会读取 /etc/sysconfig/clock 文 
件的设置,因此我们不需要修改脚本,直接修改这个配置文件就可以了,根据需要把其中的 UTC 行,设置为 true 或 
者 false。
设置硬件时钟时,首先使用 date 命令(date MMDDhhmmYYYY.ss) 设置好系统时钟,然后使用 /sbin/hwclock --systohc 
把硬件时钟设置为和当前系统时间一致。
如果你在某些应用下面的时间是错误的,那么你在运行 Red Hat Linux 5.0 或 5.1,解决的办法是建立 /usr/lib/zoneinfo 
到 /usr/share/zoneinfo 的符号连接:
ln -s /usr/share/zoneinfo /usr/lib/zoneinfo
小结:时钟设置的问题本身比较简单,但是它涉及到几个基本的配置文件:
/etc/rc.d/rc.sysinit 
/etc/sysconfig/clock 
/etc/localtime 
/usr/share/zoneinfo
对初学者来说,确实需要一定的基本功才可以对以上的几个文件了如指掌。但是仔细阅读 hwclock 的 man 手册,相信这些 
问题都能迎刃而解。

转2:
linux的NTP设置
http://blog.csdn.net/freeman1975/archive/2009/08/17/4456307.aspx
Network Time Protocol (NTP) 也是RHCE新增的考试要求. 学习的时候也顺便复习了一下如何设置Linux的时间,现在拿出来和大家分享
设置NTP服务器不难但是NTP本身是一个很复杂的协议. 这里只是简要地介绍一下实践方法
和上次一样,下面的实验都在RHEL5上运行
1. 时间和时区
如果有人问你说现在几点? 你看了看表回答他说晚上8点了. 这样回答看上去没有什么问题,但是如果问你的这个人在欧洲的话那么你的回答就会让他很疑惑,因为他那里还太阳当空呢.
这里就有产生了一个如何定义时间的问题. 因为在地球环绕太阳旋转的24个小时中,世界各地日出日落的时间是不一样的.所以我们才有划分时区(timezone) 的必要,也就是把全球划分成24个不同的时区. 所以我们可以把时间的定义理解为一个时间的值加上所在地的时区(注意这个所在地可以精确到城市)
地理课上我们都学过格林威治时间(GMT), 它也就是0时区时间. 但是我们在计算机中经常看到的是UTC. 它是Coordinated Universal Time的简写. 虽然可以认为UTC和GMT的值相等(误差相当之小),但是UTC已经被认定为是国际标准,所以我们都应该遵守标准只使用UTC
那么假如现在中国当地的时间是晚上8点的话,我们可以有下面两种表示方式
20:00 CST
12:00 UTC
这里的CST是Chinese Standard Time,也就是我们通常所说的北京时间了. 因为中国处在UTC+8时区,依次类推那么也就是12:00 UTC了.
为什么要说这些呢(呵呵这里不是地理论坛吧...)?
第一,不管通过任何渠道我们想要同步系统的时间,通常提供方只会给出UTC+0的时间值而不会提供时区(因为它不知道你在哪里).所以当我们设置系统时间的时候,设置好时区是首先要做的工作
第二,很多国家都有夏令时(我记得小时候中国也实行过一次),那就是在一年当中的某一天时钟拨快一小时(比如从UTC+8一下变成UTC+9了),那么同理到时候还要再拨慢回来.如果我们设置了正确的时区,当需要改变时间的时候系统就会自动替我们调整


你可能感兴趣的:(linux,时区)