转自:linux修改系统时间和linux查看时区、修改时区的方法 - jiu~ - 博客园
Debian的时区配置
一. 修改时区
1. 查看当前时区
命令 : "date -R"
2. 修改设置Linux服务器时区
方法 A
命令 : "tzselect"
方法 B 仅限于RedHat Linux 和 CentOS
命令 : "timeconfig"
方法 C 适用于Debian
命令 : "dpkg-reconfigure tzdata"
3. 通过/etc/profile来修改
echo "export TZ='UTC'" >> /etc/profile
source /etc/profile
4. 复制相应的时区文件,替换系统时区文件;或者创建链接文件
cp /usr/share/zoneinfo/主时区/主时区/次时区 /etc/localtime
例如:在设置中国时区使用亚洲/上海(+8)
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ln -sf /usr/share/zoneinfo/UTC /etc/localtime 设置为UTC时间
二、查看和修改Linux的时间
1. 查看时间和日期
命令 : "date"
2.设置时间和日期
例如:将系统日期设定成2009年11月3日的命令
命令 : "date -s 11/03/2009"
将系统时间设定成下午5点55分55秒的命令
命令 : "date -s 17:55:55"
3. 将当前时间和日期写入BIOS,避免重启后失效
命令 : "hwclock -w"
注:
date
不加参数可以直接看到当前日期时间
cal
不加参数可以直接看到本月月历
NTP和RTC时间同步
以上方法似乎不奏效,后来发现Debian 从 jessie 开始使用systemd来管理任务。
$ timedatectl status Local time: 五 2016-10-21 01:34:20 CST Universal time: 四 2016-10-20 17:34:20 UTC RTC time: 四 2016-10-20 17:34:20 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: no NTP synchronized: no RTC in local TZ: no DST active: n/a
$ timedatectl set-ntp true
再看状态:
$ timedatectl status Local time: 五 2016-10-21 01:36:57 CST Universal time: 四 2016-10-20 17:36:57 UTC RTC time: 四 2016-10-20 17:36:58 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: n/a
开 /etc/systemd/timesyncd.conf:
# This file is part of systemd.
# # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # See timesyncd.conf(5) for details [Time] #Servers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
加入时间更新服务器:
# This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # See timesyncd.conf(5) for details [Time] #Servers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org Servers=ntp.ubuntu.com
这样每次开机就会从ntp.ubuntu.com自动更新时间了。
参见:How to manage system services on Debian Jessie
https://blog.sleeplessbeastie.eu/2015/04/27/how-to-manage-system-services-on-debian-jessie/
查看硬件时间
# hwclock
把硬件的时间写到操作系统(如果hwclock是昨天,则此命令会把系统当前的时间改到昨天):
# hwclock --hctosys
把系统当前的时间写到硬件时钟(写到BIOS ?):这才是我们需要的
# hwclock --systohc