1. 程式人生 > >centos 7下修改系統時間方法

centos 7下修改系統時間方法

1、問題產生

昨晚後臺的圖片服務掛了,折騰之後發現是伺服器的時間不對,於是看了一下Linux下面關於時區與時間相關的命令

[root@root:~] $ date -R
Tue, 31 Mar 2015 13:58:25 +0400
[root@root:~] $ 

北京時間為 +8000 時區,所以上述的時區設定不對
於是使用 tzselect 命令設定時區

首先選擇洲

[[email protected]:~] $ 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:      Tue Mar 31 14:04:49 CST 2015.
Universal Time is now:  Tue Mar 31 06:04:49 UTC 2015.
Is the above information OK?
1) Yes
2) 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

我們對當前使用者改變時區,所以需要修改 /ect/profile 檔案 ,並用source 命令使他生效

[root@root:~] $ vim /etc/profile
在 profile 檔案中追加 TZ='Asia/Shanghai'; export TZ
[root@root:~] $ source /etc/profile

做了上述操作之後伺服器的時間正確了,圖片服務也沒有出現因為時間不對簽名校驗失敗的情況,圖片正常上傳

[[email protected]~]# date -R
Thu, 02 Apr 2015 11:36:44 +0800

2、第二天問題重現

第二天到公司發現在開發中的APP 介面引數簽名錯誤,結果發現又是時間不對,上伺服器一看,時間不正確了,明明昨天已經調回到東八區正確的時間了?

團隊其他人處理這個問題,沒搞定,於是自己接著解決,上伺服器一看:

[[email protected]~]# date -R
date: multiple output formats specified

date -R 以及 date 下面所有帶引數命令失效,無語了

[[email protected]~]# clock
Thu 02 Apr 2015 11:47:33 AM UTC -0.395946 seconds

UTC 如果使用UTC,那麼也應該倒退8個小時才行(因為北京時間 UTC +8),決定直接調整為 CTS(China Standard Time) 時間

網上搜索需要修改 /ect/localtime 檔案

[[email protected]/]# cd /etc/
[[email protected]/]# ll
lrwxrwxrwx   1 root root     34 Mar 31 15:09 localtime -> /usr/share/zoneinfo/Asia/Shanghai

發現該檔案軟連線到了 /usr/share/zoneinfo/Asia/Shanghai 現在這個指向實際上是昨天通過 tzselect 命令選擇的
但是時間還是不對,我們檢視 /usr/share/zoneinfo/Asia/Shanghai 檔案

