设置、修改Linux时区

查看/修改Linux时区和时间

在RedHat和Centos类系统中,与系统时间有关的主要三个目录或文件

1)/etc/sysconfig/clock 文件,只对 hwclock
命令有效,且只在系统启动和关闭的时候才有用(修改了其中的 UTC=true 到 UTC=false 的前后,执行 hwclock (--utc,
或 --localtime) 都没有变化,要重启系统后才生效);
在 /etc/sysconfig/clock 中 UTC=false 时,date、hwclock、hwclcok --localtime 输出的时间应该都一致,且此时 hwclock --utc是没有意义的;

在 /etc/sysconfig/clock 中 UTC=ture 时,date、hwclock 的输出是一致的,hwclock --localtime 的输出则是UTC时间;
系统关闭时会同步系统时间到硬件时钟,系统启动时会从硬件时钟读取时间更新到系统,这2个步骤都要根据 /etc/sysconfig/clock 文件中UTC的参数来设置时区转换。
2)/etc/localtime
这个文件用来设置系统的时区,将
/usr/share/zoneinfo/ 中相应文件拷贝到/etc下并重命名为 localtime 即可修改时区设置,而且这种修改对 date
命令是及时生效的。不论是 date 还是 hwclock 都会用到这个文件,会根据这个文件的时区设置来进行UTC和本地之间之间的换算。

3)/usr/share/zoneinfo/

该文件夹里面放着各个时区的脚本文件,使用时直接ln或cp使用。例如  ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  一、时区

  1. 查看当前时区
  date -R 或直接 date
  2. 修改设置时区
  方法(1)
  tzselect
  方法(2) 仅限于RedHat Linux 和 CentOS
  timeconfig
  方法(3) 适用于Debian
  dpkg-reconfigure tzdata

    方法(4)

  复制相应的时区文件,替换系统时区文件;或者创建链接文件
   cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
  在中国可以使用:
  cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    或:

    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    修改/etc/sysconfig/clock 使这个文件和/etc/localtime时区保持一致

    ZONE="Asia/Shanghai"

  二、时间

  1、查看时间和日期
  date
  2、设置时间和日期
  将系统日期设定成1996年6月10日的命令
  date -s 06/22/96
  将系统时间设定成下午1点52分0秒的命令
  date -s 13:52:00
  3. 将当前时间和日期写入BIOS,避免重启后失效
  hwclock -w
  三、定时同步时间
  * * * * * /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1

 

 在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。

  查看Linux系统时间:
date
  修改Linux系统时间:
date -s (后面跟时间)

  查看Linux硬件时间:
hwclock

clock

hwclock –show

clock –show

  修改Linux硬件时间:
hwclock –set –date

clock –set –date

  让系统时间与硬件时钟同步,用:
hwclock –hctosys

clock –hctosys

  相反地,让硬件时钟与系统时间同步:
hwclock –systohc

clock –systohc

  让系统时间每隔十分钟去同步一下硬件时间。

[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。

<think> 我们参考多个引用提供的方法,并结合Linux系统设置时区的常见实践来回答。 用户需求:将Linux系统时区设置为中国时区(中国标准时间,通常为Asia/Shanghai) 根据引用[1][2][3],我们可以总结出以下步骤: 方法一:使用符号链接(推荐) 步骤1:检查时区文件是否存在 在`/usr/share/zoneinfo/`目录下查找是否存在`Asia/Shanghai`文件(中国时区通常使用上海,尽管有时也提到北京,但标准名称是Shanghai)。 步骤2:创建符号链接 执行命令: ```bash sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ``` 这里使用`-f`选项强制覆盖现有的链接或文件。 步骤3:验证时区 使用`date`命令检查输出时间是否为中国标准时间(CST)。 方法二:通过环境变量(适用于嵌入式系统或特定环境) 编辑`/etc/profile`或用户的shell配置文件(如`.bashrc`),添加: ```bash export TZ='Asia/Shanghai' ``` 然后让配置生效:`source /etc/profile` 或重新登录。 方法三(可选):使用`timedatectl`命令(适用于systemd系统) 如果系统支持systemd,可以使用: ```bash sudo timedatectl set-timezone Asia/Shanghai ``` 注意:引用[3]中提到嵌入式系统可能采用复制时区文件并创建链接的方式,但通常使用符号链接即可。 总结:推荐使用方法一或方法三(如果有systemd)。 验证: 执行`date`命令,如果显示类似“CST”字样(中国标准时间),则设置成功。 另外,引用[1]中提到可以修改系统时区配置文件(通常是`/etc/timezone`),但现代Linux发行版可能不需要,因为创建符号链接到`/etc/localtime`是标准做法。 步骤4(可选):更新/etc/timezone文件(某些系统需要) 编辑`/etc/timezone`,将其内容修改为: ``` Asia/Shanghai ``` 结语:以上方法适用于大多数Linux发行版。 根据引用[2]和引用[3]的方法,我们提供了多种设置方式。 注意:在嵌入式系统中,如果`/usr/share/zoneinfo`目录不存在,可能需要从其他系统复制,但一般服务器和桌面系统都自带。 问题:用户可能还关心时间同步,但问题只要求设置时区设置时区后,系统时间会基于该时区显示,但硬件时钟通常是UTC,由系统转换。 相关问题: 1. 如何检查Linux系统当前的时区设置? 2. 设置时区后,系统时间不正确,如何同步网络时间? 3. 在Docker容器中如何设置时区? 4. 嵌入式Linux系统没有/usr/share/zoneinfo目录,如何设置时区? </think> ### 如何将Linux系统时区设置为中国时区 以下是将Linux系统时区设置为中国时区(Asia/Shanghai)的三种方法,参考了权威操作实践[^1][^2][^3]: #### 方法一:通过符号链接设置(推荐) ```bash # 删除现有时区链接 sudo rm -f /etc/localtime # 创建上海时区链接(中国标准时间) sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ``` **验证**:执行 `date` 命令查看输出是否包含 `CST`(中国标准时间)标记[^2]。 #### 方法二:使用 timedatectl 工具(systemd系统) ```bash # 设置时区为上海 sudo timedatectl set-timezone Asia/Shanghai # 验证设置 timedatectl | grep "Time zone" ``` **优势**:支持自动处理时区文件和配置文件更新[^1]。 #### 方法三:修改配置文件(嵌入式系统适用) 1. 复制时区文件到系统: ```bash cp -r /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ``` 2. 或在 `/etc/profile` 添加环境变量: ```bash export TZ='CST-8' # 中国标准时间UTC+8 ``` **适用场景**:资源有限的嵌入式设备[^3]。 #### 验证设置 ```bash date +"%Z %z" # 应输出 CST +0800 cat /etc/timezone # 部分系统需检查此文件 ``` > **注意事项**: > 1. 所有操作需root权限 > 2. 中国不实行夏令时,无需额外配置 > 3. 推荐优先使用方法一或二[^1][^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值