Linux 管理员手册(9)_unix 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 *p;

if (buf == NULL || prev_block_size != block_size) {
free(buf);
buf = xmalloc(block_size + 1);
buf[block_size] = 1;
prev_block_size = block_size;
}
zeroes = 0;
while (fread(buf, block_size, 1, f) == 1) {
for (p = buf; *p == '\0'; )
++p;
if (p == buf+block_size)
zeroes += block_size;
}
if (zeroes > 0)
printf("%ld %s\n", zeroes, filename);
if (ferror(f)) {
errormsg(0, -1, "read failed for `%s'", filename);
return -1;
}
return 0;
}

 

时间: 2024-10-28 15:59:56

Linux 管理员手册(9)_unix linux的相关文章

Linux 管理员手册(3)_unix linux

    安装和升级系统时,需要对硬盘做很多工作.必须在硬盘上做文件系统,使文件能存在其上,并为系统不同的部分保留空间. 本章说明所有这些初始化工作.通常,一旦你建立了系统,就不必再做这些工作(除了使用软盘).如果你要增加一个新硬盘或更好地调整你的硬盘的使用,那么可能回到这一章.     管理磁盘的基本任务有: 格式化磁盘.这为磁盘进入使用做一些工作,比如检查坏扇区.(现在多数硬盘无须格式化.) 给硬盘分区,如果想用于互相不干扰的几件事.分区的一个原因是要在一个硬盘上存不同的操作系统.另一个原因是

Linux 管理员手册(2)_unix linux

    本章说明标准Linux目录树的重要部分,基于FSSTND文件系统标准.概述根据不同的目的和给定的要求将目录树分为若干分离的文件系统的一般方法.也说明一些其他方法.     背景 本章松散地基于Linux文件系统标准FSSTND版本1.2(见参考书目[Qui95]),它意图建立一个如何组织Linux系统目录树的标准.这样一个标准具有易于写或port(移植?)Linux软件.管理Linux系统的优点,因为所有东西都将在他们的一般地方.此标准没有强制所有人遵从的权威,但它有最多的Linux d

Linux 管理员手册(8)_unix linux

    硬件不肯定是可靠的    软件肯定是不可靠的    人不肯定是不可靠的    而自然肯定是可靠的     本张说明为什么.如何.何时要做备份,及如何回存备份的东西.     备份的重要 数据是有价值的.重新产生它需要你花费时间和努力,并且要花费金钱或至少伤心和眼泪,有时甚至不可能重新产生,例如一些实验结果.由于数据是一种投资,你必须保护它,并采取措施避免丢失. 丢失数据一般有4个原因:硬件失败.软件曲线.人为因素或自然灾害. 虽然现代硬件已经相当可靠,但仍可能自然损坏.存储数据最决定性的

Linux 管理员手册(4)_unix linux

    本章说明Linux的内存管理特征,即虚拟内存和磁盘缓存.描述系统管理员应该考虑的东西.工作和目的.     什么是虚拟内存? Linux支持虚拟内存, 就是使用磁盘作为RAM的扩展,使可用内存相应地有效扩大.核心把当前不用的内存块存到硬盘,腾出内存给其他目的.当原来的内容又要使用时,再读回内存.这对用户全透明:运行于Linux的程序只看到大量的可用内存而不甘心哪部分在磁盘上.当然,读写硬盘比真的内存慢(慢千倍),所以程序运行较慢.用做虚拟内存的这部分硬盘叫 对换空间. Linux可以使用

Linux 管理员手册(7)_unix linux

    本章解释如何产生新用户帐户,如何修改帐户的属性,如何删除帐户.不同的Linux系统有不同的工具实现.     什么是帐户? 当一台计算机为多人所用时,通常需要区分用户,例如,使个人文件保持个人化.即使计算机同时只为一人所用,这也很重要,如多数微机. 因此,每个用户给定一个单独的用户名,这个名字被用于登录. 用户除了名字还有更多.一个帐户是所有的文件.资源和属于这个用户的信息.这个属于暗示是银行,在一个商业系统中,每个帐户通常与一些钱有关,且这些钱依赖于用户使用系统的多少以不同的速度被花掉

Linux 管理员手册(6)_unix linux

    说明当一个用户登录和注销时发生了什么.较详细地说明后台进程的各种交互.log文件.配置文件等     通过终端登录 首先,init 确认有一个getty 程序提供给终端连接(或控制台). getty 侦听终端等候用户告知它要登录 (这通常意味着用户必然键入些什么).当它注意到一个用户,getty 输出一个欢迎信息(存在/etc/issue 中),并提示用户名,最后运行login 程序. login 作为一个参数得到用户名,并提示用户输入口令.如果正确,login 启动给此用户设置的she

Linux管理员手册(3)--存贮介质_unix linux

Linux管理员手册(3)--磁盘和其他存贮介质的使用 安装和升级系统时,需要对硬盘做很多工作.必须在硬盘上做文件系统,使文件能存在其上,并为系统不同的部分保留空间. 本章说明所有这些初始化工作.通常,一旦你建立了系统,就不必再做这些工作(除了使用软盘).如果你要增加一个新硬盘或更好地调整你的硬盘的使用,那么可能回到这一章. 管理磁盘的基本任务有: 格式化磁盘.这为磁盘进入使用做一些工作,比如检查坏扇区.(现在多数硬盘无须格式化.) 给硬盘分区,如果想用于互相不干扰的几件事.分区的一个原因是要在

Linux不完全手册(一)_unix linux

Linux简介 公元1991年8月,在千湖之国--芬兰,一个叫Linus Torvalds的年轻人对外发布了一套类似Unix的操作系统并把它命名为Linux,并把它放在芬兰最大的ftp站点上,至此,一个奇迹出现了!由于Linux从一开始就是一个遵循GPL的自由软件,具有良好的开放性,其简洁的功能.开放的结构,很快就引起了人们尤其是大专院校的学生和科研人员的注意.他们纷纷把它作为学习和研究的对象,开始进行深入的分析改造,取其精华.去其糟柏,并不断的为它增加新功能.再加上Internet的普及,短短

Linux不完全手册(二)_unix linux

Linux使用篇 安装完linux,并配置好linux的启动,那么如果在安装时你选的是启动到图形界面下的话,现在你就应该可以看到登陆的窗口了.输入你的用户名和密码,(呵呵,安装时设定的,别忘了!)就开始了你的linux之旅. 在linux下,你的确可以体验到永不死机的神话.Linux系统的确强大,在他的下面你的确不用担心莫名其妙的蓝屏.笔者使用linux以有几年,在这几年里从没发生过真正的死机,就算是偶尔的在xwindows下系统没有了响应也可以按"ctrl+alt+backspace"