Presentation is loading. Please wait.

Presentation is loading. Please wait.

第2章 Linux操作系统管理基础 计算机学院 潘薇 panwei117@qq.com.

Similar presentations


Presentation on theme: "第2章 Linux操作系统管理基础 计算机学院 潘薇 panwei117@qq.com."— Presentation transcript:

1 第2章 Linux操作系统管理基础 计算机学院 潘薇

2 本章要点 2.1 系统引导、运行与系统关闭 2.2 用户及组管理命令 2.3 系统管理员与用户通信 2.4 任务自动调度
2.1 系统引导、运行与系统关闭 2.2 用户及组管理命令 2.3 系统管理员与用户通信 2.4 任务自动调度 2.5 系统性能管理

3 2.1 系统引导、运行与系统关闭

4 当计算机打开电源后,Linux系统开始了引导过程。该引导过程主要由以下步骤构成:
系统引导 当计算机打开电源后,Linux系统开始了引导过程。该引导过程主要由以下步骤构成: 从开机到自检完成进入操作系统引导 从装入系统核心程序到建立核心环境过程 从初始化程序到启动服务过程

5 2.1.1 系统引导 从开机到自检完成进入操作系统引导: 当计算机打开电源后,CPU以实模式运行BIOS自检程序。
系统引导 从开机到自检完成进入操作系统引导: 当计算机打开电源后,CPU以实模式运行BIOS自检程序。 BIOS自检程序首先在物理地址0处开始初始化中断向量。 CPU执行BIOS所带的系统初始化程序,从启动盘读取主引导记录MBR(MBR:master boot record:磁盘中的0磁道、0扇区部分代码,该代码包括系统的初始化程序加载器、分区数据表和验证码)。 在磁盘中找到系统的初始化程序加载器,则将其读到内存0000:7C00处。

6 2.1.1 系统引导 从装入系统核心程序到建立核心环境过程:
系统引导 从装入系统核心程序到建立核心环境过程: 执行磁盘中系统的初始化程序加载器,并将系统核心程序装入内存。在Linux系统中,有两种类型的引导加载器:LILO(Linux Loader)和GRUB(Grand Unified Boot Loader)。引导加载器的功能主要是把Linux内核可执行代码写入内存。 在引导加载过程中,系统将保存BIOS自检返回的系统参数,如关于内存、磁盘等信息的参数。 当内核太大时,初始进入内存的内核是经过压缩的,在进入内存后再解压。当装入系统核心程序后,Linux开始执行系统核心代码,得到CPU的控制权。

7 系统引导 从初始化程序到启动服务过程: 系统核心程序调用初始化函数init(),启动系统的初始化(init)过程。 系统运行初始化程序生成一系列的初始进程,最后读取配置文件/etc/inittab中设置的系统运行级,设置系统环境,启动各种守护进程,等待用户登录。

8 系统运行级 系统运行级是系统运行时所处的一种状态,不同的运行级在用户登录及使用上有一定的限制。通常Linux有10个运行级,如表2.1所示。

9 2.1.2 系统运行级 表2.1 系统运行级定义 运行级 描述 关电状态。 1或S 单用户状态(系统管理员状态)。 2
系统运行级 表2.1 系统运行级定义 运行级 描述 关电状态。 1或S 单用户状态(系统管理员状态)。 2 多用户状态(不输出资源),用于隔离标准操作,非服务系统。 3 多用户状态(输出资源),用于远程文件共享,为网络服务系统的标准操作系统。 4 目前为使用的运行级,管理员可以定义多用户系统状态,可以在本地设置和定义。 5 软件重启动状态。用于可维护的活动类型及运行诊断程序,也可以从另一个替换磁盘引导。 6 关闭重新启动。用于拆卸系统立即重新引导到标准状态。 A b c 当init命令请求改变运行状态a、b或c时,不杀死当前运行级上运行的进程。只在启动新进程时为其赋予新状态。 Q或Q 指示init daemon进程重读并执行inittab文件。

10 2.1.2 系统运行级 通常情况下,系统运行在多用户输出资源运行级,即:运行级为3或者5,两者区别在于3为命令行模式,5为图形界面。
系统运行级 通常情况下,系统运行在多用户输出资源运行级,即:运行级为3或者5,两者区别在于3为命令行模式,5为图形界面。 为了文件安全,会选择不输出资源和不提供任何网络服务的运行级2,2也是命令行模式。 在系统进行备份或系统出现问题而修复时,会选择运行级1。 有的操作系统版本将运行级4定义为厂家的维护模式。

11 系统运行级

12 系统运行级 系统的运行级定义及管理文件为/etc/inittab文件。该文件中有系统的默认运行级及各运行级别定义。在初始化系统时,系统的初始化程序首先需要寻找该文件来确定系统的运行级。 init文件行格式为: identifier:Run Level:Action:Command identifier为标识符; Run Level为运行级。 Action为init命令应向进程实施的动作。 Command表示要执行的Shell命令。

13 2.1.2 系统运行级 具体的动作有: respawn:启动并监视进程,若进程终止则重启它。
系统运行级 具体的动作有: respawn:启动并监视进程,若进程终止则重启它。 wait表示启动进程,在继续到下一项取得运行状态之前,等待进程结束。 once表示若进程没有执行则启动它,但不等它结束就继续下一项。 boot表示只在引导时执行该项但不等待其完成。 bootwait表示只在引导时执行该项并等待其完成。 powerfail表示当系统收到powerfailure信号时执行。 powerwait表示当系统收到powerfailure信号时执行并直到执行结束。

14 2.1.2 系统运行级 off表示若与该项相关的进程正在执行则杀死该进程,也用于注释不用的终止行。
系统运行级 off表示若与该项相关的进程正在执行则杀死该进程,也用于注释不用的终止行。 ondemand只用于a、b、c运行级,与respawn类似。 initdefault用于指出默认运行级,必须处于文件的第一行,且只列出一个运行级。 sysinit用于激活在试图访问系统控制台时需要完成的进程。会在执行boot及bootwait之前执行。 ctrlaltdel:当用户按下“Ctrl+Alt+Del”组合键时执行的操作。

15 2.1.2 系统运行级 选择运行级在系统初始化时进行,此处选择的是系统的默认运行级。
系统运行级 选择运行级在系统初始化时进行,此处选择的是系统的默认运行级。 如果在系统运行中需要改变运行级,也可以借助于命令进行选择。常用init命令或者telinit命令来选择系统的运行级。这两个命令都位于/sbin/目录下。 使用init和telinit命令可以不用修改/etc/inittab文件中的默认运行级定义而只需重新引导系统,就能改变正在运行系统的运行级。 当init和telinit命令赋予系统一个新的运行级时,则读取/etc/inittab文件并为该特定运行级执行所有的运行控制脚本。但如果/etc/inittab文件不存在,系统就只能引导成单用户模式。

