对于许多与系统相关的任务和进程,使用正确的时区是必不可少的。例如,cron守护进程使用系统的时区执行cron作业,日志文件中的时间戳基于同一系统的时区。
环境
Centos 8
检查现在的时区
timedatectl是一个 命令 行实用程序,允许您查看和更改系统的时间和日期。
[root@localhost ~]# timedatectl
Local time: Tue 2020-03-31 16:35:23 CST
Universal time: Tue 2020-03-31 08:35:23 UTC
RTC time: Tue 2020-03-31 08:35:23
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
更改时区
在更改时区之前,您需要找出要使用的时区名烂派称。要列出所有可用时区,请使用下面的 命令 :
[root@localhost ~]# timedatectl list-timezones
…
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
…
然后使用set-timezone选项更改时区,比如更改为Europe/Berlin:
[root@localhost ~]# timedatectl set-timezone Europe/Berlin
使用创建链接的方式更改时区
如果运行的是旧版本的Centos,比如Centos6之前的版本,并且系统上不存在timedatectl命令,则可以通过将/etc/localtime符号链接到/usr/share/zoneinfo目录中的时区文件来更改时区。
查看一下/usr/share/zoninfo下面宴历桥的时区文件,
[root@localhost ~]# ls /usr/share/zoneinfo/晌猛
[root@localhost ~]# ls /usr/share/zoneinfo/Asia/
现在替换时区文件。
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@localhost ~]# date
Tue Mar 31 16:53:59 CST 2020
可以看到已经切换到了CST中国标准时间
总结
在本文中,使用了两种方式修改时区。一种是使用timedatectl,另一种方式使用创建链接的方式。
② linux 时区设置 cst 什么时区
1)
找到相应的时区文件
/usr/share/zoneinfo/asia/shanghai
用这个文件替换当前的/etc/localtime文件。
2)
修改/etc/sysconfig/clock文件,修改为:
zone="asia/shanghai"
[color=red]utc=true[/color]
arc=false
3)
时间设定成2005年8月30日的命令如下:
#date
-s
08/30/2005
将系统时间设定成下午6点40分0秒的命令如下。
#date
-s
18:40:00
4)
同步bios时钟,强制把系统时间写入cmos,命令如下:
#clock
-w
5)重启apache。
参考资料二、
本文档解释了如何从linux下设置计算机的时钟,如何设置您的时区和其它与linux如何保存时间相关的材料。
您的计算机有两个时钟,一个是始终运行的、由电池供电的(
硬件的、bios或cmos
)时钟,另一个是由运行在您的计算机上的操作系统维护的(
系统
)时钟。硬件时钟通常只在操作系统启动时用来设置系统时钟,然后直到重启或关闭系统,由系统时钟来记录时间。在linux
系统中,您可以选择用utc/gmt
时间或本地时间来记录硬件时钟。推荐的选项是用utc
记录,因为夏令时可以自动记录。使用utc
记录硬件时钟的唯一不足是,如果您使用双系统,其它操作系统,如dos
要求硬件时钟用本地时间设置,那么在那个操作系统里时间将是错误的。
设置时区:
linux
下的时区是通过建立从/etc/localtime[1]
到/usr/share/zoneinfo
[2]
目录下与您所在时区相符的文件的符号链结实现的。例如,由于我在南澳大利亚,/etc/localtime就是到
/usr/share/zoneinfo/australia/south的符号链结。要建立这个链结,运行:
ln
-sf
../usr/share/zoneinfo/your/zone
/etc/localtime
替换your/zone
为形如australia/nsw或australia/perth
的文件。看看/usr/share/zoneinfo目录都有什么时区。
[1]
这里假设/usr/share/zoneinfo
是到/etc/localtime
的链结的前提是redhat
linux
[2]
在旧版本的系统里,您会发现使用/usr/lib/zoneinfo而不是/usr/share/zoneinfo。参考后面“一些应用程序中时间错误”。
③ linux下如何修改时区(TIMEZONE)
date命令去修改时间,这个比较简单就不多说了。然而,有时候两台机器的时间虽然一致,但是时区却不同,那么用户就不得不去修改机器的时区,这个修改在不同操作系统是不同的,所以这里分别介绍一下主流操作系统修改时区的方法:Solaris:
在solaris中,修改时区需要修改/etc/TIMEZONE文件,其中的TZ=PRC就表示中国时区,我们可以将其替换为TZ=US/Pacific,再重启机器,就将时区修改为美国太平洋时区了。
这里需要注意三点:
1,在X86的机器上,需要再执行如下命令,更新/etc/rtc_config文件:# rtc -zzone-name(这里的zone-name就是/etc/TIMEZONE中TZ的值)# rtc -c
2,到底有多少中时区可以选择呢?我们可以进入/usr/share/lib/zoneinfo目录,其中有很多目录,包括US,也有很多文件,比如PRC;这表示US下还有很多时区,而PRC就是统一的时区。正因为如此,我们才看到TZ=PRC和TZ=US/Pacific这两种不同的形式。
3,需要重启系统使之生效。
Linux(Redhat andSuse):
1,在/usr/share/zoneinfo/目录下查询想要更换的时区名称,修改格式同上
2,将原有的localtime文件移走;
# mv /etc/localtime
/etc/localtime-old
3,做新的localtime文件,将对应的时区文件链接过来# ln -s/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4,与硬件同步
# /sbin/hwclock--systohcAIX:
1,查看当前时区(其他操作系统是date命令即可)
cat /etc/environment
(查找TZ所在行)
2,为了妥善起见,建议使用smit修改时区smit chtz
3,所有的时区信息在/usr/share/lib/zoneinfo目录HPUX:
1,# set_parms timezone,可以通过交互的方式来修改时区。
④ linux查看系统时区命令
显示 /etc/timezone 的内容
使用 cat 工具显示文件/etc/timezone的内容,来查看你的时带灶区:
$ cat /etc/timezone
在 Linux 中查看时知戚区《Linux就该这么学》
对蠢猛扮于 RHEL/CentOS/Fedora 用户,这里还有一条可以起到同样效果的命令:
$ grep ZONE /etc/sysconfig/clock
⑤ Linux中如何查看修改系统的时间和时区
一、时区
1. 查看当前时区
date -R
2. 修改设置时区
方法(1)
tzselect
方法(2) 仅限于RedHat Linux 和 CentOS
timeconfig
方法(3) 适用于Debian
dpkg-reconfigure tzdata
3. 复制相应的时区文件,替换系统时区文件;或者创建链接文件
cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
在中国可以使用:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
二、时间
1、查看时间和日期
date
2、设置时间和日期
将系统日期设定成1996年6月10日的命令
date -s 06/22/96
将系统时间设定成下午1点52分0秒的命令
date -s 13:52:00
3. 将当前时间和日期写入BIOS,避免重启后失效
hwclock -w
备注:
更详细的命令说明请参加man
⑥ linux 查看各个时区
date -u 中的u是date的一个参来数,固定表示格林威自治时间
你要想查看全部时区,就去 /usr/share/zoneinfo/ 目录
例如:ls /usr/share/zoneinfo/Asia/
可显示全部的亚洲时区。
⑦ linux修改系统时间命令
inux修改时间命令是date-s+时分秒。
修改linux系统时间。root使用date指令:date -s
1、只修改日期,不修改时间,输入:date -s 2021-04-02。
2、只修改时间,输入:date -s 12:00:00。
3、同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:date -s “2021-04-02 10:25:00”
4、修改完后,记得输入:clock -w。把系统时间写入CMOS修改时区不重启。在root下。
复制相应的时区文件,替换系统时区文件:
cp /usr/share/zoneinfo/主时区/次时区 /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5、文件复制命令—cp cp [参数] [源地址] [目的地址]主要参数描述如下:-a :此参数和同时指定“-dpR”参数相同 -d :在复制有符号连接的文件时,保留原始的连接。 -f :强行复制文件,不管要复制的文件是否已经存在于目标目录。 -I :覆盖现有文件之前询问用户。
⑧ Linux集群系统时间同步
环境准备:
要做到服务器集群的时间同步,集群中各台机器的时区必须相同的,我们在国内就使用中国时区,如果你的机器的时区不是"Asia/Shanghai",需要修改时区
CentOS 中时区是以文件形式存在,当前正在使用的时区文件位于
/etc/localtime ,其他时区文件则位于 /usr/share/zoneinfo 下,中国时区的文件全路径是 /usr/share/zoneinfo/Asia/Shanghai
要更改时区,直接使用如下命令就OK
需要使用 tzselect 命令去生成时区文件,生成好的时区文件就在/usr/share/zoneinfo 目录下,具体步骤去下:
使用 date -s 命令来修改系统时间
让集群所有的服务器的时间同步,就用远程连接工具连接所有服务器,然后在所有的服务器中同时执行 date -s 命令设置时间,然后在所有的服务器中执行 hwclock -w 命令即可
美国标准技术院时间服务器:time.nist.gov(192.43.244.18)
上海交通大学网络中心NTP服务器地址:ntp.sjtu.e.cn(202.120.2.101)
中国国家授时中心亏侍服务器地址:cn.pool.ntp.org(210.72.145.44)
若以上提供的网络时间服务器不可用,请自行上网寻找可用的网络时间服务器
<1> 使用命令: crontab -e
<2> 然后往里加入一行内容
上面的配置表示,每隔十分钟从 202.120.2.101 该时间服务器同步一次时间。
<3> 保销戚吵存退出
以上两步操作可以让node01这个服务器每隔10分钟去指定的服务器同步时间,如果需要让集群中的所有服务器(hadoop01-hadoop04)时间同步,那么每台服务器都要做以上两步操作。
node01的IP为192.168.21.101,让它作为时间服务器,192.168.21.0局域网内的所有服务器都向它同步时间,而node01这台时间服务器本身,向外网时间服务器同步时间(比如中国国家授时中心服务器)
我用node01
我去掉了所有的默认注释,对其中的修改写了自己的注释,没有写注释的是默认配置
因为ntpd服务开启之后,就不能手动同步时间了,那么为什么要先手动同步时间呢?
当server(中国国家授时中心服务器)与client(node01)之间的时间误差过大时(可能是1000秒),node01去同步时间可能对系统和应用带来不可预知的问题,node01将停止时间同步!所以如果发现node01启动之后时间并不进仔闷行同步时,应该考虑到可能是时间差过大引起的,此时需要先手动进行时间同步!
看到红色框中的内容,表示连接和监听已正确
这里的前4行就是我们配置的4个中国国家授时中心的服务器的信息
最后一行就是本地时间服务的信息
下面对每个列的意义进行说明:
同样,服务启动后需要等待5-10分钟才能看到这个正常的信息
到这里,我们局域网内的时间服务器node01就已经配置完毕了
文件内容如下:
同样,没有写注释的都是默认的配置
原因同(5)
到这里,利用局域网内一台时间服务器来同步整个集群时间的全部配置就已经完成
说明:若以上提供的网络时间服务器不可用,请自行上网寻找可用的网络时间服务器,另外需要关闭各服务器的防火墙,才能进行时间同步
参考文章:
内网环境NTP服务及时间同步(CentOS6.x)配置和部署
配置NTP服务ntpd/ntp.conf(搭建Hadoop集群可参考)
⑨ 如何在linux命令行下修改时区
查看时区
cat /etc/sysconfig/clock
设置时区
tzselect
timeconfig
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时区的配置文件是/etc/sysconfig/clock。用tzselect命令就可以修改这个配置文件,根据命令的提示进行修改就好了。 但是在实际工作中,发现这种方式是不能够使得服务器上的时间设置马上生效的,而且使用ntpdate去同步时间服务器也不能够更改时间。即使你使用了date命令手工设置了时间的话,如果使用ntpdate去进行时间同步的话,时间又会被改动到原来的错误时区的时间。而生产的机器往往是非常重要的,不能够进行重启等操作。 在网上找了几种方法试了下,发现如果要修改时区并且马上生效,可以更换/etc/localtime 文件来实现。比如我的时区是中国上海,那么就可以使用如下的命令来使得时区的更改生效。 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 然后最好使用下面的命令将更改写入bios。
⑩ 请问Linux系统中时区文件 比如/usr/share/zonetime/Asia/Shanghai 是怎么生成的啊
glibc 里面 可以用 zic 编译生成。
不过那语法真够麻烦的。
发现系统里面拷贝的时区文件 有些不正确。纠结。