Linux 时间及时区设置
时间以及时区设置
by:授客 QQ:1033553122
1.首先确认使用utc还是local time.
UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time),Local time 本地时间,
传统的POSIX计算机(Solaris,bsd,unix)使用UTC格式,linux可以处理UTC时间和蹩脚的Windows所使用的local time
到底是使用UTC还是local time可以这样来确定:
如果机器上同时安装有Linux和Windows,建议使用Local time
如果机器上只安装有Linux,建议使用utc
2.确定后编辑/etc/sysconfig/clock
设置UTC=0或UTC=FALSE->硬件时钟为local time; UTC=1或UTC=TRUE->硬件时钟UTC(GMT),ARC=0或ARC=FALSE,->如果是在Alpha机器上,则设置为TRUE,否则FALSE 。
注:把硬件时钟设置为 UTC 的好处就是他能自动设置夏时制,缺点是在安装有多重操作系统启动的机器上,在另外的操作系统上时钟会错误。
Linux 启动时,其中的一个脚本(/etc/rc.d/rc.sysinit)会运行/sbin/hwclock 程序,把当前的硬件时钟复制为系统时间。以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。hwclock假定硬件时钟已经设置为本地时钟,除非带有utc参数。脚本文件会读取 /etc/sysconfig/clock 文件的设置,因此我们不需要修改脚本,直接修改这个配置文件就可以了
修改/etc/sysconfig/clock文件,添加如下内容:
ZONE="Asia/Shanghai"
UTC=false
ARC=false
3.使用cat /etc/sysconfig/clock查看当前时区
[root@localhost laiyu]# cat /etc/sysconfig/clock
# The time zone of the system is defined by the contents of /etc/localtime.
# This file is only for evaluation by system-config-date, do not rely on its
# contents elsewhere.
ZONE="Asia/Shanghai"
UTC=FALSE
ARC=FALSE
4.使用tzselect设置时区
[root@localhost laiyu]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.
#? 5[Enter]
Please select a country.
1) Afghanistan 18) Israel 35) Palestine
2) Armenia 19) Japan 36) Philippines
3) Azerbaijan 20) Jordan 37) Qatar
4) Bahrain 21) Kazakhstan 38) Russia
5) Bangladesh 22) Korea (North) 39) Saudi Arabia
6) Bhutan 23) Korea (South) 40) Singapore
7) Brunei 24) Kuwait 41) Sri Lanka
8) Cambodia 25) Kyrgyzstan 42) Syria
9) China 26) Laos 43) Taiwan
10) Cyprus 27) Lebanon 44) Tajikistan
11) East Timor 28) Macau 45) Thailand
12) Georgia 29) Malaysia 46) Turkmenistan
13) Hong Kong 30) Mongolia 47) United Arab Emirates
14) India 31) Myanmar (Burma) 48) Uzbekistan
15) Indonesia 32) Nepal 49) Vietnam
16) Iran 33) Oman 50) Yemen
17) Iraq 34) Pakistan
#? 9[Enter]
Please select one of the following time zone regions.
1) east China - Beijing, Guangdong, Shanghai, etc.
2) Heilongjiang (except Mohe), Jilin
3) central China - Sichuan, Yunnan, Guangxi, Shaanxi, Guizhou, etc.
4) most of Tibet & Xinjiang
5) west Tibet & Xinjiang
#? 1[Enter]
The following information has been given:
China
east China - Beijing, Guangdong, Shanghai, etc.
Therefore TZ='Asia/Shanghai' will be used.
Local time is now: 2012年 11月 25日星期日 22:40:32 CST.
Universal Time is now: 2012年 11月 25日星期日 14:40:32 UTC.
Is the above information OK?
1) Yes
2) No
#? 1[Enter]
You can make this change permanent for yourself by appending the line
TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai
5.复制相应的时区文件,替换系统默认时区
[root@localhost laiyu]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: "/usr/share/zoneinfo/Asia/Shanghai" 与"/etc/localtime" 为同一文件
注:cp /usr/share/zoneinfo/主时区/次时区 /etc/localtime
时钟设置文件为:/etc/localtime,实际上这个文件是/usr/share/zoneinfo目录下对应文件的符号连接
6.设置时间与internet同步
[root@localhost laiyu]# ntpdate asia.pool.ntp.org
25 Nov 22:33:50 ntpdate[3210]: adjust time server 220.130.158.71 offset -0.060016 sec
注:设置系统时间也可以用date或date -s命令
附:the NTP socket is in use, exiting的解决办法,如下
[root@localhost laiyu]# ntpdate asia.pool.ntp.org
25 Nov 22:28:18 ntpdate[3176]: the NTP socket is in use, exiting
[root@localhost laiyu]# service ntpd stop
Shutting down ntpd: [ OK ]
[root@localhost laiyu]# ntpdate asia.pool.ntp.org
25 Nov 22:33:50 ntpdate[3210]: adjust time server 220.130.158.71 offset -0.060016 sec
[root@localhost laiyu]# date
2012年 11月 25日星期日 22:33:58 CST
7.将当前时间写入BIOS永久生效(避免重启后失效),让系统时间与硬件时钟同步
[root@localhost laiyu]# hwclock
2012年11月25日星期日 22时44分22秒 -0.032355 seconds
或者
[root@localhost laiyu]# clock -w
注:clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。
8.查看Bois(cmos)时间(用 #hwclock -r
[root@localhost laiyu]# hwclock -r
2012年11月25日星期日 22时49分46秒 -0.813294 seconds
或者
[root@localhost laiyu]# hwclock --show
或者
[root@localhost laiyu]# clock --show
作者:授客
微信/QQ:1033553122
全国软件测试QQ交流群:7156436
Git地址:https://gitee.com/ishouke
友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!
作者五行缺钱,如果觉得文章对您有帮助,请扫描下边的二维码打赏作者,金额随意,您的支持将是我继续创作的源动力,打赏后如有任何疑问,请联系我!!!
微信打赏
支付宝打赏 全国软件测试交流QQ群
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库