16 2.1.2 系统运行级 /sbin/init命令格式为:/sbin/init n
系统运行级 /sbin/init命令格式为:/sbin/init n /sbin/telinit命令格式为:/sbin/telinit n n为选择的运行级。 用命令who–r可以查找系统的运行级,同时系统还会显示上次改变运行级的日期和时间。 $who –r run-level :44 last=S $

17 系统运行级 控制运行级运行的脚本位于目录/etc/rc.d/rc#.d目录中,其中#代表运行级。这些脚本也被称为rc Shell脚本,其主要功能是执行用于为被选运行级启动服务。 例如:初始化进程选择运行级3时,则执行/etc/rc.d/rc3.d目录中的文件。

18 2.1.2 系统运行级 目前有7个运行控制目录可供系统选择: /etc/rc.d/rc0.d /etc/rc.d/rc1.d
系统运行级 目前有7个运行控制目录可供系统选择: /etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc2.d /etc/rc.d/rc3.d /etc/rc.d/rc4.d /etc/rc.d/rc5.d /etc/rc.d/rc6.d

19 2.1.2 系统运行级 在系统引导时rcShell脚本所作的工作有: 设置计算机主机的名字和IP地址。 配置网络接口。 检查文件系统。
系统运行级 在系统引导时rcShell脚本所作的工作有: 设置计算机主机的名字和IP地址。 配置网络接口。 检查文件系统。 安装文件系统。 从/tmp目录中删除文件。 设置区域时间。 启动daemon。 启动网络服务。 启动应用。

20 系统运行级 这些文件包含启动和关闭所有与该运行级相关功能的脚本。因此,rc Shell脚本的设计目的是传递参数start和stop给系统初始化进程。 当调用一个带start参数的脚本时,该脚本以提问方式启动服务;当调用一个带stop参数的脚本时,该脚本停止服务进程。 另外还可以通过编写函数的方式,在引导或关闭过程序列中指定具体开始或停止服务的位置。

21 系统运行级 /etc/init.d目录包含操作系统为进程提供的初始化和终止脚本。在系统中可以使用这些脚本为进程传递start或stop参数。 在/etc/init.d目录中每个脚本都有一条case语句接收start或者stop变量。 例如:当需要执行文件/etc/init.d/nfs.server start时,case语句指向/etc/rc2.d/S70nfs.server。

22 系统运行级 用户自定义开机启动程序脚本/etc/rc.d/rc.local 写入该文件的命令将在系统启动时执行,不必等待登录系统再启动。

23 系统关闭 系统关机:Linux不允许直接关掉电源,必须执行关机命令,在系统完成了关闭操作之后才可以断电。只有超级用户才有权执行关机命令。 关闭系统可分为三种情形:关掉电源、不关电源只关机、重新引导。 关闭系统的命令有shutdown、halt、reboot、init

24 2.1.3 系统关闭 shutdown命令:该命令向所有的系统用户发出关闭系统的通知,默认情况下等待60秒后关闭系统。 命令格式如下:
系统关闭 shutdown命令:该命令向所有的系统用户发出关闭系统的通知,默认情况下等待60秒后关闭系统。 命令格式如下: shutdown [-f file | mesg] [-g time] [-i init-level] [-y] 其中: file:文件中包含有shutdown第一步中系统管理员发给所有终端用户的消息; time:等待关机的时间,缺省为60秒; init-level:将系统转入的运行级别。默认情况下转入0级; y:对所有的交互问题均以yes回答。 在不同系统中可能shutdown命令的路径不同,在执行该命令时需要根据具体的系统查找该命令的路径。

25 2.1.3 系统关闭 halt命令:用于立即关机。 该命令不会给系统用户发出关机通知。
系统关闭 halt命令:用于立即关机。 该命令不会给系统用户发出关机通知。 halt命令不严格执行rc关闭脚本中的规定,不是一种最佳的系统关闭方法。 命令格式:halt

26 2.1.3 系统关闭 reboot命令: 使用reboot是关闭系统并重新引导系统。
系统关闭 reboot命令: 使用reboot是关闭系统并重新引导系统。 该命令不发送关闭系统的通知给系统用户,不严格执行rc关闭脚本中的规定,也不是最佳的关机命令。 命令格式如下:reboot 如果系统添加了新的软、硬件就需要关机重新引导,用命令:reboot –r 该命令表示运行一个重新配置的脚本,装载模块目录中列出的所有设备驱动程序并创建相应的硬件节点。

27 2.1.3 系统关闭 /sbin/init命令与/etc/telinit命令
系统关闭 /sbin/init命令与/etc/telinit命令 前面已经介绍过init和telinit命令都用来修改运行级,当运行级为0时则关闭电源。 这两个命令可以互换,但telinit命令使用rc脚本删除进程,能够可靠地关闭系统。

28 2.2 用户及组管理命令

29 2.2 用户及组管理命令 用户和组管理是Linux系统管理的一部分,系统管理员通过对用户或组进行管理,实现对系统的访问控制。

30 2.2.1 用户管理信息和用户管理文件 用户管理信息 用户帐号及用户标识符(uid):是用户登录系统的凭证。用户标识符是系统赋予每个用户的唯一管理标识。 用户组帐号及组标识符(gid):用于管理用户组,是每一个用户组的唯一管理标识。 用户注释:用于提醒系统管理员与用户有关的一些信息。 用户默认Shell:用户登录后缺省的Shell类型。 用户主目录及主目录权限:用户登录后缺省进入的目录,是用户具有使用权限并受保护的主目录(家目录)。 用户密码及有效期:用户登录系统时验证的标识。在有效期内起作用。

31 2.2.1 用户管理信息和用户管理文件 在Linux系统中常用的用户管理文件有: /etc/passwd文件 /etc/shadow文件
/etc/security/shadow文件 /etc/group文件 这些文件只有系统管理员才有权限修改。

32 2.2.1 用户管理信息和用户管理文件 /etc/passwd文件是系统用户认证访问权限的第一个文件。该文件中的行格式如下:
login_name:password:uid:gid:user info: home_directory:default_shell 其中: login_name:用户帐户,可以用1~8个字符表示,区分大小写,避免使用数字开头; password:加密后的用户登录系统的密码; uid:系统指定给每个用户的唯一数值,即用户标识符,32位系统中标识符在0~60 000之间。; gid:用户组标识;

33 2.2.1 用户管理信息和用户管理文件 user info:用户注释信息(如用户身份、电话号码、特性等);
home_directory:用户的主目录(家目录); default_shell:用户登录系统时默认执行的Shell程序,通常为/bin/sh,表示执行Bourne Shell。如果是Korn Shell则用/usr/bin/ksh。如果是C Shell则用/usr/bin/csh。如果是TC Shell则用/usr/bin/tcsh(较少使用)。如果是Bash Shell则用/usr/bin/bash(Linux系统)。

