《Linux管理员手册(9)--Keeping Time》章节主要讨论了Linux系统如何管理和保持时间,以及如何避免相关的问题。在Linux系统中,时间管理涉及到时区、硬件时钟和软件时钟等多个方面。
时间的测量基于地球自转,即昼夜交替。正午,即太阳处于最高点的时刻,是时间测量的一个基础点。由于地球是圆的,各地正午的发生时间不同,这就引出了本地时的概念。本地时是基于地理位置的日出日落时间。
硬件时钟,是由电池供电的,即使在计算机关闭时也能继续工作。它可以被BIOS或操作系统设置。Linux内核则独立于硬件时钟,启动时会根据硬件时钟设置自己的软件时钟,之后两者就各自独立运行。Linux内核始终使用通用时间(UTC),这样简化了时区的处理,每个进程可以自行进行时区转换。
硬件时钟可以设置为本地时间或通用时间,通常推荐使用通用时间,因为它不受夏令时影响。然而,一些PC操作系统如MSDOS、Windows、OS/2默认硬件时钟为本地时间。在Linux中,若硬件时钟显示本地时间,那么在夏令时期间需要手动调整。
在Debian系统中,系统时区由/etc/localtime符号链接决定,该链接指向描述本地时区的时区数据文件,通常位于/usr/lib/zoneinfo目录下。用户可以通过设置TZ环境变量来改变个人时区,未设置时则采用系统时区。date命令用于查看和设置日期与时间,其中date -u会显示通用时间。只有root权限才能设置系统时间,而clock命令则用于同步硬件和软件时钟。
当需要调整时间时,尤其是硬件时钟,应谨慎操作,因为时间的准确性对Unix系统中的许多功能至关重要,如cron定时任务。如果时间错误,可能会导致cron尝试一次性执行多年积累的命令,虽然现代cron已能处理这种情况,但仍需小心。
在系统频繁启动的情况下,如非服务器系统,由于硬件时钟通常较为精确,软件时钟的不准确可能不会造成太大问题。若需要调整硬件时钟,最安全的方式是重启进入BIOS进行设置,以避免因更改系统时间引发的问题。如果无法通过BIOS,可以使用date和clock命令,但需注意正确的选项使用,避免造成混乱。
理解和掌握Linux系统的时间管理对于有效的系统维护至关重要。正确配置和调整时区、硬件时钟和软件时钟,能够确保系统的稳定性和各种自动化任务的正常运行。