1. linux系統如何更改時間時區
對於許多與系統相關的任務和進程,使用正確的時區是必不可少的。例如,cron守護進程使用系統的時區執行cron作業,日誌文件中的時間戳基於同一系統的時區。
環境
Centos 8
檢查現在的時區
timedatectl是一個 命令 行實用程序,允許您查看和更改系統的時間和日期。
[root@localhost ~]# timedatectl
Local time: Tue 2020-03-31 16:35:23 CST
Universal time: Tue 2020-03-31 08:35:23 UTC
RTC time: Tue 2020-03-31 08:35:23
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
更改時區
在更改時區之前,您需要找出要使用的時區名稱。要列出所有可用時區,請使用下面的 命令 :
[root@localhost ~]# timedatectl list-timezones
…
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
…
然後使用set-timezone選項更改時區,比如更改為Europe/Berlin:
[root@localhost ~]# timedatectl set-timezone Europe/Berlin
使用創建鏈接的方式更改時區
如果運行的是舊版本的Centos,比如Centos6之前的版本,並且系統上不存在timedatectl命令,則可以通過將/etc/localtime符號鏈接到/usr/share/zoneinfo目錄中的時區文件來更改時區。
查看一下/usr/share/zoninfo下面的時區文件,
[root@localhost ~]# ls /usr/share/zoneinfo/
[root@localhost ~]# ls /usr/share/zoneinfo/Asia/
現在替換時區文件。
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@localhost ~]# date
Tue Mar 31 16:53:59 CST 2020
可以看到已經切換到了CST中國標准時間
總結
在本文中,使用了兩種方式修改時區。一種是使用timedatectl,另一種方式使用創建鏈接的方式。
2. Linux查看與修改時區、時間的命令
linux查看與修改時區、時間的命令1、查看、修改linux時區與時間一、linux時區的查看與修改1,查看當前時區date
-R2,修改設置時區方法1:tzselect方法2:僅限於RedHat
linux
和
CentOStimeconfig方法3:適用於Debiandpkg-reconfigure
tzdata3,復制相應的時區文件,替換系統時區文件;或者創建鏈接文件cp
/usr/share/zoneinfo/$主時區/$次時區
/etc/localtime在中國可以使用:cp
/usr/share/zoneinfo/Asia/Shanghai
/etc/localtime二、linux時間的查看與修改1、查看時間和日期date2、設置時間和日期將系統日期設定成1996年6月10日的命令date
-s
06/22/96將系統時間設定成下午1點52分0秒的命令date
-s
13:52:003.
將當前時間和日期寫入BIOS,避免重啟後失效hwclock
-w三、定時同步時間*
*
*
*
*
/usr/sbin/ntpdate
210.72.145.44
>
/dev/null
2>&1linux中用於時鍾查看和設置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只用一個就行,只不過clock命令除了支持x86硬體體系外,還支持Alpha硬體體系。查看linux系統時間:date修改linux系統時間:date
-s
(後面跟時間)查看linux硬體時間:Java代碼
hwclock
#或
clock
#或
hwclock
–show
#或
clock
–show
修改linux硬體時間:C代碼
hwclock
–set
–date
#或
clock
–set
–date
讓系統時間與硬體時鍾同步,用:C代碼
hwclock
–hctosys
#或
clock
–hctosys
相反地,讓硬體時鍾與系統時間同步:C代碼
hwclock
–systohc
#或
clock
–systohc
讓系統時間每隔十分鍾去同步一下硬體時間。C代碼
[hqw@localhost
root]$
vi
/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
#
run-parts
01
*
*
*
*
root
run-parts
/etc/cron.hourly
02
4
*
*
*
root
run-parts
/etc/cron.daily
22
4
*
*
0
root
run-parts
/etc/cron.weekly
42
4
1
*
*
root
run-parts
/etc/cron.monthly
*/10
*
*
*
*
root
hwclock
--hctosys
#加入此行,每隔10分鍾執行一次hwclock
--hctosys
3. linux系統下,php設置時區和調用時間函數問題,伺服器是nginx.
date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亞洲/上海
date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'為「亞洲/重慶」
date_default_timezone_set('PRC');//其中PRC為「中華人民共和國」
是區分大小寫的,還需要php中關閉安全模式,或允許date_default_timezone_set執行
4. 如何將linux 的本地時間設置為utc時間
如果你的 Linux 系統時區配置不正確,必需要手動調整到正確的當地時區。NTP 對時間的同步處理只計算當地時間與 UTC 時間的偏移量,因此配置一個 NTP 對時間進行同步並不能解決時區不正確的問題。所以大家在用了國外雲計算服務商如 Microsoft Azure 或其它 VPS、虛擬機時,需要注意是否與中國大陸的時區一致。
查看Linux當前時區
你可以使用如下命令非常容易地就查看到 linux 系統的當前時區:
date
ls -l /etc/localtime
linux-time02
獲取時區TZ值
要更改 Linux 系統時區首先得獲知你所當地時區的 TZ 值,使用 tzselect 命令即可查看並選擇已安裝的時區文件。
執行 tzselect 命令
linux-time03
通過向導選擇你所在大洲、國家和城市
tzselect 最終將以 Posix TZ 格式(例如 Asia/Shanghai)輸出你所在的時區值,將此記錄下來。
linux-time03
更改每個用戶的時區
Linux 用戶一個多用戶系統,每個用戶都可以配置自己所需的時區,你可以為自己新增一個 TZ 環境變數:
export TZ='Asia/Shanghai'
執行完成之後需要重新登錄系統或刷新 ~/.bashrc 生效。
source ~/.bashrc
更改Linux系統時區
要更改 Linux 系統整個系統范圍的時區可以使用如下命令:
sudo rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注意:/usr/share/zoneinfo/Asia/Shanghai 中的具體時區請用自己獲取到的 TZ 值進行替換。
使用Systemd更改Linux系統時區
如果你使用的 Linux 系統使用 Systemd,還可以使用 timedatectl 命令來更改 Linux 系統范圍的時區。在 Systemd 下有一個名為 systemd-timedated 的系統服務負責調整系統時鍾和時區,我們可以使用 timedatectl 命令對此系統服務進行配置。
sudo timedatectl set-timezone 'Asia/Shanghai'
linux-time05
最後,如果你發現 Ubuntu 與 Windows 雙系統時間不同步,可以參考我們之前的文章說明和解決辦法。
5. linux下如何修改時區(TIMEZONE)
查看時區
cat /etc/sysconfig/clock
設置時區
tzselect
timeconfig
cat /etc/sysconfig/clock ZONE=」Asia/Shanghai」 —> /usr/share/zoneinfo 下面的文件。 UTC=false —> 硬體時鍾是否為 UTC 或者說 GMT 時鍾。 ARC=false —> 如果是在 Alpha 機器上,則設置為 true 。
把硬體時鍾設置為 UTC 的好處就是他能自動設置夏時制,缺點是,在安裝有多重操作系統啟動的機器上,在另外的操作 系統上時鍾會錯誤。
Linux 的時鍾設置文件為:/etc/localtime ,實際上這個文件是 /usr/share/zoneinfo 目錄下對應文件的符號連接。 假設我們所處的地區位於上海,那麼只要運行以下的命令就可以設置時區了。
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Linux 啟動時,其中的一個腳本(/etc/rc.d/rc.sysinit)會運行 /sbin/hwclock 程序,把當前的硬體時鍾復制為系統 時間。hwclock 假定硬體時鍾已經設置為本地時鍾,除非帶有 –utc 參數。腳本文件會讀取 /etc/sysconfig/clock 文 件的設置,因此我們不需要修改腳本,直接修改這個配置文件就可以了,根據需要把其中的 UTC 行,設置為 true 或 者 false。
設置硬體時鍾時,首先使用 date 命令(「date MMDDhhmmYYYY.ss」) 設置好系統時鍾,然後使用 「/sbin/hwclock –systohc」 把硬體時鍾設置為和當前系統時間一致。
如果你在某些應用下面的時間是錯誤的,那麼你在運行 Red Hat Linux 5.0 或 5.1,解決的辦法是建立 /usr/lib/zoneinfo 到 /usr/share/zoneinfo 的符號連接:
ln -s /usr/share/zoneinfo /usr/lib/zoneinfo
小結:時鍾設置的問題本身比較簡單,但是它涉及到幾個基本的配置文件:
/etc/rc.d/rc.sysinit /etc/sysconfig/clock /etc/localtime /usr/share/zoneinfo時區的配置文件是/etc/sysconfig/clock。用tzselect命令就可以修改這個配置文件,根據命令的提示進行修改就好了。 但是在實際工作中,發現這種方式是不能夠使得伺服器上的時間設置馬上生效的,而且使用ntpdate去同步時間伺服器也不能夠更改時間。即使你使用了date命令手工設置了時間的話,如果使用ntpdate去進行時間同步的話,時間又會被改動到原來的錯誤時區的時間。而生產的機器往往是非常重要的,不能夠進行重啟等操作。 在網上找了幾種方法試了下,發現如果要修改時區並且馬上生效,可以更換/etc/localtime 文件來實現。比如我的時區是中國上海,那麼就可以使用如下的命令來使得時區的更改生效。 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 然後最好使用下面的命令將更改寫入bios。