34 2.2.1 用户管理信息和用户管理文件 例 /etc/passwd文件实例。 $cat /etc/passwd
root:!:0:0::/:/usr/bin/sh daemon:!:1:1::/etc: bin:!:2:2::/bin: sys:!:3:3::/usr/sys: adm:!:4:4::/var/adm: uucp:!:5:5::/usr/lib/uucp: xwen:!:251:1::/home/xwen:/usr/bin/sh ldap:*:255:1::/home/ldap:/usr/bin/sh duj:!:415:1::/home/duj:/usr/bin/sh …… $

35 2.2.1 用户管理信息和用户管理文件 在Linux系统中用/etc/shadow文件管理用户密码,该文件中的行与/etc/passwd文件中的行完全对应。该文件主要用于系统管理员修改或取消用户密码。 /etc/shadow文件中行的格式为: login_name:encrypted_password:last_change:min:max:warn:inaction:expire:reserved

36 2.2.1 用户管理信息和用户管理文件 其中: login_name:登录用户帐号;
encrypted_password:加密后的用户密码; last_change:口令上次被修改的日期距离 的天数; min:密码不可被更改的天数(距离上次修改); max:密码需要被更改的天数(距离上次修改) ; warn:密码更改期限前多少天发出警告。该警告在用户登录时发出; inaction:密码过期之后的宽限天数; expire:用户禁止登录并且其帐号不可用的绝对日期; reserved:保留区域,空白。

37 2.2.1 用户管理信息和用户管理文件 例 /etc/shadow文件实例。 $cat /etc/shadow
root:ASHFNadn:10390:0:0:::: daemon:NP:6645:::::: bin:NP:6645:::::: sys: NP:6645:::::: adm:NP:6645:::::: uucp: NP:6645:::::: xwenNP:6645::::::: ldap:*kfjkj:10255:2:45:2::: duj:MKHS*:12415:34:56:::: …… $

38 2.2.1 用户管理信息和用户管理文件 部分Linux系统版在没有用管理文件/etc/shadow管理用户密码,而用/etc/security/passwd文件管理用户密码。 /etc/security/passwd文件实例: wenxie: password = usjflgk2gk5mrn lastupdate = flags = ADMIN,NOCHECK jiexich: password = Ndkfj6k63vus flags =

39 2.2.1 用户管理信息和用户管理文件 其中: password:加密后的用户密码;
lastupdate:口令最近改变时间距离 的秒数; flags:用户使用login、passwd和su命令的约束。约束可能是一个用逗号分开的清单,如ADMIN,ADMCHG,NOCHECK或blank(默认)。

40 2.2.1 用户管理信息和用户管理文件 文件/etc/group管理用户组。 文件中的行格式为:
groupname:password:gid:user-list 其中: groupname:用户组名; password:组密码; gid:组的标识符; user-list:同组用户清单。

41 2.2.1 用户管理信息和用户管理文件 /etc/group文件实例: $cat /etc/group root::0:root0
other::1 bin::2:root,bin,daemon sys::3:root,bin,sys,adm adm::4:root,adm,daemon mail::6:root tty::7:root,tty,adm daemon::11:root,daemon sysadmin::12: admin::2000:stu01,stu02,stu03 $

42 2.2.1 用户管理信息和用户管理文件 在Linux系统中除了用/etc/group文件作为组基本管理之外,还用/etc/security/group文件配合管理组。 /etc/security/group文件实例如下: sys: admin = true adm: adms = ppadmn,ftp02 dmdusers admin = false

43 2.2.2 用户管理命令 添加用户命令: 当一个新用户需要使用系统时,系统管理员需要向系统添加一个新的用户帐号。
用户管理命令 添加用户命令: 当一个新用户需要使用系统时,系统管理员需要向系统添加一个新的用户帐号。 系统管理员用命令useradd向系统添加一个新的用户帐号,该命令格式如下: useradd [-c comment] [-d dir] [-e expire] [-f inactive] [-g group] [-G group [, group…]] [-m [-k skeldir]] [-u uid [-o]] [-s shell] login

44 2.2.2 用户管理命令 其中选项表示为: c comment:用户的注释;
用户管理命令 其中选项表示为: c comment:用户的注释; d dir:用户的主目录(用户家目录)。通常情况下,如果系统默认用户主目录为/home,新增用户的帐号为zijich,则新增用户的主目录为/home/zijich; e expire:指定登录的终止日期,该日期之后用户禁止登录; f inactive:指定在用户密码过期后允许该帐号登录的最大天数,通常是一个正整数。如果为0表示该值无效; g group表示一个已存在的组标识符,表示新增用户要加入的主要组; G group表示一个已存在的组标识符,表示新增用户要加入的附加组;

45 2.2.2 用户管理命令 m:如果新增用户的主目录不存在则创建一个用户主目录,如果已经存在则新增加的用户对其有读、写和执行权限;
用户管理命令 m:如果新增用户的主目录不存在则创建一个用户主目录,如果已经存在则新增加的用户对其有读、写和执行权限; k skeldir是一个包含有被复制到新增用户起始目录中的框架信息(如.profile文件)的目录,必须是已经存在的目录; u userid表示新增用户的标识符(uid),是0~65 535之间的一个整数。Linux系统为了更方便地管理用户,除用户名之外还给每个用户增加了用户标识符,每个用户都有一个唯一的标识符。有时将用户帐号称为系统用户的外标识符,而将uid称为系统用户的内标识符; s shell表示新增用户登录时默认的Shell; login 表示新增用户的帐号(用户名)。

46 用户管理命令 例 #useradd –c 〝Zhang Li Ming 〞-d /export/home/zhanglm –e –f 300 –g admin –m –k /usr/local/bin/skel –u 1001 –s /bin/csh zhanglm 如果新增用户在系统中已经存在,则会出现报错信息。

47 用户管理命令 删除用户命令: 如果一个用户不再使用系统时,系统管理员应该删除该用户帐号。如果用户较长一段时间不用系统,系统管理员可在此期间将用户帐号“锁住”,而不需要删除用户帐号。 删除用户帐号的命令格式如下: userdel [-rp] login 其中选项: r:表示删除用户主目录及所有的子目录; p:表示删除/etc/security/passwd文件中的密码信息。 例 删除用户zhanglm。 #userdel –r zhanglm

48 2.2.2 用户管理命令 修改用户命令: 系统管理员利用命令usermod可以修改用户相关的信息。 命令格式如下:
用户管理命令 修改用户命令: 系统管理员利用命令usermod可以修改用户相关的信息。 命令格式如下: usermod [-u uid] [-g group] [-G group [,group…]] [-d dir[-m]] [-s shell] [-c comment] [-l new_logname] [-f inactive] [-e expire] [-L lock] [-U unlock] login

