在 Linux 系统,为了使日志中的时间记录准确和 crontab 定时任务按预期设置的时间运行,而不会出现相差8小时的情况,我们需要对时区进行设置。此外还应该重启服务,例如 Cron,则使用 systemctl restart crond
命令重启。
显示当前时间
执行下面的命令会显示当前系统的时区与时间。如果时区是 UTC
,那么时间会和 Asia/Shanghai
的相差8小时。
1 | date |
设置时区
显示当前设置。
1 | timedatectl |
列出时区。
1 | timedatectl list-timezones |
设置时区为 Asia/Shanghai
。
1 | timedatectl set-timezone Asia/Shanghai |
设置时间
通常我们会选择设置网络时间同步,但如果需要将时间设为特定的时间,则可以通过替换时间并执行以下命令来完成。
1 | timedatectl set-time '2021-01-01 01:01:01' |
设置实时时钟
将实时时钟设为本地时区。
1 | timedatectl set-local-rtc 1 |
还原为默认的 UTC
时区。
1 | timedatectl set-local-rtc 0 |
设置网络时间同步
启用和禁用网络时间同步需要系统上安装 NTP,如果未安装则先用下面的命令安装。
1 | yum install ntp |
启用网络时间同步。
1 | timedatectl set-ntp true |
禁用时间同步。
1 | timedatectl set-ntp false |