修改Linux debian的系统时间
1、通过命令date --R,查看系统时间,可以看到机子的系统时间虽然相同,但时区是-0900,目前中国时区是+0800
root@debian2:~# date -R
Fri, 18 Dec 2015 15:39:01 -0900
2、修改系统时区,在.bash_profile文件中增加如下配置文件,关执行source .bash_profile
TZ='Asia/Shanghai'
export TZ
3、再次通过命令date -R查到如下,可以看到时区变成+0800
root@debian2:~# date -R
Sat, 19 Dec 2015 08:43:18 +0800
4、通过date -s '2015-12-18 15:45:00' 修改时间
root@debian2:~# date -s '2015-12-18 15:45:00'
Fri Dec 18 15:45:00 CST 2015
5、再通过命令hwclock -w 写入到硬件时间
使用正确的时区对于很多系统相关的任务和进程都是基本的必要的。例如:cron 守护程序使用系统时区来执行 cron 任务,并且日志文件中的时间戳也是基于系统时区的。
在 Debian 上,系统时区在安装过程中设置,并且在后面可以很容易修改它。
本文描述如何在 Debian 10 系统上设置或者修改时区。
一、检查当前时区
timedatectl
是一个命令行工具,它允许你查看并且修改系统时间和日期。它在所有现代的基于 systemd 的 Linux 系统中都可以使用:
timedatectl
输出显示了系统的时区。在这个例子中,时区被设置成 UTC:
Local time: Fri 2020-04-03 19:23:29 UTC
Universal time: Fri 2020-04-03 19:23:29 UTC
RTC time: Fri 2020-04-03 19:23:29
Time zone: UTC (UTC, +0000)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
系统时区通过链接文件/etc/localtime
配置,该链接指向/usr/share/zoneinfo
目录下的一个二进制时区标识文件。另外一个检查时区的方法就是显示这个链接文件指向的实际路径,使用ls
命令:
ls -l /etc/localtime
lrwxrwxrwx 1 root root 23 Nov 21 23:44 /etc/localtime -> /usr/share/zoneinfo/UTC
二、在 Debian 中修改时区
在修改时区时,你将需要找到你想要使用的时区的一个很长的名字。时区通常使用"地区/城市"格式.
想要列出所有可用的时区,你可以列出/usr/share/zoneinfo
目录下的所有文件,或者运行timedatectl
命令,加上list-timezones
选项:
timedatectl list-timezones
...
America/Monterrey
America/Montevideo
America/Montserrat
America/Nassau
America/New_York
...
一旦你识别出哪一个时区能准备描述你的位置,以 root 或者其他有 sudo 权限的用户身份,运行下面的命令:
sudo timedatectl set-timezone your_time_zone
例如,想要将系统时区设置为America/Monterrey
:
sudo timedatectl set-timezone America/Monterrey
运行timedatectl
命令去验证修改:
timedatectl
Local time: Fri 2020-04-03 13:30:30 CST
Universal time: Fri 2020-04-03 19:30:30 UTC
RTC time: Fri 2020-04-03 19:30:30
Time zone: America/Monterrey (CST, -0600)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
三、通过创建一个链接来修改时区
如果你正在运行一个比较古老的 Debian 版本,并且timedatectl
在你的系统上不可用,你可以通过修改时区的链接文件/etc/localtime
到/usr/share/zoneinfo
目录下的时区文件来修改时区。
识别你想要配置的时区,并且创建一个链接文件:
sudo ln -sf /usr/share/zoneinfo/America/Monterrey /etc/localtime
通过列出/etc/localtime
文件或者触发timedatectl
或者date
命令,来验证修改:
date
Fri 03 Apr 2020 01:34:27 PM CST