• 【转载】Linux 系统时间查看 及 时区修改(自动同步时间)


    1:使用date命令查看时区

    [root@db-server ~]# date -R
     
    Sun, 11 Jan 2015 07:10:28 -0800
     
    [root@db-server ~]# 
     

    如上RFC 2822 format所示,上面命令输出了-0800表示西八区,是美国旧金山所在的时区,下面表示我们国家的东八区(+0800)

    [root@lnx01 ~]# date -R
     
    Sun, 11 Jan 2015 23:06:02 +0800
     

    2:查看clock系统配置文件

    [root@db-server ~]# more /etc/sysconfig/clock
    ZONE="America/Los_Angeles"
    UTC=true
    ARC=false

    我的香港服务器,默认时区是 Asia/Urumqi (乌鲁木齐)
    使用 date 查看日期是0600,比北京时间慢两个小时左右

    如上所示,表示该系统设置的时区为“America/Los_Angeles”,也就是西八区。

    inux系统如何设置系统所在的时区呢?

    方法1:使用tzselect设置时区

    例子,将系统时区设置为东八区(北京时间)

    [root@db-server ~]# 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
    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
    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
     
    The following information has been given:
     
            China
            east China - Beijing, Guangdong, Shanghai, etc.
     
    Therefore TZ='Asia/Shanghai' will be used.
    Local time is now:      Sun Jan 11 23:31:51 CST 2015.
    Universal Time is now:  Sun Jan 11 15:31:51 UTC 2015.
    Is the above information OK?
    1) Yes
    2) No
    #? yes
    Please enter 1 for Yes, or 2 for No.
    #? 1
     
    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

    注意:tzselect命令只告诉你选择的时区的写法,并不会生效。所以现在它还不是东8区北京时间。你可以在.profile、.bash_profile或者/etc/profile中设置正确的TZ环境变量并导出。 例如在.bash_profile里面设置 TZ='Asia/Shanghai'; export TZ并使其生效。

    [root@db-server ~]# source .bash_profile
     
    [root@db-server ~]# date
     
    Sun Jan 11 23:37:40 CST 2015
     

    方法2:复制相应的时区文件,替换系统时区文件;或者创建链接文件

    在/usr/share/zoneinfo/下面有很多时区文件,如下所示,可以复制这些时区文件覆盖/etc/localtime文件,或修改符号链接/etc/locatime对应的文件

    clip_image002

    北京时间
    [root@db-server ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    [root@db-server ~]# date -R
    Mon, 12 Jan 2015 10:42:26 +0800

    美国时间
    [root@db-server ~]# cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime 
    cp: overwrite `/etc/localtime'? y
    [root@db-server ~]# date -R
    Sun, 11 Jan 2015 18:42:49 -0800
    [root@db-server ~]# 

    clip_image003

    注意如果有时候,执行了上面命令后,使用date -R发现时区设置没有生效,有可能是因为你在profile或.bash_profile里面设置了TZ,如下案例所示:

    [root@db-server ~]# date -R
    Sun, 11 Jan 2015 18:42:49 -0800
    [root@db-server ~]# vi .bash_profile
    # .bash_profile
     
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
     
    # User specific environment and startup programs
     
    PATH=$PATH:$HOME/bin
     
    TZ='Asia/Shanghai'; export TZ
    export PATH
    unset USERNAME
    ~
    ~
    ".bash_profile" 14L, 221C written
    [root@db-server ~]# source .bash_profile
    [root@db-server ~]# date -R
    Mon, 12 Jan 2015 10:44:35 +0800

    方式2:修改链接/etc/locatime的时区文件

    [root@db-server ~]# ln /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    ln: creating hard link `/etc/localtime' to `/usr/share/zoneinfo/Asia/Shanghai': File exists

    [root@db-server ~]# rm /etc/localtime

    rm: remove regular file `/etc/localtime'? y

    [root@db-server ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    [root@db-server ~]# date -R

    Mon, 12 Jan 2015 10:56:10 +0800

    [root@db-server ~]#

    方法3:使用timeconfig设置时区

      略 ...  

    inux系统如何设置系统所在的时区呢?

    方法1:使用tzselect设置时区

    例子,将系统时区设置为东八区(北京时间)

    [root@db-server ~]# 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
    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
    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
     
    The following information has been given:
     
            China
            east China - Beijing, Guangdong, Shanghai, etc.
     
    Therefore TZ='Asia/Shanghai' will be used.
    Local time is now:      Sun Jan 11 23:31:51 CST 2015.
    Universal Time is now:  Sun Jan 11 15:31:51 UTC 2015.
    Is the above information OK?
    1) Yes
    2) No
    #? yes
    Please enter 1 for Yes, or 2 for No.
    #? 1
     
    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

    注意:tzselect命令只告诉你选择的时区的写法,并不会生效。所以现在它还不是东8区北京时间。你可以在.profile、.bash_profile或者/etc/profile中设置正确的TZ环境变量并导出。 例如在.bash_profile里面设置 TZ='Asia/Shanghai'; export TZ并使其生效。

    [root@db-server ~]# source .bash_profile
     
    [root@db-server ~]# date
     
    Sun Jan 11 23:37:40 CST 2015
     

    方法2:复制相应的时区文件,替换系统时区文件;或者创建链接文件

    在/usr/share/zoneinfo/下面有很多时区文件,如下所示,可以复制这些时区文件覆盖/etc/localtime文件,或修改符号链接/etc/locatime对应的文件

    clip_image002

    [root@db-server ~]# date -R
    Mon, 12 Jan 2015 10:42:26 +0800
    [root@db-server ~]# cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime 
    cp: overwrite `/etc/localtime'? y
    [root@db-server ~]# date -R
    Sun, 11 Jan 2015 18:42:49 -0800
    [root@db-server ~]# 

    clip_image003

    注意如果有时候,执行了上面命令后,使用date -R发现时区设置没有生效,有可能是因为你在profile或.bash_profile里面设置了TZ,如下案例所示:

    [root@db-server ~]# date -R
    Sun, 11 Jan 2015 18:42:49 -0800
    [root@db-server ~]# vi .bash_profile
    # .bash_profile
     
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
     
    # User specific environment and startup programs
     
    PATH=$PATH:$HOME/bin
     
    TZ='Asia/Shanghai'; export TZ
    export PATH
    unset USERNAME
    ~
    ~
    ".bash_profile" 14L, 221C written
    [root@db-server ~]# source .bash_profile
    [root@db-server ~]# date -R
    Mon, 12 Jan 2015 10:44:35 +0800
  • 相关阅读:
    nginx + keepalived 教程
    mysql 之 获取指定月份天数和指定月份上月天数
    hive 之将sql执行结果输出到文件中
    sql 之 处理一行全为0的记录
    Shell 基础知识
    kettle 调度时出现时区问题,导致数据调出加了8小时
    sql 之按指定分割符取分割符前/后字符串
    Spring Security(二)
    Spring Security(一)
    集成Swagger文档
  • 原文地址:https://www.cnblogs.com/yingsong/p/6001028.html
Copyright © 2020-2023  润新知