Linux如何修改和查询时区时间

时间:2021-07-07 16:41:47

Linux如何修改和查询时区时间

  我在日常工作中,最近遇到了在解压源码包的时候,提示时间比较旧,解压安装出现问题。原因是,租用的vps所在时区和自己所需要的时区不一致,于是在网上找了相关资料。并亲自实践,将其记录如下,以供日后方便使用。

一、时区

参考资料:http://www.cnblogs.com/h2appy/archive/2008/11/27/1342029.html

# 当前操作系统版本

[root@erwtd ~]# cat /etc/redhat-release

CentOS release 6.9 (Final)

# 1、查看当前时区:东9区

[root@erwtd ~]# date -R

Mon,  Dec  :: +

[root@erwtd ~]# 

# 2、修改时区

[root@erwtd ~]# tzselect

Please identify a location so that time zone rules can be set correctly.

Please select a continent or ocean.

 ) Africa

 ) Americas

 ) Antarctica

 ) Arctic Ocean

 ) Asia

 ) Atlantic Ocean

 ) Australia

 ) Europe

 ) Indian Ocean

) Pacific Ocean

) none - I want to specify the time zone using the Posix TZ format.

#? 

Please select a country.

 ) Afghanistan           ) Israel                ) Palestine

 ) Armenia               ) Japan                 ) Philippines

 ) Azerbaijan            ) Jordan                ) Qatar

 ) Bahrain               ) Kazakhstan            ) Russia

 ) Bangladesh            ) Korea (North)         ) Saudi Arabia

 ) Bhutan                ) Korea (South)         ) Singapore

 ) Brunei                ) Kuwait                ) Sri Lanka

 ) Cambodia              ) Kyrgyzstan            ) Syria

 ) China                 ) Laos                  ) *

) Cyprus                ) Lebanon               ) Tajikistan

) East Timor            ) Macau                 ) Thailand

) Georgia               ) Malaysia              ) Turkmenistan

) *             ) *              ) United Arab Emirates

) India                 ) Myanmar (Burma)       ) Uzbekistan

) Indonesia             ) Nepal                 ) Vietnam

) Iran                  ) Oman                  ) Yemen

) Iraq                  ) Pakistan

#? 

Please select one of the following time zone regions.

) Beijing Time

) * Time

#? 

The following information has been given:

        China

        Beijing Time

Therefore TZ='Asia/Shanghai' will be used.

Local time is now:      Mon Dec  :: CST .

Universal Time is now:  Mon Dec  :: UTC .

Is the above information OK?

) Yes

) No

#? 

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

[root@erwtd ~]# 

#3、复制相应的时区文件,替换系统时区文件

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

#在中国可以使用:

[root@erwtd ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

一、时间

#1、查看当前时间

[root@erwtd ~]# date

Mon Dec  :: CST 

[root@erwtd ~]#

#2、设置时间和日期

[root@erwtd ~]# date -s "20171211 11:29:30"
Mon Dec :: CST
[root@erwtd ~]#
#或者单独修改时间
[root@erwtd ~]# date -s
Wed Dec :: CST
[root@erwtd ~]# date -s ::
Wed Dec :: CST
[root@erwtd ~]# date
Wed Dec :: CST
[root@erwtd ~]#

#3、保存设置

[root@erwtd ~]# hwclock  -w

二、时间同步shell脚本

[root@erwtd ~]#cat /root/ntp.sh
#!/bin/bash
# ntp.sh
#NTP服务器数组列表
ntpServer=(
[]=.cn.pool.ntp.org
[]=.cn.pool.ntp.org
[]=.cn.pool.ntp.org
[]=.cn.pool.ntp.org
) #校验#
serverNum=
NUM=
for ((i=; i<=$serverNum; i++)); do
echo -n "正在和NTP服务器:${ntpServer[$NUM]}校验中..."
/usr/sbin/ntpdate ${ntpServer[$NUM]} >> /dev/null >&
if [ $? -eq ]; then
echo -e "\e[1;32m\t[成功]\e[0m"
echo -e "\e[1;32m同步成功,退出......\e[0m"
break
else
echo -e "\e[1;31m\t[失败]\e[0m"
echo -e "\e[1;31m继续同步下一个!!!!!\e[0m"
let NUM++
fi
sleep
done
[root@erwtd ~]#
[root@erwtd ~]# sh /root/ntp.sh
正在和NTP服务器:tw.pool.ntp.org校验中... [成功]
同步成功,退出......
[root@erwtd ~]#