23.3、时区设置

本文介绍了Linux系统中用于管理时间与日期的timedatectl命令,包括设置系统时间、时区,查看状态,以及启用或禁用NTP同步等操作。timedatectl允许用户安全地在远程主机或本地容器内执行这些操作,并提供了丰富的选项以适应不同的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

名称

timedatectl   控制系统的时间与日期,可用于查询与修改 系统时钟的各项设置。

 

用法

timedatectl [OPTIONS...] {COMMAND}
 

选项与命令

[root@mini-1 ~]# timedatectl help
timedatectl [OPTIONS...] COMMAND ...

Query or change system time and date settings.

  -h --help                Show this help message
     --version             Show package version
     --no-pager            Do not pipe output into a pager
     --no-ask-password     Do not prompt for password
  -H --host=[USER@]HOST    Operate on remote host
  -M --machine=CONTAINER   Operate on local container
     --adjust-system-clock Adjust system clock when changing local RTC mode

Commands:
  status                   Show current time settings
  set-time TIME            Set system time
  set-timezone ZONE        Set system time zone
  list-timezones           Show known time zones
  set-local-rtc BOOL       Control whether RTC is in local time
  set-ntp BOOL             Control whether NTP is enabled
[root@mini-1 ~]#

 

  • 选项

-h--help

显示简短的帮助信息并退出。

--version

显示简短的版本信息并退出。

--no-pager

不将程序的输出内容管道(pipe)给分页程序。

--no-ask-password

在执行特权操作时 不向用户索要密码。

-H--host=

操作指定的远程主机。可以仅指定一个主机名(hostname), 也可以使用 "username@hostname" 格式。 hostname 后面还可以加上 SSH监听端口(以冒号":"分隔)与容器名(以正斜线"/"分隔), 也就是形如 "hostname:port/container" 的格式, 以表示直接连接到指定主机的指定容器内。 操作将通过SSH协议进行,以确保安全。 可以通过machinectl -H HOST 命令列出远程主机上的所有容器名称。IPv6地址必须放在方括号([])内。

-M--machine=

在本地容器内执行操作。 必须明确指定容器的名称。

--adjust-system-clock

当使用 set-local-rtc 命令时, 若使用了此选项, 则表示根据RTC时间来更新系统时钟。 若未使用此选项, 则表示根据系统时钟来更新RTC时间。

 

  • 命令

status

查看现在的时间设置,timedatectl status 与 timedatectl 效果一致。

set-time 【TIME】 

设置系统时间。前提是先关闭时间同步,否则设置失败。[TIME] 是一个形如 "2012-10-30 18:17:16"的时间字符串。

设置时间:timedatectl set-time HH:MM:SS

设置日期:timedatectl set-time YYYY-MM-DD

设置日期时间:timedatectl set-time “YYYY-MM-DD HH:MM:SS”

set-timezone 【ZONE】

设置系统时区, 也就是更新 /etc/localtime 软连接的指向。 可以用下面的 list-timezones 命令列出所有可用时区。 如果RTC被设为本地时间, 此命令还会同时更新RTC时间。

list-timezones

列出所有可用时区,每行一个。 列出的值可以用作前述 set-timezone 命令的参数。

set-local-rtc 【BOOL】

设为 "no" 表示在RTC中存储UTC时间; 设为 "yes" 表示在RTC中存储本地时间。 应该尽一切可能在RTC中存储UTC时间。 尽量不要在RTC中存储本地时间, 因为这会造成一系列麻烦, 尤其是在切换时区以及调整夏令时或冬令时的时候。 注意, 除非明确使用了 --adjust-system-clock 选项, 否则此命令还会同时用系统时钟更新RTC时间。 此命令还会改变 /etc/adjtime 文件第三行的内容。

设置硬件时钟为本地时间:timedatectl set-local-rtc 1

设置硬件时钟为UTC时间:timedatectl set-local-rtc 0

set-ntp 【BOOL】

设置 NTP 同步,也是开启或关闭 NTP 或 chrony 服务。

启动NTP时间同步:timedatectl set-ntp true

禁用NTP时间同步:timedatectl set-ntp false

 

例子

查看当前系统时区

[root@mini-1 ~]# timedatectl
      Local time: Sun 2020-07-26 21:01:43 CST
  Universal time: Sun 2020-07-26 13:01:43 UTC
        RTC time: Sun 2020-07-26 13:01:43
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
[root@mini-1 ~]#

查看所有时区(以上海为例)

[root@mini-1 ~]# timedatectl list-timezones | egrep -i shanghai 
Asia/Shanghai
[root@mini-1 ~]#

设置时间注意,需要先把 ntp 同步关了

[root@mini-1 ~]# date
Sun Jul 26 16:27:06 CST 2020 
[root@mini-1 ~]# timedatectl set-time 15:00
Failed to set time: Automatic time synchronization is enabled 
[root@mini-1 ~]# timedatectl set-ntp false 
[root@mini-1 ~]# timedatectl set-time 15:00 
[root@mini-1 ~]# date
Sun Jul 26 15:00:02 CST 2020 
[root@mini-1 ~]#

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值