版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章Linux操作系统管理基础2.1系统引导、运行与系统关闭2.1.1系统引导当计算机打开电源后,Linux系统开始了引导过程。该引导过程主要由以下步骤构成:从开机到自检完成进入操作系统引导当计算机打开电源后,CPU以实模式运行BIOS自检程序。BIOS自检程序首先在物理地址0处开始初始化中断向量,将中断处理程序的各个中断向量装入到内存的低1024个字节单元。CPU执行类型为19H的初始引导中断程序,执行BIOS所带的系统初始化程序,从启动盘读取并将操作系统的引导程序Bootsect.S加载到内存。Bootsect.S程序按照CMOS中预先设置的启动盘启动顺序查找相应盘的主引导记录MBR(MBR:masterbootrecord:磁盘中的0磁道、0扇区部分代码,该代码包括系统的初始化程序加载器、分区数据表和验证码)。在磁盘中找到系统的初始化程序加载器,则将其读到内存0000:7C00处。2.1系统引导、运行与系统关闭从装入系统核心程序到建立核心环境过程执行磁盘中系统的初始化程序加载器,并将系统核心程序装入内存。在Linux系统中,有两种类型的引导加载器:LILO(LinuxLoader)和GRUB(GrandUnifiedBootLoader)。LILO是最老的Linux引导加载器,使所有Linux发行版的标准组件。GRUB来源于GNU支持,是一种新的引导加载器。除GRUB具有交互命令界面、支持网络引导外,这两种加载器没有本质上的区别。
2.1系统引导、运行与系统关闭从初始化程序到启动服务过程系统核心程序调用初始化函数init(),启动系统的初始化(init)过程。系统运行初始化程序生成一系列的初始进程,最后读取配置文件/etc/inittab中设置的系统运行级,设置系统环境,启动各种守护进程,等待用户登录。从系统的引导过程可见,三个汇编程序:Bootsect.S、setup.s和video.s的发挥了很大的作用;19H号中断也称为磁盘自举中断或者重引导中断(rebootinterrupt)。在Linux系统的正常使用中,如果按下Ctrl+Alt+Del键,系统就会执行19H号中断,重新引导系统。2.1系统引导、运行与系统关闭2.1.2系统运行级1.运行级系统运行级是系统运行时所处的一种状态,不同的运行级在用户登录及使用上有一定的限制。通常Linux有10个运行级,如表2.1所示。2.1系统引导、运行与系统关闭表2.1系统运行级定义运行级描述0关电状态。1或S单用户状态(系统管理员状态)。2多用户状态(不输出资源),用于隔离标准操作,非服务系统。3多用户状态(输出资源),用于远程文件共享,为网络服务系统的标准操作系统。4目前为使用的运行级,管理员可以定义多用户系统状态,可以在本地设置和定义。5软件重启动状态。用于可维护的活动类型及运行诊断程序,也可以从另一个替换磁盘引导。6关闭重新启动。用于拆卸系统立即重新引导到标准状态。Abc当init命令请求改变运行状态a、b或c时,不杀死当前运行级上运行的进程。只在启动新进程时为其赋予新状态。Q或Q指示initdaemon进程重读并执行inittab文件。2.1系统引导、运行与系统关闭通常情况下,系统运行在多用户输出资源运行级,即:运行级为3。为了文件安全,会选择不输出资源和不提供任何网络服务的运行级2。在系统进行备份或系统出现问题而修复时,会选择运行级1。有的操作系统版本将运行级4定义为厂家的维护模式。2.1系统引导、运行与系统关闭在文件中:wait表示启动进程,在继续到下一项取得运行状态之前,等待进程结束。once表示若进程没有执行则启动它,但不等它结束就继续下一项。boot表示只在引导时执行该项但不等待其完成。bootwait表示只在引导时执行该项并等待其完成。powerfail表示当系统收到powerfailure信号时执行。powerwait表示当系统收到powerfailure信号时执行并直到执行结束。off表示若与该项相关的进程正在执行则杀死该进程,也用于注释不用的终止行。2.1系统引导、运行与系统关闭3.选择运行级选择运行级在系统初始化时进行,此处选择的是系统的默认运行级。如果在系统运行中需要改变运行级,也可以借助于命令进行选择。常用/sbin/init命令或/etc/telinit命令来寻则系统的运行级。使用/sbin/init命令或/etc/telinit命令可以不用修改/etc/inittab文件中的默认运行级定义而只需重新引导系统,就能改变正在运行系统的运行级。当/sbin/init命令或/etc/telinit命令赋予系统一个新的运行级时,则读取/etc/inittab文件并为该特定运行级执行所有的运行控制脚本。但如果/etc/inittab文件不存在,系统就只能引导成单用户模式。2.1系统引导、运行与系统关闭5.运行控制目录控制运行级运行的脚本位于目录/etc/rc.d/rc#.d目录中,其中#代表运行级。这些脚本也被称为RCShell脚本,其主要功能是执行用于为被选运行级启动服务。2.1系统引导、运行与系统关闭在系统引导时rcShell脚本所作的工作有:设置计算机主机的名字和IP地址。配置网络接口。检查文件系统。安装文件系统。从/tmp目录中删除文件。设置区域时间。启动daemon。启动网络服务。启动应用。2.1系统引导、运行与系统关闭例如:初始化进程选择运行级3时,则执行/etc/rc.d/rc3.d目录中的文件。这些文件包含启动和关闭所有与该运行级相关功能的脚本。因此,rcShell脚本的设计目的是传递参数start和stop给系统初始化进程。当调用一个带start参数的脚本时,该脚本以提问方式启动服务;当调用一个带stop参数的脚本时,该脚本停止服务进程。另外还可以通过编写函数的方式,在引导或关闭过程序列中指定具体开始或停止服务的位置。2.1系统引导、运行与系统关闭目前有7个运行控制目录可供系统选择:(1)/etc/rc.d/rc0.d用于停止系统的脚本。(2)/etc/rc.d/rc1.d用于单用户或维护方式的脚本。(3)/etc/rc.d/rc2.d进入多用户模式的脚本。(3)/etc/rc.d/rc3.d用于启动网络文件共享服务的多用户模式的脚本。(4)/etc/rc.d/rc4.d用于厂商提供的系统维护模式的脚本。(6)/etc/rc.d/rc5.d由用户定义,系统未用。(7)/etc/rc.d/rc6.d用于重引导系统的脚本。2.1系统引导、运行与系统关闭6./etc/init.d目录该目录包含操作系统为进程提供的初始化和终止脚本。在系统中可以使用这些脚本为进程传递start或stop参数。下面是/etc/init.d目录的一个实例。ANNOUNCEautoinstallinetsvcrpcsyslog.origMOUNTFSYSbuildmnttablpsendmailufs_quotaCronstandardmountsREADMEdevvlinkssyssetupvolmgtdrvconfignfs.clientnfs.serversysid.sysacctinetinitrootuser syslogperfaudit在/etc/init.d目录中每个脚本都有一条case语句接收start或者stop变量。例如当需要执行文件/etc/init.d/nfs.serverstart时,case语句指向/etc/rc2.d/S70nfs.server。2.1系统引导、运行与系统关闭如果需要忽略引导进程,则不会出现okPROM,要使用特定功能健Stop-A;如果需要进入系统监控程序,则出现监控提示符“>”后输入n得到ok提示符;如果系统引导信息存放在文件/var/adm/messages中,要查看引导消息,则可以用命令:/usr/sbin/dmesg或more/var/adm/messages而不要直接打开文件/var/adm/messages进行查看。2.1系统引导、运行与系统关闭2.1.3系统关闭1.系统关机Linux不允许直接关掉电源,必须执行关机命令,在系统完成了关闭操作之后才可以断电。只有超级用户才有权执行关机命令。关闭系统可分为三种情形:关掉电源、不关电源年只关机、重新引导。关闭系统的命令有shutdown、halt、reboot、init、telinit2.1系统引导、运行与系统关闭3.halt命令halt命令用于立即关机。该命令不会给系统用户发出关机通知。halt命令不严格执行rc关闭脚本中的规定,不是一种最佳的系统关闭方法。命令格式:#halt2.1系统引导、运行与系统关闭4.reboot命令使用reboot是关闭系统并重新引导系统。该命令不发送关闭系统的通知给系统用户,不严格执行rc关闭脚本中的规定,也不是最佳的关机命令。命令格式如下:#reboot如果系统添加了新的软、硬件就需要关机重新引导,用命令:reboot–r该命令表示运行一个重新配置的脚本,装载模块目录中列出的所有设备驱动程序并创建相应的硬件节点。2.2用户及组管理命令用户和组管理是Linux系统管理的一部分,系统管理员通过对用户或组进行管理,实现对系统的访问控制。2.2用户及组管理命令2.2.1用户管理信息和用户管理文件1.用户管理信息用户帐号(用户名)及用户标识符(uid):在第1章中已经介绍过用户帐号,是用户登录系统的凭证。用户标识符是系统赋予每个用户的唯一管理标识。用户组帐号及组标识符(gid):与用户帐号和用户标识符一样,用户组帐号及组标识符用户管理用户组,是每一个用户组的唯一管理标识。用户注释:用于提醒系统管理员与用户有关的一些信息。用户默认Shell:用户登录后缺省的Shell类型。用户主目录及主目录权限:用户登录后缺省进入的目录,是用户具有使用权限并受保护的主目录(家目录)。用户密码及有效期:用户登录系统时验证的标识。在有效期内起作用。2.2用户及组管理命令2.用户管理文件在Linux系统中常用的用户管理文件有:/etc/passwd文件/etc/shadow文件/etc/security/shadow文件/etc/group文件这些文件只有系统管理员才有权限修改。2.2用户及组管理命令userinfo:用户注释信息(如用户身份、电话号码、特性等);home_directory:用户的主目录(家目录);default_shell:用户登录系统时默认执行的Shell程序,通常为/bin/sh,表示执行BourneShell。如果是KornShell则用/usr/bin/ksh。如果是CShell则用/usr/bin/csh。如果是TCShell则用/usr/bin/tcsh(较少使用)。如果是BashShell则用/usr/bin/bash(Linux系统)。2.2用户及组管理命令例/etc/passwd文件实例。$cat/etc/passwdroot:!:0:0::/:/usr/bin/shdaemon:!:1:1::/etc:bin:!:2:2::/bin:sys:!:3:3::/usr/sys:adm:!:4:4::/var/adm:uucp:!:5:5::/usr/lib/uucp:blademan:!:246:1::/home/blademan:/usr/bin/shlmy:!:249:1::/home/lmy:/usr/bin/shxwen:!:251:1::/home/xwen:/usr/bin/shimnadm:*:254:201::/home/imnadm:/usr/bin/shldap:*:255:1::/home/ldap:/usr/bin/shduj:!:415:1::/home/duj:/usr/bin/sh……$2.2用户及组管理命令2./etc/shadow文件在Linux系统中用/etc/shadow文件管理用户密码,该文件中的行与/etc/passwd文件中的行完全对应。该文件主要用于系统管理员修改或取消用户密码。/etc/shadow文件中行的格式为:login_name:encrypted_password:last_change:min:max:warn:inaction:expire:reserved2.2用户及组管理命令其中:login_name:登录用户帐号;encrypted_password:加密后的用户密码;last_change:口令上次被修改的日期距离1970.1.1的天数;min:要求口令被更改的最小间隔天数;max:口令有效的最大天数;warn:口令到期前多少天发出警告。该警告在用户登录时发出;inaction:至登录前某个帐号不活跃的天数;expire:用户禁止登录并且其帐号不可用的绝对日期;reserved:保留区域,空白。2.2用户及组管理命令例/etc/shadow文件实例。$cat/etc/shadowroot:ASHFNadn:10390:0:0::::daemon:NP:6645::::::bin:NP:6645::::::sys:NP:6645::::::adm:NP:6645::::::uucp:NP:6645::::::blademan:NP:6645::::::lmy:NP:6645::::::xwenNP:6645:::::::imnadm:*ASK*:9807:76:23:12:40::ldap:*kfjkj:10255:2:45:2:::duj:MKHS*:12415:34:56::::……$2.2用户及组管理命令3./etc/security/passwd文件部分Linux系统版在没有用管理文件/etc/shadow管理用户密码,而用/etc/security/passwd文件管理用户密码。/etc/security/passwd文件实例:wenxie:password=usjflgk2gk5mrnlastupdate=901274567flags=ADMIN,NOCHECKjiexich:password=Ndkfj6k63vuslastupdate=901274567flags=2.2用户及组管理命令其中:password:加密后的用户密码;lastupdate:口令最近改变时间距离1970.1.1的秒数;flags:用户使用login、passwd和su命令的约束。约束可能是一个用逗号分开的清单,如ADMIN,ADMCHG,NOCHECK或blank(默认)。2.2用户及组管理命令4./etc/group文件文件/etc/group管理用户组。文件中的行格式为:groupname:password:gid:user-list其中:groupname:用户组名;password:组密码;gid:组的标识符;user-list:同组用户清单。2.2用户及组管理命令/etc/group文件实例:root::0:root0other::1bin::2:root,bin,daemonsys::3:root,bin,sys,admadm::4:root,adm,daemonuucp::5:root,uucpmail::6:roottty::7:root,tty,admlp::8:root,lp,admnuucp::9:root,nuucpstaff::10:daemon::11:root,daemonsysadmin::12:admin::2000:stu01,stu02,stu03nobody::60001:noaccess::60002:$2.2用户及组管理命令5./etc/security/group文件在Linux系统中除了用/etc/group文件作为组基本管理之外,还用/etc/security/group文件配合管理组。/etc/security/group文件实例如下:sys:admin=trueadm:admin=trueadms=ppadmn,ftp02dmdusersadmin=false2.2用户及组管理命令其中:admin:可能值为:true表示将该组设为系统管理组,只有超级用户可以更改它;false表示定义标准用户组,该组可被超级用户和该组所列出的其他用户更改。默认值为false。adms:组为可执行系统管理任务的用户。2.2用户及组管理命令2.2.2用户管理命令1.添加用户命令当一个新用户需要使用系统时,系统管理员需要向系统添加一个新的用户帐号。系统管理员用命令useradd向系统添加一个新的用户帐号,该命令格式如下:useradd[-ccomment][-ddir][-eexpire][-finactive][-ggroup][-Ggroup[,group…]][-m[-kskeldir]][-uuid[-o]][-sshell]login2.2用户及组管理命令其中选项表示为:ccomment:用户的注释;ddir:用户的主目录(用户家目录)。通常情况下,如果系统默认用户主目录为/export/home,新增用户的帐号为zijich,则新增用户的主目录为/export/home/zijich;eexpire:指定登录的终止日期,该日期之后用户禁止登录;finactive:指定在用户密码过期后允许该帐号登录的最大天数,通常是一个正整数。如果为0表示该值无效;ggroup表示一个已存在的组标识符,表示新增用户要加入的主要组;Ggroup表示一个已存在的组标识符,表示新增用户要加入的附加组;2.2用户及组管理命令m:如果新增用户的主目录不存在则创建一个用户主目录,如果已经存在则新增加的用户对其有读、写和执行权限;kskeldir是一个包含有被复制到新增用户起始目录中的框架信息(如.profile文件)的目录,必须是已经存在的目录;uuserid表示新增用户的标识符(uid),是0~65535之间的一个整数。Linux系统为了更方便地管理用户,除用户名之外还给每个用户增加了用户标识符,每个用户都有一个唯一的标识符。有时将用户帐号称为系统用户的外标识符,而将uid称为系统用户的内标识符;sshell表示新增用户登录时默认的Shell;login表示新增用户的帐号(用户名)。2.2用户及组管理命令例#useradd–c〝ZhangLiMing87653421〞-d/export/home/zhanglm–e089823–f300–gadmin–m–k/usr/local/bin/skel–u1001–s/bin/cshzhanglm如果新增用户在系统中已经存在,则会出现报错信息。例#mkuserhome=/home/zhanglmshell=/usr/bin/cshgroup=staff,printqsu=falsezhanglm2.2用户及组管理命令2.删除用户命令如果一个用户不再使用系统时,系统管理员应该删除该用户帐号。如果用户较长一段时间不用系统,系统管理员可在此期间将用户帐号“锁住”,而不需要删除用户帐号。删除用户帐号的命令格式如下:userdel[-rp]login(有的系统用命令rmuser[-rp]login)其中选项:r:表示删除用户主目录及所有的子目录;p:表示删除/etc/security/passwd文件中的密码信息。2.2用户及组管理命令例删除用户zhanglm。#userdel–rzhanglm或用命令:#rmuser–rzhanglm2.2用户及组管理命令3.修改用户命令系统管理员利用命令usermod可以修改用户相关的信息。命令格式如下:usermod[-uuid][-ggroup][-Ggroup[,group…]][-ddir[-m]][-sshell][-ccomment][-lnew_logname][-finactive][-eexpire][-Llock][-Uunlock]login2.2用户及组管理命令其中选项表示为:uuid:用户标识符;ggroup表示一个已存在的组标识符,表示新增用户要加入的主要组;Ggroup表示一个已存在的组标识符,表示新增用户要加入的附加组;ddir:用户的主目录;sshell表示新增用户登录时默认的Shell;ccomment:用户的注释;lnew_logname:修改后新的用户帐号;finactive:设定密码过期后多少天即关闭用户帐号;eexpire:指定登录的终止日期,该日期之后用户禁止登录;login:需要修改信息的用户帐号。lock:锁定用户密码,在锁定期间用户密码不能使用;unlock:解除锁定的用户密码。2.2用户及组管理命令4.组命令(1)创建组当需要建立一个新的用户组时,系统管理员需要向系统添加一个新的用户组帐号。添加组命令的格式如下:groupadd[-ggid]groupgid为组标识符,意义与用户标识符相似。(2)修改组通过命令groupmod修改给定组的信息。命令格式如下:groupmod[-ggid][-nnewname]groupgid为组标识符,newname为新的组账号。2.2用户及组管理命令(3)删除组用命令groupdel删除组以及/etc/group系统文件中的相关信息。命令格式如下:groupdelgroup(4)查看用户属于哪个组如果用户要查看自己属于哪个组,可以用命令:groups$groupsstaff$2.3系统管理员与用户通信当系统管理员完成管理任务时,如系统安装新软件、更改系统环境、系统重新引导等,可能对系统用户会有影响,这时系统管理员就需要将一些通知及时发送给下面的用户。所以,系统管理员与用户之间的通信也是系统管理的一部分。2.3系统管理员与用户通信2.3.1系统管理员通知本机用户系统文件/etc/motd中的内容可以在用户登录系统时显示。系统管理员对该文件有写权限。文件中的内容应该及时更新,短小精练,用户登录系统时才会注意。2.3系统管理员与用户通信2.3.2发送消息到系统的单个用户利用write命令将消息发送给正在使用系统的用户。在用户登录窗口中会显示消息。如果用户打开的窗口有多个时,就在控制窗口中显示消息。除了系统管理员可以发送消息给指定用户之外,普通用户也可以利用该命令发送消息到指定用户。实际上,如果发送消息和接收消息的双方同时打开write信道,该应用实现的就是双向对话。2.3系统管理员与用户通信1.直接将消息发送给单个用户首先由发送方输入:writeusername(username是接收消息的用户帐号)并回车;接着输入要发送的消息,写完后按Ctrl-D结束。接收方的屏幕上则显示相应消息。例用户wangxh发送消息给用户zhanglm。$writezhanglmThiseveningI’llgotoShanghaibyplane.Pleasesendmailtome.By!Ctrl-D$2.3系统管理员与用户通信在用户zhanglm的窗口中显示消息:Messagefromwangxhonttyp20at14:00…ThiseveningI’llgotoShanghaibyplane.Pleasesendmailtome.By!EOF2.3系统管理员与用户通信2.通过文件将消息发送给单个用户如果要发送的消息较长,则可将消息写到一个文件中再发送。writeusername<例用户wangxh发送消息给用户zhanglm。$cat>sendfileThiseveningI’llgotoShanghaibyplane.Pleasesendmailtome.By!$writezhanglm<sendfile$2.3系统管理员与用户通信在用户zhanglm的窗口中显示消息:Messagefromwangxhonttyp20at14:00…ThiseveningI’llgotoShanghaibyplane.Pleasesendmailtome.By!EOF2.3系统管理员与用户通信2.3.3发送消息到系统或网络中的所有用户使用wall命令同时发送消息给系统的所有用户。步骤是:
首先输入wall并回车;接着输入要发送的消息;写完后按Ctrl-D结束。例$wallThiseveningwangxhwillgotoShanghaibyplane.PleasesendmailtohimBy!Ctrl-D$在用户的窗口中显示消息:2.3系统管理员与用户通信Broadcastmessagefromwangxhonttyp20at14:00…ThiseveningwangxhwillgotoShanghaibyplane.Pleasesendmailtohim.By!EOF2.3系统管理员与用户通信2.用rwall命令同时发送消息给其他系统的所有用户。步骤是:首先输入rwallhostname并回车;接着输入要发送的消息;写完后按Ctrl-D结束。例wangxh在主机host01中给主机host11中的用户发送消息。$rwallhost11ThiseveningwangxhwillgotoShanghaibyplane.PleasesendmailtohimBy!Ctrl-D$2.3系统管理员与用户通信在主机host11的用户窗口中显示消息:Broadcastmessagefromhost01:wangxhat14:00…ThiseveningwangxhwillgotoShanghaibyplane.Pleasesendmailtohim.By!EOF2.4任务自动调度系统管理员负责系统管理任务,为了维护系统的正常运行,需要做大量周期性日常维护工作,如日志系统维护、文件系统备份、重要文件及目录的清理等。同样,对于普通用户而言,可能有许多周期性工作需要完成。Linux系统提供的任务自动调度功能为系统管理员和普通用户完成这些周期性的工作带来极大方便,常用于任务自动调度的工具有:cron、batch、at。2.4任务自动调度2.4.1周期性间隔时间调度cronLinux是多任务操作系统。利用系统提供的cron进程可以按一定时间自动完成任务调度。cron进程每分钟唤醒一次(cron的最短时间间隔为1分钟),检查所有存储的crontab文件,并根据权限文件cron.allow或cron.deny决定是否执行crontab文件中的任务。2.4任务自动调度1.crontab文件crontab文件分为系统crontab文件和用户crontab文件,这两类文件都由crontab工具创建和维护。系统crontab文件是系统管理员需要自动调度的任务文件,该文件路径名为/etc/crontab(或/usr/lib/crontab)。用户crontab文件是普通用户需要自动调度的任务文件,该文件路径名为/usr/spool/cron/cron/username,username为用户的登录账号。系统守护进程crond(也称为cron进程)不断的检查系统crontab文件和用户crontab文件是否有改变。如果有改变,则需要更新内存中的相应内容,并按照新内容执行任务自动调度。2.4任务自动调度2.执行crontab文件的权限如果是系统管理员,执行crontab文件不需要权限。如果是普通用户,执行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文件。2.4任务自动调度3.crontab文件crontab文件内容形式如下:#mmhhddmmwwcommand(说明行)02***/etc/cron.d/logbak03**2/usr/lib/newsyslog04*35/etc/cron.d/logbak0546*/usr/lib/newsyslog在该文件中的每一行都用6个字段来说明一个命令及其执行时间,前5个字段用来指定命令执行时间,依次为分(0~59)、时(0~23)、天(1~31)、月(1~12)、星期(0~6);最后一个字段为执行的命令。字段之间用空格分隔,同一字段内以逗号“,”和短横线“-”分组,换行用“%”符号。如:02**1,3/etc/cron.d/logbak表示在每星期一和星期三的二时自动执行/etc/cron.d/logbak程序。2.4任务自动调度要使修改的crontab文件内容生效,必须重新启动进程cron。进程cron在检查命令执行时要参考crontab文件的时间戳,以重新加载最新的crontab文件。2.4任务自动调度4.cron进程服务在Linux系统中,要提供cron作业的自动调度,首先需要启动cron服务进程。如果需要在Linux系统启动时,自动启动cron服务,则需要在文件/etc/rc.d/rc.local中加入一行:/sbin/servicecrondstart如果没有启动cron服务进程,在系统运行中可用如下命令启动:/sbin/servicecrondstart如果不需要cron服务或cron服务出现问题,可用如下命令关闭cron服务:/sbin/servicecrondstop也可以用如下命令重新载入服务:/sbin/servicecrondreload2.4任务自动调度5.增加、修改cron任务当用户需要cron作业调度时,需要增加或修改相应的crontab文件。方法有如下两种:(1)vi编辑文件crontab使用vi编辑器编辑文件crontab时,如果原来有cron作业在运行。为了原来的cron作业能够正常工作,首先需要备份crontab文件。用cp命令进行两次备份,其中一份以备出错时使用,而在另一个备份文件上作增加或修改,最后用修改正确的文件去覆盖正在工作的crontab文件。如果原来没有cron作业,则不需要拷贝crontab文件,直接编辑crontab文件则可。对于用户的crontab文件,也只有系统管理员才能编辑,因为该文件的路径为/usr/spool/cron/cron/username,普通用户无权写该文件。2.4任务自动调度(2)用crontab命令编辑文件crontab使用crontab命令能够编辑文件crontab和修改cron作业相关的信息。命令crontab的格式如下:crontab[-uuser][-lre]其中选项表示如下:u:用户名(用户帐号)。如果是为自己设置cron作业,则不需要u选项。通常是系统管理员为普通用户设置自动调度作业时需要指定用户名;l:列出当前计划书的内容(即crontab文件中需要自动调度的作业);e:编辑计划书,即编辑crontab文件内容。系统默认编辑器为vi;r:删除计划书。2.4任务自动调度例用户zhangxh需要每小时执行一次pwd命令。#crontab–uzhangxh0****pwd例用户zhangxh需要每星期天的8:30执行一次pwd命令。#crontab–uzhangxh308**0pwd2.4任务自动调度命令crontab按照vi编辑器对文件crontan进行编辑。编辑时需要严格按照crontab文件内容要求进行。同样,用crontab命令可设置cron作业,命令格式如下:crontab[-uuser]如果是系统管理员用crontab命令为用户设置cron作业,则user为用户名(用户帐号);如果是为自己设置cron作业,则不需要u选项。为需要cron自动执行的任务,可以是文件名。例用户zhangxh需要自动调度作业/home/zhangxh/job1,则系统管理员可用如下crontab命令设置:#crontab–uzhangxh/home/zhangxh/job1
2.4任务自动调度6.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文件中,在相应的作业提交行用重定向定向一个你自己指定的目录或文件。2.4任务自动调度7.诊断cron故障cron是一个自动调度器,用于完成crontab文件内容的自动调度,常常会发生的故障有:(1)crontab内容的修改没有生效可能是手工更改crontab文件后没有重新引导该文件。(2)cron作业被跳过而没有执行注意时间区域是否有效。(3)某些cron作业没有执行:手工运行该命令,检查是否能够执行。用命令echo〝Thisisadebugtest〞>/dev/console查看调度时间主控制台是否会产生显示信息,或用命令echo〝Thisisadebugtest〞查看是否会产生一个E-mail。(4)cron作业没有执行,Shell脚本不工作检查Shell脚本的运行权限及Shell环境参数设置情况。(5)不能重新启动cron作业只能是系统重新引导。2.4任务自动调度要彻底搞清楚cron作业没有执行的原因,建议最好查看cron日志文件。2.4任务自动调度2.4.2在指定时间执行命令at有些系统命令,特别是占用CPU时间长的命令。如果CPU非常繁忙,可以不立即执行,而是安排在CPU稍微空闲时再执行。在Linux系统中,at工具可以满足这一要求。使用at工具的作业称为at作业。at工具使系统从标准输入或脚本文件中得到命令,而at的输出是标准输出、重定向文件或E-mail邮件通知。2.4任务自动调度1.at命令at命令的格式如下:at[-qqueue][-bdlmr][-f]time[date|+increment]其中:time:执行命令的时间。时间可以是用两位数字表示的小时,用4位数字表示的小时和分钟(之间用分号隔开);date:执行命令的日期。可以是某周的某一天(如Sunday、Monday、Tuesday、……),也可以是某月的某一天(1~31),也可以是today或tomorrow。increment:增量的时间、日期,格式为+nunits,n为整数,units为:minutes、hours、days、weeks、months、years。利用increment可以改变时间和日期的使用。如nextmonth表示+1unit(+1month)。2.4任务自动调度例at指定的时间。#at0309amDec24,2002#at0309amDecember24#at3:09amSunday#atnowtomorrow2.4任务自动调度2.at作业指定一个at作业:如果文件中包含要执行的作业,就将其安排为at作业。#at–m8amtomorrow<#at–m–fat作业提交后系统会为该作业分配一个作业号(job-id),在某些系统中该作业号由文件/var/spool/at/.SEQ控制。提交后的at作业在作业队列中等待执行。用命令atq或at–l按调度执行的时间序列列出系统中的作业,输出信息中最前面的数字表示作业号。2.4任务自动调度例#atq672003.05.1302:12a682003.05.1502:12a692003.05.1702:12a输出结果中表示作业号的分别为67、68、69,最后的a表示为at作业。2.4任务自动调度系统中的作业队列有:a:at队列b:batch队列c:cron队列=:当前队列例#atq672003.05.1302:12=682003.05.1502:12a692003.05.1702:12a702003.05.2002:12b2.4任务自动调度如果要列出某一个作业队列,则在命令atq或at中增加选项-q和-l。#at–lqa682003.05.1502:12a692003.05.1702:12a当at作业完成后,可以通过重定向方式将at作业的执行结果存到文件中,或通过E-mail方式将作业的执行结果发给用户。如果想取消某个at作业,可以用命令:at–d[job-id…]或atrm[job-id…]将作业号为job-id的at作业从at作业队列中删除。如果不送入作业号,则表示取消所有at作业。普通用户只能取消自己的作业,超级用户可以取消所有的at作业。2.4任务自动调度3.在系统负载较轻时执行作业通常情况下at作业的执行不考虑系统当时的负载情况。但是从系统性能平衡考虑,最好能在系统负载较轻时安排这些作业执行。用命令at–b或batch提交作业就能在系统负载低于一个平均值时执行该作业。以batch提交的作业是批处理作业,其权限低于cron和at作业。4.控制对at的访问在Linux系统中文件at.allow和at.deny用于限制用户对at的访问。方法与cron.allow与cron.deny相同。2.4任务自动调度2.4.3作业控制作业是用户提交给系统处理的一个任务,包括用户程序﹑数据﹑对程序运行进行控制和处理有关的信息。按作业调度方式,作业可以分为批处理作业和终端型作业。批处理作业是将多个作业放在一起交给系统,经过系统作业调度后才能进入内存就绪;终端型作业是用户终端直接将作业送入内存,不需要经过作业调度。在Linux系统中大量用户通过终端直接提交自己的作业进入内存,只有较少的作业才是批处理作业。按作业运行方式的不同,作业又可以分为前台作业和后台作业。前台作业是可以直接与终端交互的作业;后台作业是无法与终端直接交互的作业。任何时候,一个终端只能有一个前台作业而可以有多个后台作业,前台作业和后台作业可以互换。作业控制包括终止一个作业、暂停一个作业、重新启动暂停作业、将后台作业切换到前台等。2.4任务自动调度1.用jobs指令显示用户当前的所有作业命令格式:jobs例#jobs[1]+Runingfind/u/micael/-print>files>[2]–Suspendedgrepnetw|nawk–ffiles>data&[3]–Stoped(ttyinput)cat>/tmp/files$该指令运行结果中最前面括号中的数字表示作业代码号,〝+〞表示现行作业,〝-〞表示前一个作业。Runing表示正运行的作业;Stoped表示已停止的作业;Suspended表示挂起的作业。2.4任务自动调度2.用kill指令终止后台作业终止后台作业的命令为kill,该命令格式如下:killpid(pname)其中:pid:作业相应的进程号;pname:作业相应的进程名。例终止作业号为3的后台作业。#kill%3例终止作业名为netw的后台作业。#kill%netw2.4任务自动调度3.用stop指令暂停后台作业命令格式:stop%pid(pname)例暂停后台作业find。#stop%find4.用fg指令将暂停的作业重新启动并带到前台执行命令格式:fg%pid(pname)例启动作业find并在前台运行。#fgfind5.用bg指令将暂停的作业重新启动并带到后台执行命令格式:bg%pid(pname)例启动作业find并在后台运行。#bgfind2.5系统性能管理性能管理是系统管理员的一项非常重要而繁琐的工作,关系到整个系统的硬件、软件和应用等方面的技术。为了使系统稳定、可靠运行,系统管理员必须不断监控并调整系统的性能。系统性能管理通过运行命令得到系统性能统计信息,对这些信息进行性能分析,提出性能策略,以性能策略为指导调整系统性能,使系统性能稳定可靠。2.5系统性能管理2.5.1监控进程活动信息的应用软件包Psacct应用软件包Psacct可用于监控进程的活动情况,可提供系统命令ac、lastcomm、accton和sa。这些命令提供了详细的系统统计信息。软件包Psacct可在Linux的网站上下载,下载之后安装并启动。不同系统安装和启动的命令不同,例如Redhat系统的安装和启动命令为:up2datepsacct。安装成功之后,需要启动相应的psacct/acct服务。在Redhat系统上需要键入如下命令启动:#chkconfigpsaccton#/etc/init.d/psacctstart2.5系统性能管理1.用ac命令统计用户登录系统时间命令ac根据系统日志文件/var/log/wtmp中的用户登录和退出记录统计用户每天总的连接时间(小时)。命令格式如下:ac[-wwtmp][-p][-d][username]…其中选项:w:指定除文件/usr/adm/wtmp之外另外用一个文件记录用户登录和使用信息;P:此时不需要输入username,表示按每个人的总量显示输出结果;d:表示产生一份用户信息的报告,按照每天24小时进行;username:表示系统只为用户帐号为username的用户产生报告。2.5系统性能管理文件/usr/adm/wtmp是系统非常重要的日志文件,记录用户当天每次登录系统的信息。命令ac根据该文件的数据进行统计。例统计用户zhanghl总的登录时间:$aczhanghltotal1082.832.5系统性能管理例统计用户zhanghl每天的登录时间:#ac-dzhanghlOct01total126.12Oct02total135.04Oct01total314.24Oct02total135.45Oct01total116.46Oct02total134.26Todaytotal121.262.5系统性能管理例统计系统所有的用户总的登录时间:#ac-plihua12.13yujie215.54zhangjie312.11liuping213.21zhuyaj4123.43xuping289.12weiyang213.12total5378.662.5系统性能管理例统计系统所有的用户总的登录时间:#ac-plihua12.13yujie215.54zhangjie312.11liuping213.21zhuyaj4123.43xuping289.12weiyang213.12total5378.662.5系统性能管理2.用lastcomm统计系统已经执行的命令在Linux系统中用lastcomm命令跟踪用户命令的执行情况,其格式如下:lastcomm[-EScesu][-ffile][Command][Name][Terminal]其中:E:显示进程结束的时间;S:显示进程开始的时间,本命令的缺省选项;c:显示进程所用去的cpu时间,本命令的缺省选项;e:显示进程所消耗的时间;s:显示进程所用去的系统时间(systemtime);u:显示进程所用去的使用者时间(usertime);2.5系统性能管理file:读取file文件而非预设的日志文件/var/account/acct;Command:要过滤出来的执行命令名;Name:发出命令的用户名;Terminal:用户执行命令时使用的终端设备名。缺省情况下,命令lastcomm是对系统日志文件/var/account/acct进行统计而得出的信息。2.5系统性能管理例列出lastcomm所有用户命令的信息。#lastcommlsrootpts/20.01secsThuJuy110:24greprootpts/40.02secsThuJuy110:25bashFroot0.01secsThuJuy110:28pwdstu01pts/60.01secsThuJuy110:36gccrootpts/50.01secsJuy110:32morerootpts/50.01secsThuJuy110:31dfstu02pts/60.00secsThuJuy110:30mailsstu03pts/60.01secsThuJuy110:292.5系统性能管理第1部分表示使用过的命令名;第2部分表示标志信息;第3部分表示执行命令的用户名;第4部分表示用户输入命令的终端名;第5部分表示命令进程用去的时间(sec);第6部分表示命令开始的时间。
如果需要统计所有在终端ttyd0上超级用户root执行的命令useradd情况信息,则可用命令:lastcommuseraddrootttyd0。2.5系统性能管理3.用accton启动进程统计在Linux系统中,用命令accton启动进程统计,格式如下:#accton/var/log/pacct文件/var/log/pacct必须在accton命令之前存在,用touch命令创建,格式如下:#touch/var/log/pacct如果要关闭进程统计,用不带参数的accton命令即可。2.5系统性能管理4.用sa获取已经执行命令的总结信息命令sa可对执行过的命令进行信息汇总。命令sa的格式如下:sa[-abcdlmr][]其中选项表示如下::如果不用系统日志文件/usr/adm/wtmp为统计信息的起源,还可以用另外指定一个文件;a:在报告中列出全部命令;b:根据系统时间和用户时间之和与调用次数的比值对数据排序;c:在输出中增加各项时间占总时间的百分比;d:根据磁盘I/O次数进行排序;l:分别报告系统时间和用户时间;m:显示各用户的进程数和CPU时间;r:将排序次序变成反序。2.5系统性能管理除了信息输出外,命令sa还提供每一个用户的统计信息,这些信息被保存在文件usracct中。例用命令sa显示各用户的进程数和CPU时间。
#sa-mroot885173.28re4.31cp0avkroot879173.23re4.31cp0avkalias30.05re0.00cp0avkqmailp30.01re0.00cp0avk第1部分为用户名,第2部分为用户进程数,第3部分为进程所用的CPU时间(re表示以分钟计),第4部分表示用户和系统时间总和(cp表示以分钟计),第5部分表示内核使用的平均CPU时间(以1k为单位)。2.5系统性能管理2.5.2收集与进程有关的统计信息1.ps命令命令ps可用于显示正在运行的进程信息。例#ps–auxUSERPID%CPU%MEMVSZRSSTTSTATSTATEDTIMECMDroot03.30.028216P3I10Sep00:02:00(s)root11.50.0242126??I10Sep01:02:00initJak1250.00.01451120??S10Sep00:02:00irctogle2230.00.0245320P4R10Sep00:02:00ps-uax#2.5系统性能管理有下列进程状态:R:进程运行;S:进程睡眠,不可中断;s:进程睡眠,可中断;I:进程空闲;T:进程停止;H:进程挂起;W:进程被换出到磁盘上;>:进程超过了内存所需的软限制;+:带有一个控制终端的进程组组长;N:进程在优先级降低的情况下运行;<:进程在优先级升高的情况下运行;2.5系统性能管理如果用ps命令显示出有很多进程都被换出到磁盘上,则应把大部分精力放在物理内存和虚拟内存的调整上;如果ps命令显示结果是某个进程占用CPU时间百分比很高,则应该用nice或renice命令暂时降低该进程的优先级,推迟该进程结束的时间以使其他进程结束时间提前;如果ps命令显示出不该存在于系统的进程,则用命令kill终止它们。命令ps的详细介绍详见4.6.1节。2.5系统性能管理2.top命令命令top的功能与Windows系统中的任务管理器的功能相似,用于查看系统中的进程信息、CPU信息和内存信息,显示系统的任务列表,实现对处理器的实时状态监控。该命令可以按CPU使用、内存使用和执行时间对任务进行排序。命令top是一个动态显示过程,通过用户按键来不断刷新当前状态,更新屏幕显示内容。如果该命令在前台执行,则会独占前台,直到用户终止该命令为止。2.5系统性能管理该命令的格式如下:top[-dqsiupSc][-dcount][-stime][-Uusername]其中选项表示如下:d:指定每两次屏幕信息刷新之间的时间间隔。用户可以使用s交互命令来改变;q:没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行;s:在安全模式中运行,去除交互命令所带来的潜在危险;i:在交互模式下运行,支持键盘的输入和光标定位,不显示任何空闲或僵死进程;u:不必将uid转换为用户名;2.5系统性能管理p:指定监控进程ID来仅仅监控某个进程的状态;S:指定累计模式;c:显示整个命令行而不只是显示命令名;dcount:表示更新屏幕显示结果count次之后退出top命令。stime:设置连续两次更新屏幕显示的时间间隔。uusername:表示只显示属于用户username的进程。2.5系统性能管理例用不带选项的top命令得到系统性能的使用情况。#top2:38pmup7min,3user,loadaverage:0.07,0.09,0.0629processes:28sleeping,1running,0zombie,0stoppedCPUstates:4.5%user,3.6%system,0.0%nice,91.9%idleMem:38916Kav,18564Kused,20352Kfree,11660Kshrd,1220KbuffSwap:33228Kav,0Kused,33228Kfree,11820KcachedPIDUSERPRINISIZERSSSHARESTATLIB%CPU%MEMTIMECOMMAND363root140708708552R08.11.80:00top
1root00404404344S00.01.00:03init
2root00000SW00.00.00:00kflushd
3root-12-12000SW<00.00.00:00kswapd
4root00000SW00.00.00:00md_thread
5root00000SW00.00.00:00md_thread2.5系统性能管理在输出信息中:前5行表示整体的统计信息,第6行开始表示的是各进程详细信息。具体表示的意义如下:第1行:依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载(分别表示1分钟、5分钟、15分钟前到现在的平均负载);第2行:依次为进程总数、休眠进程数、运行进程数、僵死进程数、终止进程数;第3行:依次为用户进程占用CPU的比例、系统进程占用CPU的比例、优先进程占用CPU的比例、闲置进程占用CPU的比例;第4行:依次为平均可用内存空间、已用内存空间、空闲内存空间、共享内存和缓存使用内存空间;2.5系统性能管理第5行:依次为平均可用对换区容量、已用对换区容量、闲置对换区容量、高速缓存对换区容量;从第6行开始为各进程情况列表。显示的信息相对于命令ps显示的信息。分别为进程标识符PID、拥有进程的用户名USER、进程优先级PR、nice值(负值表示高优先级,正值表示低优先级)NI、进程使用虚拟内存总量(单位kb,VIRT=S)VIRT、进程使用的未被换出的物理内存大小(单位kb,RES=CODE+DATA)RES、共享内存大小(单位kb)SHR、进程状态(R:运行状态;D:不可中断睡眠状态;S:可中断睡眠状态;T:停止状态;Z:僵尸状态)S、上次更新到现在占用CPU时间百分比%CPU、进程占用物理内存百分比%MEM、进程使用的CPU时间总计(单位1/100秒)TIME+、启动进程的命令名COMMAND。2.5系统性能管理命令top是一个动态显示过程,用户通过按键来不断刷新当前状态。该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。下面是top命令执行过程中可以使用的一些交互命令:Ctrl+L:擦除并且重写屏幕;i:设置忽略闲置进程和僵死进程;k:终止一个进程。系统将提示用户输入需要终止的进程PID和需要发送给该进程的信号。一般的终止进程可以使用15信号;如果不能正常终止进程则使用信号9强制终止该进程。默认值是信号15。在安全模式中此命令被屏蔽;r:重新设置进程的优先级。系统提示用户输入需要改变优先级的进程PID以及优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10;2.5系统性能管理S:切换到累计模式;s:改变两次刷新之间的延迟时间,默认值是5s(秒)。系统将提示用户输入新的时间(单位为秒:s)。如果有小数,就换算成毫秒。输入0值则系统将不断刷新。如果设置的值太小,也可能会引起不断刷新,不但来不及看清显示的情况,而且系统负载也会大大增加;c:切换显示命令名称和完整命令行;f或者F:从当前显示中添加或者删除项目;o或者O:改变显示项目的顺序;l:切换显示平均负载和启动时间信息;m:切换显示内存信息;t:切换显示进程和CPU状态信息;2.5系统性能管理M:根据驻留内存大小进行排序;P:根据CPU使用百分比大小进行排序;T:根据时间/累计时间进行排序;W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法;h或者?:显示帮助画面,给出一些简短的命令总结说明;q:退出程序。2.5系统性能管理3.uptime命令命令uptime显示现在的时间,自从系统引导到现在已过的时间长度,连线的用户数,过去的1、5和15分钟内所执行的平均工作数信息。例#uptime12:23PMup72days,21:06,1user,loadaverage:0.00,0.03,0.02#如果用参数v,则能够显示板本信息。2.5系统性能管理4.w命令命令w显示与“谁在系统中”有关的信息,包括CPU使用情况,注册时间、用户进程空闲时间等信息。例#w12:24PMup72days,21:07,1user,loadaverage:0.00,0.02,0.02Userttylogin@idleJCPUPCPUwhatliuxmpts/012:21PM000-ksh#2.5系统性能管理5.vvmstat命令命令vmstat显示虚拟内存信息,包括调页、磁盘、内存和CPU的统计数据。在vmstat命令中包含行数和时间间隔两个参数。命令格式如下:vmstat[-ims][-ccount][-Mcore][-Nsystem][-wwait][disks]或vmstat[-fsi][Drives][Interval][Count]其中选项:i:表示显示自从系统启动以来每个设备的中断次数。Mcore:表示显示与展开core文件(默认值为/dev/komem)后得到的名字列表值对应的列表。Nsystem:表示从system而不是从默认值/bsd中展开名字列表。m:显示内核内存使用情况统计信息。s:显示与调页相关的活动的统计信息。2.5系统性能管理例显示进程信息、内存信息、换页信息、故障信息及CPU使用信息。#vmstatkthrmemorypagefaultscpu
rbavmfrerepipofrsrcyinsycsussyidwa001237229776000000108342601990#2.5系统性能管理显示进程信息、内存信息、换页信息、故障信息及CPU使用信息,时间间隔3s。#vmstat3kthrmemorypagefaultscpu
rbavmfrerepipofrsrcyinsycsussyidwa00123722977600000010834260
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新疆维吾尔自治区七年级上学期语文第一次月考试卷
- 一年级数学计算题专项练习汇编
- 二年级数学计算题专项练习
- 花圃合作协议书(2篇)
- 南京航空航天大学《传感器与测试技术》2022-2023学年第一学期期末试卷
- 南京工业大学浦江学院《土木工程与环境》2022-2023学年第一学期期末试卷
- 南京工业大学浦江学院《商务技能》2022-2023学年第一学期期末试卷
- 分草莓说课稿
- 南京工业大学浦江学院《汽车电气设备》2022-2023学年第一学期期末试卷
- 《有理数的乘法》说课稿
- 三菱重工中央空调产品篇(课堂PPT)
- 小学六年级六班家长会课件
- 新风系统施工方案
- 财务KPI指标监控
- 英文电影赏析new(课堂PPT)
- 关于3000万元以下建设项目前期工作咨询收费标准的通知
- 真空电镀常见不良现象及原因分析
- 清水池清洗消毒方案
- 外国人换发或补发永久居留证件申请表样本
- 上海市初级中学英语学科教学基本要求
- 开展修旧利废活动方案
评论
0/150
提交评论