49 2.2.2 用户管理命令 其中选项表示为: u uid:用户标识符; g group表示一个已存在的组标识符,表示新增用户要加入的主要组;
用户管理命令 其中选项表示为: u uid:用户标识符; g group表示一个已存在的组标识符,表示新增用户要加入的主要组; G group表示一个已存在的组标识符,表示新增用户要加入的附加组; d dir:用户的主目录; s shell表示新增用户登录时默认的Shell; c comment:用户的注释; l new_logname:修改后新的用户帐号; f inactive:设定密码过期后多少天即关闭用户帐号; e expire:指定登录的终止日期,该日期之后用户禁止登录; login:需要修改信息的用户帐号。 lock:锁定用户密码,在锁定期间用户密码不能使用; unlock:解除锁定的用户密码。

50 2.2.2 用户管理命令 创建组: 当需要建立一个新的用户组时,系统管理员需要向系统添加一个新的用户组帐号。 添加组命令的格式如下:
用户管理命令 创建组: 当需要建立一个新的用户组时,系统管理员需要向系统添加一个新的用户组帐号。 添加组命令的格式如下: groupadd [-g gid] group gid为组标识符,意义与用户标识符相似。 修改组: 通过命令groupmod修改给定组的信息。 命令格式如下: groupmod [-g gid] [-n newname] group gid为组标识符,newname为新的组账号。

51 2.2.2 用户管理命令 删除组: 用命令groupdel删除组以及/etc/group系统文件中的相关信息。 命令格式如下:
用户管理命令 删除组: 用命令groupdel删除组以及/etc/group系统文件中的相关信息。 命令格式如下: groupdel group 查看用户属于哪个组: 如果用户要查看自己属于哪个组,可以用命令:groups $groups staff $

52 2.3 系统管理员与用户通信

53 2.3 系统管理员与用户通信 当系统管理员完成管理任务时,如系统安装新软件、更改系统环境、系统重新引导等,可能对系统用户会有影响,这时系统管理员就需要将一些通知及时发送给下面的用户。所以,系统管理员与用户之间的通信也是系统管理的一部分。

54 2.3.1 系统管理员通知本机用户 系统文件/etc/motd中的内容可以在用户登录系统时显示。系统管理员对该文件有写权限。
系统管理员通知本机用户 系统文件/etc/motd中的内容可以在用户登录系统时显示。系统管理员对该文件有写权限。 文件中的内容应该及时更新,短小精练,用户登录系统时才会注意。

55 2.3.2 发送消息到系统的单个用户 利用write命令将消息发送给正在使用系统的用户: 在用户登录窗口中会显示消息。
发送消息到系统的单个用户 利用write命令将消息发送给正在使用系统的用户: 在用户登录窗口中会显示消息。 如果用户打开的窗口有多个时,就在控制窗口中显示消息。 除了系统管理员可以发送消息给指定用户之外,普通用户也可以利用该命令发送消息到指定用户。 实际上,如果发送消息和接收消息的双方同时打开write信道,该应用实现的就是双向对话。

56 2.3.2 发送消息到系统的单个用户 直接将消息发送给单个用户
发送消息到系统的单个用户 直接将消息发送给单个用户 首先由发送方输入:write username(username是接收消息的用户帐号)并回车;接着输入要发送的消息,写完后按Ctrl-D结束。 接收方的屏幕上则显示相应消息。

57 2.3.2 发送消息到系统的单个用户 例 用户wangxh发送消息给用户zhanglm。 $write zhanglm
发送消息到系统的单个用户 例 用户wangxh发送消息给用户zhanglm。 $write zhanglm This evening I’ll go to Shanghai by plane. Please send mail to me. By! Ctrl-D 在用户zhanglm的窗口中显示消息: Message from wangxh on ttyp20 at 14:00… EOF

58 2.3.2 发送消息到系统的单个用户 通过文件将消息发送给单个用户 如果要发送的消息较长,则可将消息写到一个文件中再发送。
发送消息到系统的单个用户 通过文件将消息发送给单个用户 如果要发送的消息较长,则可将消息写到一个文件中再发送。 write username<filename 例 用户wangxh发送消息给用户zhanglm。 $cat>sendfile This evening I’ll go to Shanghai by plane. Please send mail to me. By! $write zhanglm<sendfile

59 2.3.2 发送消息到系统的单个用户 在用户zhanglm的窗口中显示消息:
发送消息到系统的单个用户 在用户zhanglm的窗口中显示消息: Message from wangxh on ttyp20 at 14:00… This evening I’ll go to Shanghai by plane. Please send mail to me. By! EOF

60 2.3.3 发送消息到系统或网络中的所有用户 用wall命令同时发送消息给系统的所有用户。
发送消息到系统或网络中的所有用户 用wall命令同时发送消息给系统的所有用户。 步骤是:首先输入wall并回车;接着输入要发送的消息;写完后按Ctrl-D结束 例 $wall This evening wangxh will go to Shanghai by plane. Please send mail to him By! Ctrl-D $ 在用户的窗口中显示消息:

61 发送消息到系统或网络中的所有用户 Broadcast message from wangxh on ttyp20 at 14:00… This evening wangxh will go to Shanghai by plane. Please send mail to him. By! EOF

62 2.3.3 发送消息到系统或网络中的所有用户 用rwall命令同时发送消息给其他系统的所有用户。 步骤是:
发送消息到系统或网络中的所有用户 用rwall命令同时发送消息给其他系统的所有用户。 步骤是: 首先输入rwall hostname并回车;接着输入要发送的消息;写完后按Ctrl-D结束。 例 wangxh在主机host01中给主机host11中的用户发送消息。 $rwall host11 This evening wangxh will go to Shanghai by plane. Please send mail to him By! Ctrl-D $

63 2.3.3 发送消息到系统或网络中的所有用户 在主机host11的用户窗口中显示消息:
发送消息到系统或网络中的所有用户 在主机host11的用户窗口中显示消息: Broadcast message from host01:wangxh at 14:00… This evening wangxh will go to Shanghai by plane. Please send mail to him. By! EOF

64 2.3 用户通信——mail write、wall命令需要用户在线才能够进行,而mail支持离线通讯,一般来说,用户的邮件都放在/var/spool/mail/下面 发信: #mail test –s “testing” Hello . Cc: # 收信:mail

65 2.4 任务自动调度

66 2.4 任务自动调度 系统管理员负责系统管理任务,为了维护系统的正常运行,需要做大量周期性日常维护工作,如日志系统维护、文件系统备份、重要文件及目录的清理等。 同样,对于普通用户而言,可能有许多周期性工作需要完成。 Linux系统提供的任务自动调度功能为系统管理员和普通用户完成这些周期性的工作带来极大方便,常用于任务自动调度的工具有:cron、batch、at。

67 2.4.1 周期性间隔时间调度cron Linux是多任务操作系统。 利用系统提供的cron进程可以按一定时间自动完成任务调度。
cron进程每分钟唤醒一次(cron的最短时间间隔为1分钟),检查所有存储的crontab文件,并根据权限文件cron.allow或cron.deny决定是否执行crontab文件中的任务。

