centos6.x系統時區讀取無效

問題描述:

生產運行服務器,系統是CentOS 6.x,之前設置爲Asia/Shanghai,但是前兩天突然時區失效了。

失效之前曾經升級過libc-2.12.so -> libc-2.14.so,不知道有沒有關係。 

# date
Fri Feb 10 07:01:22 Local time zone must be set--see zic manual page 2017
# date -R
Fri, 10 Feb 2017 07:14:10 +0000

用了tzselect重新選擇,無效。

重置/etc/localtime,無效

rm -f /etc/localtime
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

/etc/sysconfig/clock設置也無效

ZONE="Asia/Shanghai"
TZ="Asia/Shanghai"
UTC=false
ARC=false

最後在.bash_profile裏面設置TZ='America/Nassau'; export TZ,卻只對當前用戶有效,對其他用戶還是無效的。

# sudo -u www-data date
Fri Feb 10 06:52:02 Local time zone must be set--see zic manual page 2017

系統版本如下:

LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID:    CentOS
Description:    CentOS release 6.x (Final)
Release:    6.x
Codename:    Final

 

引起原因:

原因就是升級libc.so.6導致的!

GNU中對TZ環境變量的說明中指出,如果TZ沒有值,會默認選擇時區,具體地址由libc.so.6這個庫決定。在升級前,centos的默認時區文件爲/etc/localtime。而我新編譯的庫時,設置了--prefix=/usr/local/glibc-2.14,導致默認路徑爲變成了/usr/local/glibc-2.14/etc/localtime,自然就找不到默認時區了。

 

解決辦法:

ln -sf /etc/localtime /usr/local/glibc-2.14/etc/localtime

或者:

# /etc/profile中加入
export TZ='Asia/Shanghai'

source /etc/profile

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章