Linux管理员手册(9)--Keeping Time

2016-01-29 19:08 7 1 收藏

Linux管理员手册(9)--Keeping Time,Linux管理员手册(9)--Keeping Time

【 tulaoshi.com - Linux 】

  本章说明Linux系统如何keeps time,及需要做什么来避免发生问题。通常,你无须对时间做什么,但理解它会更好。

  时区

  时间测量基于最规则的自然现象,如地球转动导致的昼夜更替。昼夜总时间是恒定的,但昼夜分别的长度是变化的。一个简单的常数是正午。

  正午是白天太阳在最高点的时间。由于地球是圆的, 不同地方正午发生在不同的时间。这引出了本地时local time的概念。

  硬件时钟和软件时钟

  个人计算机有一个电池驱动的硬件时钟。电池保证始终在计算机没电的时候依然能工作。硬件始终能从BIOS设置屏或操作系  统的别的地方进行设置。

  Linux核心独立于硬件始终跟踪时间。启动时,Linux根据硬件时钟设置自己的时钟。此后,2个始终相互独立运行。因为查看硬件始终慢而复杂,因此Linux管理自己的时钟。

  核心始终一直显示通用时间。这样,核心无须知道时区,高可靠的简单结果使更新时区信息更简单。每个进程自己处理时区转换(使用时区包部分里的标准工具)。

  硬件始终可以是本地时间或通用时间。通常用通用时间更好,因为这样你无须在夏时制开始或结束时改变硬件时钟 (UTC does not have DST)。不幸的是,有些PC操作系统,包括MSDOS、Windows、OS/2都假设硬件时钟是本地时间。 Linux可处理2种方式,但如果硬件时钟显示本地时间,那么必须在夏时制开始或结束时(否则就不能显示本地时间)。

  显示和设置时钟

  在Debian系统中,系统时区由符号连接/etc/localtime 决定。连接指向描述本地时区的时区数据文件。时区数据文件存在/usr/lib/zoneinfo 中。其他Linux distributions可能不同。

  用户可以用设置TZ环境变量来改变他的私人时区。如果不设置,就假定是系统时区。 TZ变量的语法在tzset (3)man页中说明。

  date 命令显示当前日期和时间。 例如:

  $ date
  Sun Jul 14 21:53:41 EET DST 1996
  $
  That time is Sunday, 14th of July, 1996, at about ten before ten at the evening, in the time zone called ``EET DST'' (which might be East       European Daylight Savings Time). date 也可用于显示通用时间:
  $ date -u
  Sun Jul 14 18:53:42 UTC 1996
  $
  date 也可用于设置核心的软件始终:
  # date 07142157
  Sun Jul 14 21:57:00 EET DST 1996
  # date
  Sun Jul 14 21:57:02 EET DST 1996
  #

  更详细的见date man页--syntax is a bit arcane. 只有root能设置时间。虽然每个用户可以有自己的时区,但时钟对每个人都是一样的。

  date 只显示或设置软件时钟。 clock 命令同步硬件和软件时钟。用于系统启动时读取硬件时钟和设置软件时钟。如果两个时钟都需要设置,则先用date 设置软件时钟,然后用clock -w 设置硬件时钟。

  clock 的-u告诉它硬件时钟是通用时间。 必须正确使用-u选项。否则计算机将困惑到底是什么时间。

  时钟必须小心改变。Unix系统的许多部分要求时钟工作正常。例如, cron 守侯程序周期地运行命令。如果改变时钟,它可能迷惑它是否该运行命令。 On one early Unix system, someone set the clock twenty years into the future, and cron wanted to run all the periodic commands for twenty years all at once. 现在版本的cron 可以正确处理,但仍然要小心。大的前后跳跃比小的更危险。

  当时钟错误时

  Linux软件时钟不会始终精确。 PC硬件产生的时间中断周期地运行软件时钟。如果系统运行了太多进程,服务于时间中断需要花费太多的时间,软件时钟启动靠后。硬件时钟独立运行并通常更精确。如果你的系统经常启动(比如不是服务器的多数系统),那么通常时间很精确。

  如果需要调整硬件时钟,通常最简单的是重启动,进入BIOS设定屏幕,并在那里完成。这避免了改变系统时间可能导致的所有问题。如果不能通过BIOS,用date 和clock 设定新时间(以此顺序),但如果系统有部分工作不正常,必须准备重启动。

  连网的计算机(即使是通过modem)能通过与其他计算机时间比较来自动检查自己的时钟。如果知道保持很精确时间的其他计算机,那么2台计算机都将保持精确的时间。这可以使用rdate 和netdate 命令来完成。 2个命令都检查远程的计算机(netdate 可处理多台远程计算机),来同步本地计算机的时间。有规律地运行这样一个程序,你的计算机就可以保持与远程计算机一样精确的时间。

  测量孔(Measuring Holes)

  本附录包括用于测量文件系统中潜在的孔的程序的有趣的部分。 The source distribution of the book contains the full source code(sag/measure-holes/measure-holes.c).

  int process(FILE *f, char *filename) {
  static char *buf = NULL;
  static long prev_block_size = -1;
  long zeroes;
  char *

来源:http://www.tulaoshi.com/n/20160129/1508524.html

延伸阅读
硬件不肯定是可靠的 软件肯定是不可靠的 人不肯定是不可靠的 而自然肯定是可靠的 本张说明为什么、如何、何时要做备份,及如何回存备份的东西。 备份的重要 数据是有价值的。重新产生它需要你花费时间和努力,并且要花费金钱或至少伤心和眼泪,有时甚至不可能重新产生,例如一些实验结果。由于数据是一种...
  本章说明Linux的内存管理特征,即虚拟内存和磁盘缓存。描述系统管理员应该考虑的东西、工作和目的。 什么是虚拟内存? Linux支持虚拟内存, 就是使用磁盘作为RAM的扩展,使可用内存相应地有效扩大。核心把当前不用的内存块存到硬盘,腾出内存给其他目的。当原来的内容又要使用时,再读回内存。这对用户全透明:运行于Linux的...
  硬件不肯定是可靠的 软件肯定是不可靠的 人不肯定是不可靠的 而自然肯定是可靠的 本张说明为什么、如何、何时要做备份,及如何回存备份的东西。 备份的重要 数据是有价值的。重新产生它需要你花费时间和努力,并且要花费金钱或至少伤心和眼泪,有时甚至不可能重新产生,例如一些实验结果。由于数据是...
  本章解释如何产生新用户帐户,如何修改帐户的属性,如何删除帐户。不同的Linux系统有不同的工具实现。 什么是帐户? 当一台计算机为多人所用时,通常需要区分用户,例如,使个人文件保持个人化。即使计算机同时只为一人所用,这也很重要,如多数微机。 因此,每个用户给定一个单独的用户名,这个名字被用于登录。 用户...
  Linux管理员手册(3)--磁盘和其他存贮介质的使用 安装和升级系统时,需要对硬盘做很多工作。必须在硬盘上做文件系统,使文件能存在其上,并为系统不同的部分保留空间。 本章说明所有这些初始化工作。通常,一旦你建立了系统,就不必再做这些工作(除了使用软盘)。如果你要增加一个新硬盘或更好地调整你的硬盘的使用,那么可能回...

经验教程

482

收藏

8
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部