68 周期性间隔时间调度cron crontab文件分为系统crontab文件和用户crontab文件,这两类文件都由crontab工具创建和维护。 系统crontab文件是系统管理员需要自动调度的任务文件,该文件路径名为/etc/crontab 用户crontab文件是普通用户需要自动调度的任务文件,保存路径名为/var/spool/cron/username,username是用户的登录名。 系统守护进程crond(也称为cron进程)不断的检查系统crontab文件和用户crontab文件是否有改变。如果有改变,则需要更新内存中的相应内容,并按照新内容执行任务自动调度。

69 2.4.1 周期性间隔时间调度cron 如果是系统管理员,执行crontab文件不需要权限。
系统用/etc/cron.allow文件和/etc/cron.deny文件控制普通用户执行crontab文件的权限。 在cron.allow中列出的用户可以执行自己的crontab文件; 如果cron.allow文件不存在,系统会检查/etc/cron.deny文件,不在该文件中的用户可以执行自己的crontab文件。 如果cron.allow文件没有,cron.deny文件内容为空,则表示所有用户都可以使用cron; 如果cron.allow和cron.deny文件都不存在,则所有普通用户都不能执行自己的crontab文件,只有超级用户才有权执行系统的crontab文件。

70 2.4.1 周期性间隔时间调度cron crontab文件内容形式如下: #mm hh dd mm ww command (说明行)
0 2 * * * /etc/cron.d/logbak 0 3 * * 2 /usr/lib/newsyslog 0 4 * /etc/cron.d/logbak * /usr/lib/newsyslog 在该文件中的每一行都用6个字段来说明一个命令及其执行时间,前5个字段用来指定命令执行时间,依次为分(0~59)、时(0~23)、天(1~31)、月(1~12)、星期(0~6);最后一个字段为执行的命令。 字段之间用空格分隔,同一字段内以逗号“,”和短横线“-”分组,换行用“%”符号。

71 2.4.1 周期性间隔时间调度cron crontab文件实例
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin  MAILTO=root      //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/    //使用者运行的路径,这里是根目录 # run-parts 01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本 02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本 22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本 42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本

72 2.4.1 周期性间隔时间调度cron 在Linux系统中,要提供cron作业的自动调度,首先需要启动crond服务进程。
进程crond在检查命令执行时要参考crontab文件的时间戳,以重新加载最新的crontab文件。 例:查看系统中是否启动crond服务 ps –e |grep crond 如果要配置启动自动运行可使用setup工具,或者在文件/etc/rc.d/rc.local中加入一行: /sbin/service crond start

73 2.4.1 周期性间隔时间调度cron 要使修改的crontab文件内容生效,必须重新启动进程crond。
/sbin/service crond start 如果不需要crond服务或crond服务出现问题,可用如下命令关闭crond服务: /sbin/service crond stop 也可以用如下命令重新载入配置: /sbin/service crond reload

74 2.4.1 周期性间隔时间调度cron 当用户需要cron作业调度时,需要增加或修改相应的crontab文件。方法有如下两种:
vi编辑文件crontab:如果原来有cron作业在运行,为了原来的cron作业能够正常工作,首先需要备份crontab文件。 用cp命令进行两次备份,其中一份以备出错时使用,而在另一个备份文件上作增加或修改,最后用修改正确的文件去覆盖正在工作的crontab文件。 如果原来没有cron作业,则不需要拷贝crontab文件,直接编辑crontab文件则可。 对于用户的crontab文件,也只有系统管理员才能编辑,因为该文件的路径为/var/spool/cron/username,普通用户无权写该文件。

75 2.4.1 周期性间隔时间调度cron 使用crontab命令能够编辑文件crontab和修改cron作业相关的信息。
crontab [-u user] [-lre] 其中选项表示如下: u:用户名(用户帐号)。如果是为自己设置cron作业,则不需要u选项。通常是系统管理员为普通用户设置自动调度作业时需要指定用户名; l:列出当前计划书的内容(即crontab文件中需要自动调度的作业); e:编辑计划书,即编辑crontab文件内容。系统默认编辑器为vi; r:删除计划书。

76 周期性间隔时间调度cron 命令crontab使用vi编辑器对文件crontab进行编辑。编辑时需要严格按照crontab文件内容要求进行。 例 用户zhangxh需要每小时执行一次pwd命令。 #crontab –u zhangxh -e 0 * * * * pwd 例 用户zhangxh需要每星期天的8:30执行一次pwd命令。 30 8 * * 0 pwd

77 2.4.1 周期性间隔时间调度cron 同样,用crontab命令可设置cron作业,命令格式如下:
crontab [ -u user ] filename 如果是系统管理员用crontab命令为用户设置cron作业,则user为用户名(用户帐号); 如果是为自己设置cron作业,则不需要u选项。filename为需要cron自动执行的任务,可以是文件名。 例 用户zhangxh需要自动调度作业/home/zhangxh/job1,则系统管理员可用如下crontab命令设置: #crontab –u zhangxh /home/zhangxh/job1

78 2.4.1 周期性间隔时间调度cron 要检查cron作业自动运行的情况,需要查看cron的日志记录。
在默认情况下,cron的日志写在目录/var/log下。 例 查看cron日志。 #ls /var/log/cron /var/log/cron /var/log/cron1 /var/log/cron2 /var/log/cron3 当cron执行任务失败时,会给任务的拥有者发邮件通知。 如果不要放在默认目录,可在crontab文件中,在相应的作业提交行用重定向定向一个你自己指定的目录或文件。

79 2.4.1 周期性间隔时间调度cron cron是一个自动调度器,用于完成crontab文件内容的自动调度,常常会发生的故障有:
crontab内容的修改没有生效:可能是手工更改crontab文件后没有重新引导该文件。 cron作业被跳过而没有执行:注意时间区域是否有效。 某些cron作业没有执行:手工运行该命令,检查是否能够执行。用命令echo〝This is a debug test〞>/dev/console查看调度时间主控制台是否会产生显示信息,或用命令echo〝This is a debug test〞查看是否会产生一个 。

80 周期性间隔时间调度cron cron作业没有执行,Shell脚本不工作:检查Shell脚本的运行权限及Shell环境参数设置情况。 不能重新启动cron作业:只能是系统重新引导。 要彻底搞清楚cron作业没有执行的原因,建议最好查看cron日志文件。

81 在指定时间执行命令at 有些系统命令,特别是占用CPU时间长的命令。如果CPU非常繁忙,可以不立即执行,而是安排在CPU稍微空闲时再执行。 在Linux系统中,at工具可以满足这一要求。 使用at工具的作业称为at作业。 at工具使系统从标准输入或脚本文件中得到命令,而at的输出是标准输出、重定向文件或 邮件通知。

82 2.4.2 在指定时间执行命令at at命令的格式如下:
at [-q queue] [-bdlmr] [-f filename] time [date | +increment] 其中: time:执行命令的时间。时间可以是用两位数字表示的小时,用4位数字表示的小时和分钟 date:执行命令的日期。可以是某周的某一天(如Sunday、Monday、Tuesday、……),也可以是某月的某一天(1~31),也可以是today或tomorrow。 increment:增量的时间、日期,格式为+n units,n为整数,units为:minutes、hours、days、weeks、months、years。利用increment可以改变时间和日期的使用。如next month表示+1 unit(+1 month)。