[[email protected] Asia]# cd /usr/share/zoneinfo/Asia/
[[email protected] Asia]# vim Shanghai
TZif2^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^C^@^@^@^C^@^@^@^@^@^@^@^Q^@^@^@^C^@^@^@^L°þ<9a><9b>È\^A<80>Èú'pÉÕ^N<80>ÊÛZð^^º6^@^_i^?p ~h<80>!Iap"^J<80>#)Cp$Gg^@%^R_ð&'I^@&òAð(^G+^@(Ò#ð^B^A^B^A^B^A^B^A^B^A^B^A^B^A^B^A^B^@^@qå^@^@^@^@~<90>^A^D^@^@p<80>^@^HLMT^@CDT^@CST^@^@^@^@^@^@^@TZif2^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^C^@^@^@^C^@^@^@^@^@^@^@^Q^@^@^@^C^@^@^@^Lÿÿÿÿ°þ<9a><9b>ÿÿÿÿÈ\^A<80>ÿÿÿÿÈú'pÿÿÿÿÉÕ^N<80>ÿÿÿÿÊÛZð^@^@^@^@^^º6^@^@^@^@^@^_i^?p^@^@^@^@ ~h<80>^@^@^@^@!Iap^@^@^@^@"^J<80>^@^@^@^@#)Cp^@^@^@^@$Gg^@^@^@^@^@%^R_ð^@^@^@^@&'I^@^@^@^@^@&òAð^@^@^@^@(^G+^@^@^@^@^@(Ò#ð^B^A^B^A^B^A^B^A^B^A^B^A^B^A^B^A^B^@^@qå^@^@^@^@~<90>^A^D^@^@p<80>^@^HLMT^@CDT^@CST^@^@^@^@^@^@^@
UTC-8

仔細比對另一臺時間正確的伺服器發現上述檔案中末尾的 UTC-8 時間上應該是CTS-8
最後詢問後得知是同事修改了該檔案,果斷把該檔案末尾修改為 CTS-8

最關建的一步來了

我們一般使用“date -s”命令來修改系統時間。
比如將系統時間設定成2011年07月15日的命令如下。#date -s 07/15/2011
將系統時間設定成下午3點12分0秒的命令如下。#date -s 15:12:00
注意,這裡說的是系統時間,是linux由作業系統維護的。

 在系統啟動時,Linux作業系統將時間從CMOS中讀到系統時間變數中,以後修改時間通過修改系統時間實現。為了保持系統時間與CMOS時間的一致性,Linux每隔一段時間(大約是11分鐘)會將系統時間寫入CMOS。由於該同步是每隔一段時間進行的,在我們執行date-s後,如果馬上重起機器,修改時間就有可能沒有被寫入CMOS,這就是問題的原因。如果要確保修改生效可以執行如下命令。  
 ---- #clock -w  
 ---- 這個命令強制把系統時間寫入CMOS。
[[email protected] ]# clock -w
[[email protected] ]# clock
Thu 02 Apr 2015 11:47:33 AM CTS-0.395946 seconds

至此,時間終於正確了,下一次Linux cmos寫入也不會將時間改錯了,實際上前一天做的工作就差這最後一步。

3、date -R 以及其他帶引數命令錯誤的解決

搞了半天不知道什麼原因造成的,上來提問
大神建議:

看看是不是環境變數被汙染了,用“which date”看看你啟動的這個date命令是不是built-in的date命令,再用"whereis
date"看看哪些目錄都有"date"這個命令,預設是/bin/date的

於是上伺服器一看:

[[email protected]]# which date
alias date +"%Y%M%D"
/usr/bin/date

一問同事他給系統預設 date 起了別名

[root@root etc]# date -R
實際上
[root@root etc]# date +"%Y%M%D" -R

所以錯了:
檢視alias 的所有條目

[[email protected]]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
alias date +"%Y%M%D"

使用 unalias 命令將 date 的別名取消

[root@root etc]# unalias date
[root@root etc]# date -R
Thu, 02 Apr 2015 13:02:00 +0800

現在 date 命令已經可以正常使用

相關推薦

centos 7修改系統時間方法

1、問題產生 昨晚後臺的圖片服務掛了,折騰之後發現是伺服器的時間不對,於是看了一下Linux下面關於時區與時間相關的命令 [root@root:~] $ date -R Tue, 31 Mar 2015 13:58:25 +0400 [root@root:~] $

CentOS 7修改默認網卡名為eth0的兩種方法

修改網卡eth0第一種方式這種方式適合在安裝操作系統的時候進行設置,點擊 Tab,打開kernel啟動選項,增加內核參數: net.ifnames=0 biosdevname=0--->Enter回車第二種方式修改網卡配置文件中的 DEVICE= 參數的關於 eth0[root@ansheng ~]

CentOs 7 修改 Windows 預設啟動順序

#修復引導win 10(或Windows 7等): 1、增加windows啟動 選單 root許可權執行: $ sudo vim /etc/grub.d/40_custom 得到開啟檔案後並編輯 #!/bin/sh exec tail -n +3 $0 # This file provi

CentOS 7的軟體安裝方法總結

使用Linux尤其是CentOS會遇到一些坑,或是一些有潔癖的人不能忍的事情: 官方源中的軟體包版本太老,在功能上無法滿足需求; 多個源的軟體包存在版本衝突; 手動編譯軟體,預設會將不同檔案放置在/usr/local下不同的子目錄下,使得軟體的更新和刪除

CentOS 7 修改Mysql 5.7datadir的位置,無法啟動的問題解決

CentOS 7 下MySQL 預設安裝在/var/lib/mysql目錄下,但是隨著儲存資料的增多,所在的硬碟空間很快被佔滿,導致無法進行插入、建表等操作。 這時需要將mysql資料儲存資料夾移植到別的資料夾下,網上有很多教程,如http://www.cnblogs.co

CentOS 7的軟體安裝方法及策略

編譯原始碼 大部分軟體用前面的幾種方法應該都能安裝上了。如果沒安裝上,那就得問問自己,真的需要安裝這個軟體麼。如果不是非常必要的話就不要安裝啦。如果是必須的軟體,那就必須要手動編譯了。 常見的原始碼編譯,一般也就是如下幾步。當然,具體情況具體對待: tar -xvf xxxx.tgz ./config

centos 7修改系統時間

1.檢視時間[[email protected] ~]# date Wed May 30 22:24:35 EDT 2018   #和顯示時間有誤差2.同步網路伺服器時間[[email protected] ~]# ntpdate 218.186.3.36

用date命令給CentOS Linux設定修改系統日期和時間方法

修改CentOS Linux的時間可以使用date指令  修改日期:  時間設定成2014年6月20日的命令如下:  #date -s 06/20/2014 修改時間:  將系統時間設定成下午14點20分00秒的命令如下。  #date -s 14:20:00  修改時區:  找到相應的時區檔案 /usr/

Linux系統CentOS 7修改修改系統時區方法

linux在安裝的時候如果時區選擇錯誤,可以在系統安裝完成之後修改。系統時間執行著也會有偏差,需要對時間進行實時同步,方法如下:1、用date命令檢視系統當前時間,發現和北京時間有一定的誤差(當前時間為

Centoss如何永久修改系統時間

 使用Centos,遇到本地時間對不上,直接敲命令:date -s "2014-12-25  15:15:15"是立即生效了,但是重啟後,系統時間還是原來的。  後面經過查詢資料,做個小結.  我的Centos是安裝在虛擬機器上。在虛擬機器有分系統時間和硬體時間。修改了其一

CentOS修改系統時間

.com href www 操作 ron 指向 usr linu set 操作: 1 2 date –s ‘1987-05-02 10:10:10‘ clock –w //將日期寫入CMOS 補充: 修改Linux時間一般涉及到3個命令:

[CentOS 7系列]監控系統狀態(

監控1、iostat/iotop 磁盤使用[[email protected]/* */ ~]# iostat ##靜態顯示 Linux 3.10.0-514.el7.x86_64 (server01) 2017年07月11日 _x86_64_ (1 CPU) avg-c

修改Linux/Centos 7的默認網卡名

linux centos eth0 在使用linux/Centos 7時可能大家會發現在安裝好系統後默認的網卡名是一個隨機數,在使用的過程中使用極為不便,linux/Centos 7的這種改變是因為在systemd和udev中引入新的網卡命名技術,可以在舊硬件壞了後更換新硬件後可以重命名設備

linux如何修改系統時間

linux下如何修改系統時間 我們一般使用“date -s”命令來修改系統時間。比如將系統時間設定成2018年2月23日的命令如下。     #date -s 02/23/2018    將系統時間設定成下午11點12分0秒的命令如下。    #date -s 11:12:00    註意,這裏說的是系統

Centos 7在LVM中對xfs文件系統進行擴容

情況 root 查看分區 margin com oot strong important BE Centos 7下在LVM中對xfs文件系統進行擴容LVM 磁盤管理 1. LVM基本術語 物理卷 (physical volume) : 物理的磁盤分區 $

Linux如何修改系統時間和時區方法

Linux如何修改系統時間和時區方法修改時區:1>找到相應的時區文件 /usr/share/zoneinfo/Asia/Shanghai用這個文件替換當前的/etc/localtime文件。或者找你認為是標準時間的服務器,然後#scp [email protected]:/etc/localtim

Centos 7 添加文件系統ntfs 支持,添加windows系統引導

config cfg 進入 AD 也不能 重啟 安裝 lease 默認 Centos默認情況下並不支持引導Windows系統,也不能顯示windows默認的ntfs文件系統 第一步 :安裝 epel-release 源 yum -y install epel-release

CentOS 7搭建MFS分布式文件系統

行數 watermark login 分享 bin metal 復制。 path block MFS原理 MFS是一個具有容錯性的網絡分布式文件系統,它把數據分散存放在多個服務器上,而呈現給用戶的則是一個統一的資源。 MFS文件系統的組成架構: 元數據服務器(Mas

linux Qt 如何修改系統時間

Qt 提供日期時間的類有 QDate QTime 和QDateTime,這三個類。 一、獲取系統時間 可以通過三個靜態函式來獲取 1.QDate::currentDate() 來獲取當前系統的日期 2.QDate::currentTime()來獲取當前系統的時間 3.QDateT