83 2.4.2 在指定时间执行命令at 例 at指定的时间。 #at 0309am Dec 24 2002 #at now +1days
#at 3:09am Sunday #at 0309 tomorrow

84 2.4.2 在指定时间执行命令at 指定一个at作业:如果文件filename中包含要执行的作业,就将其安排为at作业。
#at –m 8am tomorrow<filename #at –m –f filename at作业提交后系统会为该作业分配一个作业号(job-id),提交后的at作业在作业队列中等待执行。 用命令atq或at –l按调度执行的时间序列列出系统中的作业,输出信息中最前面的数字表示作业号。

85 2.4.2 在指定时间执行命令at 例 #atq 67 2003.05.13 02:12 a 68 2003.05.15 02:12 a
输出结果中表示作业号的分别为67、68、69,最后的a表示为at作业。

86 在指定时间执行命令at 当at作业完成后,可以通过重定向方式将at作业的执行结果存到文件中,或通过 方式将作业的执行结果发给用户。 如果想取消某个at作业,可以用命令: at –d [job-id…]或atrm [job-id…] 将作业号为job-id的at作业从at作业队列中删除。 如果不送入作业号,则表示取消所有at作业。 普通用户只能取消自己的作业,超级用户可以取消所有的at作业。

87 在指定时间执行命令at 通常情况下at作业的执行不考虑系统当时的负载情况。但是从系统性能平衡考虑,最好能在系统负载较轻时安排这些作业执行。 用命令at –b或batch提交作业就能在系统负载低于一个平均值时执行该作业。 以batch提交的作业是批处理作业,其权限低于cron和at作业。 在Linux系统中文件at.allow和at.deny用于限制用户对at的访问。方法与cron.allow与cron.deny相同。

88 2.4.3 作业控制 作业(job)是用户提交给系统处理的一个任务,包括用户程序﹑数据﹑对程序运行进行控制和处理有关的信息。
作业控制 作业(job)是用户提交给系统处理的一个任务,包括用户程序﹑数据﹑对程序运行进行控制和处理有关的信息。 作业管理(job control)是指在登录到shell环境下,在单一终端下同时进行多个工作的行为管理。即是说只能管理自己终端启动的作业。 前台作业(foreground job)是指可以与用户交互的作业。 后台作业(background job)是指可以自动运行但不能与用户交互的作业,不能等待终端输入,也不能由用户使用ctrl+C终止它。

89 作业控制 任何时候,一个终端只能有一个前台作业而可以有多个后台作业,前台作业和后台作业可以互换。 作业控制包括终止一个作业、暂停一个作业、重新启动暂停作业、将后台作业切换到前台等。 以后台运行方式启动程序:在命令后加入“ &” # top & 用ctrl+z暂停当前作业并放置到后台

90 2.4.3 作业控制 用jobs指令显示用户当前的所有作业 命令格式:jobs 例 #jobs
作业控制 用jobs指令显示用户当前的所有作业 命令格式:jobs 例 #jobs [1] +Runing find /u/micael/-print>files> [2] –Suspended grep netw | nawk –f files>data & [3] –Stoped (tty input) cat>/tmp/files $ 令运行结果中最前面括号中的数字表示作业代码号,〝+〞表示现行作业,〝-〞表示前一个作业。Runing表示正运行的作业;Stoped表示已停止的作业;Suspended表示挂起的作业。

91 2.4.3 作业控制 终止后台作业的命令为kill,该命令格式如下: kill pid(pname) 其中: pid:作业相应的进程号;
作业控制 终止后台作业的命令为kill,该命令格式如下: kill pid(pname) 其中: pid:作业相应的进程号; pname:作业相应的进程名。 例 终止作业号为3的后台作业。 #kill %3 例 终止作业名为netw的后台作业。 #kill %netw

92 2.4.3 作业控制 用fg指令将后台的作业带到前台执行 命令格式:fg %pid(pname) 例 启动作业find并在前台运行。
作业控制 用fg指令将后台的作业带到前台执行 命令格式:fg %pid(pname) 例 启动作业find并在前台运行。 #fg find 用bg指令将后台暂停的作业启动后台执行 命令格式:bg %pid(pname) 例 启动作业find并在后台运行。 #bg find

93 2.5 系统性能管理

94 2.5 系统性能管理 性能管理是系统管理员的一项非常重要而繁琐的工作,关系到整个系统的硬件、软件和应用等方面的技术。
为了使系统稳定、可靠运行,系统管理员必须不断监控并调整系统的性能。 系统性能管理通过运行命令得到系统性能统计信息,对这些信息进行性能分析,提出性能策略,以性能策略为指导调整系统性能,使系统性能稳定可靠。

95 2.5.1监控进程活动信息的应用软件包Psacct
应用软件包Psacct可用于监控进程的活动情况,可提供系统命令ac、lastcomm、accton和sa。这些命令提供了详细的系统统计信息。 软件包Psacct可在Linux的网站上下载,下载之后安装并启动。 不同系统安装和启动的命令不同,例如Red hat系统的安装和启动命令为: # up2date psacct 安装成功之后,需要启动相应的psacct/acct服务。在Redhat系统上需要键入如下命令启动: # chkconfig psacct on # /etc/init.d/psacct start

96 2.5.1监控进程活动信息的应用软件包Psacct
命令ac根据系统日志文件/var/log/wtmp中的用户登录和退出记录统计用户每天总的连接时间(小时)。 命令格式如下: ac [-w wtmp] [-p] [-d] [username]… 其中选项: w:指定除文件/usr/adm/wtmp之外另外用一个文件记录用户登录和使用信息; P:此时不需要输入username,表示按每个人的总量显示输出结果; d:表示产生一份用户信息的报告,按照每天24小时进行; username:表示系统只为用户帐号为username的用户产生报告。

97 2.5.1监控进程活动信息的应用软件包Psacct
文件/usr/adm/wtmp是系统非常重要的日志文件,记录用户当天每次登录系统的信息。 命令ac根据该文件的数据进行统计。 例 统计用户zhanghl总的登录时间: $ac zhanghl total

98 2.5.1监控进程活动信息的应用软件包Psacct
例 统计用户zhanghl每天的登录时间: #ac -d zhanghl Oct 01 total Oct 02 total Oct 01 total Oct 02 total Oct 01 total Oct 02 total Today total

99 2.5.1监控进程活动信息的应用软件包Psacct
例 统计系统所有的用户总的登录时间: #ac -p lihua 12.13 yujie zhangjie liuping zhuyaj xuping weiyang total

100 2.5.1监控进程活动信息的应用软件包Psacct
在Linux系统中用lastcomm命令跟踪用户命令的执行情况,其格式如下: lastcomm [-EScesu] [-f file] [ Command ] [ Name ] [ Terminal ] 其中: E:显示进程结束的时间; S:显示进程开始的时间,本命令的缺省选项; c:显示进程所用去的cpu时间,本命令的缺省选项; e:显示进程所消耗的时间; s:显示进程所用去的系统时间(system time); u:显示进程所用去的使用者时间(user time);

101 2.5.1监控进程活动信息的应用软件包Psacct
file:读取file文件而非预设的日志文件/var/account/acct; Command:要过滤出来的执行命令名; Name:发出命令的用户名; Terminal:用户执行命令时使用的终端设备名。 缺省情况下,命令lastcomm是对系统日志文件/var/account/pacct进行统计而得出的信息。

102 2.5.1监控进程活动信息的应用软件包Psacct
例 列出lastcomm所有用户命令的信息。 #lastcomm ls root pts/ secs Thu Juy 1 10:24 grep root pts/ secs Thu Juy 1 10:25 bash F root secs Thu Juy 1 10:28 pwd stu01 pts/ secs Thu Juy 1 10:36 gcc root pts/ secs Juy 1 10:32 more root pts/ secs Thu Juy 1 10:31 df stu02 pts/ secs Thu Juy 1 10:30 mail s stu03 pts/ secs Thu Juy 1 10:29

103 2.5.1监控进程活动信息的应用软件包Psacct
第1部分表示使用过的命令名; 第2部分表示标志信息; 第3部分表示执行命令的用户名; 第4部分表示用户输入命令的终端名; 第5部分表示命令进程用去的时间(sec); 第6部分表示命令开始的时间。 如果需要统计所有在终端ttyd0上超级用户root执行的命令useradd情况信息,则可用命令: lastcomm useradd root ttyd0

104 2.5.1监控进程活动信息的应用软件包Psacct
在Linux系统中,用命令accton启动进程统计,格式如下: #accton /var/log/pacct 文件/var/log/pacct必须在accton命令之前存在,用touch命令创建,格式如下: #touch /var/log/pacct 如果要关闭进程统计,用不带参数的accton命令即可。

105 2.5.1监控进程活动信息的应用软件包Psacct
命令sa可对执行过的命令进行信息汇总。命令sa的格式如下: sa [-abcdlmr] [filename] 其中选项表示如下: filename:如果不用系统日志文件/usr/adm/wtmp为统计信息的起源,还可以用另外指定一个文件filename; a:在报告中列出全部命令; b:根据系统时间和用户时间之和与调用次数的比值对数据排序;

106 2.5.1监控进程活动信息的应用软件包Psacct
d:根据磁盘I/O次数进行排序; l:分别报告系统时间和用户时间; m:显示各用户的进程数和CPU时间; r:将排序次序变成反序。 除了信息输出外,命令sa还提供每一个用户的统计信息, 这些信息被保存在文件usracct中。

107 2.5.1监控进程活动信息的应用软件包Psacct
例 用命令sa显示各用户的进程数和CPU时间。 #sa -m root re 4.31cp 0avk root re 4.31cp 0avk alias re 0.00cp 0avk qmailp re 0.00cp 0avk 第1部分为用户名,第2部分为用户进程数,第3部分为进程所用的CPU时间(re表示以分钟计),第4部分表示用户和系统时间总和(cp表示以分钟计),第5部分表示内核使用的平均CPU时间(以1k为单位)。

108 2.5.2 收集与进程有关的统计信息 ps命令: 可用于显示正在运行的进程信息。 例 #ps –aux
收集与进程有关的统计信息 ps命令: 可用于显示正在运行的进程信息。 例 #ps –aux USER PID %CPU %MEM VSZ RSS TT STAT START TIME CMD root P3 I 10Sep 00:02:00 (swapper) root ?? I 10Sep 01:02:00 init Jak ?? S 10Sep 00:02:00 irc togle P4 R 10Sep 00:02:00 ps-uax #

109 2.5.2 收集与进程有关的统计信息 有下列进程状态: R:进程运行; S:进程睡眠,不可中断; s:进程睡眠,可中断; I:进程空闲;
收集与进程有关的统计信息 有下列进程状态: R:进程运行; S:进程睡眠,不可中断; s:进程睡眠,可中断; I:进程空闲; T:进程停止; H:进程挂起; W:进程被换出到磁盘上; >:进程超过了内存所需的软限制; +:带有一个控制终端的进程组组长; N:进程在优先级降低的情况下运行; <:进程在优先级升高的情况下运行;

110 2.5.2 收集与进程有关的统计信息 如果用ps命令显示出有很多进程都被换出到磁盘上,则应把大部分精力放在物理内存和虚拟内存的调整上;
收集与进程有关的统计信息 如果用ps命令显示出有很多进程都被换出到磁盘上,则应把大部分精力放在物理内存和虚拟内存的调整上; 如果ps命令显示结果是某个进程占用CPU时间百分比很高,则应该用nice或renice命令暂时降低该进程的优先级,推迟该进程结束的时间以使其他进程结束时间提前; 如果ps命令显示出不该存在于系统的进程,则用命令kill终止它们。

111 收集与进程有关的统计信息 命令top的功能与Windows系统中的任务管理器的功能相似,用于查看系统中的进程信息、CPU信息和内存信息,显示系统的任务列表,实现对处理器的实时状态监控。 该命令可以按CPU使用、内存使用和执行时间对任务进行排序。 命令top是一个动态显示过程,会不断刷新当前状态,更新屏幕显示内容。 如果该命令在前台执行,则会独占前台,直到用户终止该命令为止。

112 2.5.2 收集与进程有关的统计信息 该命令的格式如下:
收集与进程有关的统计信息 该命令的格式如下: top [-dqsiupSc] [-d count] [-s time] [-U username] 其中选项表示如下: d:指定每两次屏幕信息刷新之间的时间间隔。用户可以使用s交互命令来改变; q:没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行; s:在安全模式中运行,去除交互命令所带来的潜在危险; i:在交互模式下运行,支持键盘的输入和光标定位,不显示任何空闲或僵死进程; u:不必将uid转换为用户名;

113 2.5.2 收集与进程有关的统计信息 p:指定监控进程ID来仅仅监控某个进程的状态; S:指定累计模式;
收集与进程有关的统计信息 p:指定监控进程ID来仅仅监控某个进程的状态; S:指定累计模式; c:显示整个命令行而不只是显示命令名; d count:表示更新屏幕显示结果count次之后退出top命令。 s time:设置连续两次更新屏幕显示的时间间隔。 u username:表示只显示属于用户username的进程。

114 收集与进程有关的统计信息

115 2.5.2 收集与进程有关的统计信息 前5行表示整体的统计信息
收集与进程有关的统计信息 前5行表示整体的统计信息 第1行:依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载(分别表示1分钟、5分钟、15分钟前到现在的平均负载); 第2行:依次为进程总数、休眠进程数、运行进程数、僵死进程数、终止进程数; 第3行:依次为用户进程占用CPU的比例、系统进程占用CPU的比例、优先进程占用CPU的比例、闲置进程占用CPU的比例; 第4行:依次为平均可用内存空间、已用内存空间、空闲内存空间、共享内存和缓存使用内存空间; 第5行:依次为平均可用对换区容量、已用对换区容量、闲置对换区容量、高速缓存对换区容量;

116 2.5.2 收集与进程有关的统计信息 从第6行开始为各进程情况列表。 进程标识符PID 拥有进程的用户名USER 进程优先级PR
收集与进程有关的统计信息 从第6行开始为各进程情况列表。 进程标识符PID 拥有进程的用户名USER 进程优先级PR nice值(负值表示高优先级,正值表示低优先级)NI 进程使用虚拟内存总量(单位kb,VIRT=SWAP+RES )VIRT 进程使用的未被换出的物理内存大小(单位kb,RES=CODE+DATA)RES 共享内存大小(单位kb )SHR 进程状态(R:运行状态;D:不可中断睡眠状态;S:可中断睡眠状态;T:停止状态;Z:僵尸状态)S 上次更新到现在占用CPU时间百分比%CPU 进程占用物理内存百分比%MEM 进程使用的CPU时间总计(单位1/100秒)TIME+ 启动进程的命令名COMMAND

117 收集与进程有关的统计信息 命令top是一个动态显示过程,用户通过按键来不断刷新当前状态。该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。 下面是top命令执行过程中可以使用的一些交互命令: i:设置忽略闲置进程和僵死进程; k:终止一个进程。系统将提示用户输入需要终止的进程PID和需要发送给该进程的信号。一般的终止进程可以使用15信号;如果不能正常终止进程则使用信号9强制终止该进程。默认值是信号15。在安全模式中此命令被屏蔽;

118 收集与进程有关的统计信息 r:重新设置进程的优先级。系统提示用户输入需要改变优先级的进程PID以及优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10; S:切换到累计模式; s:改变两次刷新之间的延迟时间,默认值是5s(秒)。系统将提示用户输入新的时间(单位为秒:s)。如果有小数,就换算成毫秒。输入0值则系统将不断刷新。如果设置的值太小,也可能会引起不断刷新,不但来不及看清显示的情况,而且系统负载也会大大增加; c:切换显示命令名称和完整命令行; f或者F:从当前显示中添加或者删除项目;

119 2.5.2 收集与进程有关的统计信息 o或者O:改变显示项目的顺序; l:切换显示平均负载和启动时间信息; m:切换显示内存信息;
收集与进程有关的统计信息 o或者O:改变显示项目的顺序; l:切换显示平均负载和启动时间信息; m:切换显示内存信息; t:切换显示进程和CPU状态信息; M:根据驻留内存大小进行排序; P:根据CPU使用百分比大小进行排序; T:根据时间/累计时间进行排序; W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法; h或者?:显示帮助画面,给出一些简短的命令总结说明; q:退出程序。

120 收集与进程有关的统计信息 uptime命令: 显示现在的时间,自从系统引导到现在已过的时间长度,连线的用户数,过去的1、5和15分钟内所执行的平均工作数信息。 #uptime 12:23PM up 72 days, 21:06, 1 user, load average: 0.00, 0.03, 0.02 #

121 2.5.2 收集与进程有关的统计信息 w命令: 显示与“谁在系统中”有关的信息,包括CPU使用情况,注册时间、用户进程空闲时间等信息。 例
收集与进程有关的统计信息 w命令: 显示与“谁在系统中”有关的信息,包括CPU使用情况,注册时间、用户进程空闲时间等信息。 #w 12:24PM up 72 days, 21:07, 1 user, load average: 0.00, 0.02, 0.02 User tty idle JCPU PCPU what liuxm pts/ :21PM ksh #

122 2.5.2 收集与进程有关的统计信息 vmstat命令: 显示虚拟内存信息,包括调页、磁盘、内存和CPU的统计数据。 命令格式如下:
收集与进程有关的统计信息 vmstat命令: 显示虚拟内存信息,包括调页、磁盘、内存和CPU的统计数据。 命令格式如下: vmstat [-ims] [-c count] [-M core] [-N system] [-w wait] [disks] vmstat [ -fsi ] [Drives] [Interval] [Count]

123 2.5.2 收集与进程有关的统计信息 其中选项: i:表示显示自从系统启动以来每个设备的中断次数。
收集与进程有关的统计信息 其中选项: i:表示显示自从系统启动以来每个设备的中断次数。 M core:表示显示与展开core文件(默认值为/dev/komem)后得到的名字列表值对应的列表。 N system:表示从system而不是从默认值/bsd中展开名字列表。 m:显示内核内存使用情况统计信息。 s:显示与调页相关的活动的统计信息。

124 2.5.2 收集与进程有关的统计信息 例 显示进程信息、内存信息、换页信息、故障信息及CPU使用信息。 #vmstat
收集与进程有关的统计信息 例 显示进程信息、内存信息、换页信息、故障信息及CPU使用信息。 #vmstat Procs memory swap- -io- -system- ---cpu--- r b swpd free buff cache si so bi bo in cs us sy id wa st #

125 2.5.2 收集与进程有关的统计信息 下面显示与调页相关的活动的统计信息。 #vmstat -s
收集与进程有关的统计信息 下面显示与调页相关的活动的统计信息。 #vmstat -s total address trans. faults 18317 page ins page outs 0 paging space page ins 0 paging space page outs 0 total reclaims zero filled pages faults 6051 executable filled pages faults 0 pages examined by clock 0 revolutions of the clock hand 0 pages freed by the clock

126 2.5.2 收集与进程有关的统计信息 输出的是系统启动以来的统计信息。 14531 backtracks 0 lock misses
收集与进程有关的统计信息 14531 backtracks 0 lock misses 0 free frame waits 0 extend XPT waits 10764 pending I/O waits start I/Os iodones cpu context switches device interrupts 0 software interrupts 0 traps syscalls # 输出的是系统启动以来的统计信息。

127 2.5.2 收集与进程有关的统计信息 iostat命令: 命令iostat显示磁盘与CPU、终端有关的统计信息。
收集与进程有关的统计信息 iostat命令: 命令iostat显示磁盘与CPU、终端有关的统计信息。 在每次运行命令iostat时,会报告所有的统计信息。 首份统计信息为系统引导后的时间统计信息,之后的是上次以来的统计信息。 在多处理器系统上,CPU的统计信息是系统范围计算的,是所有处理器的平均值。

128 2.6 本 章 小 结 本章主要讲述了系统引导,进入系统和选择系统的运行级、用户及组管理、系统管理员与用户通信、任务自动调度和系统性能管理。


Download ppt "第2章 Linux操作系统管理基础 计算机学院 潘薇 panwei117@qq.com."

Similar presentations


Ads by Google