320 likes | 460 Views
第九章. 系统服务与作业管理. 第九章 系统服务与作业管理. 第九章 系统服务与作业管理 (2). 本章要点. 掌握系统资源控制器的使用 掌握管理进程的方法 使用 cron 子系统来调度周期性运行的作业 使用 at 和 batch 命令来调度作业 了解 skulker 程序的功能. 9.1.1 系统资源控制器. System Resource Controller(SRC) 系统资源控制器. 通过统一的接口来启动停止和显示子系统的状态 记录子系统的非正常终止 可对子系统组和子服务器程序进行跟踪 支持远程的控制操作 提供刷新子系统的功能.
E N D
第九章 系统服务与作业管理
第九章 系统服务与作业管理(2) 本章要点 掌握系统资源控制器的使用 掌握管理进程的方法 使用cron子系统来调度周期性运行的作业 使用at和batch命令来调度作业 了解skulker程序的功能
9.1.1 系统资源控制器 System Resource Controller(SRC) 系统资源控制器 通过统一的接口来启动停止和显示子系统的状态 记录子系统的非正常终止 可对子系统组和子服务器程序进行跟踪 支持远程的控制操作 提供刷新子系统的功能
系统资源控制器(2) 命令 参数 lssrc startsrc stopsrc refresh -s -g 后面跟具体某个子系统 后面跟具体某个子系统组
系统资源控制器(3) Examples: 启动子系统 # startsrc -s qdeamon 停止子系统 # stopsrc -s qdeamon 刷新子系统 # refresh -s qdeamon 显示子系统状态 # lssrc -a
lssrc 命令 列出所有的子系统 正在对外服务 没有对外服务
lssrc 命令(2) 列出属于tcpip组的所有子系统
lssrc 命令(3) 列出具体某个子系统的状态 列出具体某个子服务的状态
系统服务管理要点 很多服务都有各自的配置文件,比如inetd服务的配置文件是/etc/inetd.conf;sendmail服务的配置文件是/etc/sendmail.cf 每个服务的启动都要去读取其配置文件,所以正确配置其配置文件是很重要的 修改了配置文件,需要执行refresh命令更新一下服务,即再次读取其配置文件
9.1.2 进程管理 进程号 父进程号
进程管理(2)—终止进程 用kill 命令结束后台进程 # kill 7224 7224为某个进程的进程号 # kill -9 7224 (-9 选项,表示强行终止某个进程) # kill -1 7224 (-1 选项,表示刷新某个进程,相当与refresh命令) 结束前台进程 <crl+c>
9.2.1 cron作业管理 在某个指定日期及时间自动处理安排批量作业,必须使用cron 进程 cron 通常在系统启动时由/etc/inittab启动它是一daemon进程被终止后又自动重启
cron作业管理(2) crontab文件用于在指定日期和时间周期性地执行作业 crontab 作业存放在/var/spool/cron/crontabs/$USER cron根据crontab文件项运行命令。如果用户不指定将cron作业的输出重定向到标准输出或标准错误。cron将使用电子邮件向用户报告其输出或错误
cron作业管理(3) 控制用户使用crontab的两个文件: /var/adm/cron/cron.deny 记录不允许使用cron的用户,若这个文件存在,那么除了这个文件里头所列的用户外,其他任何用户都可以使用cron /var/adm/cron/cron.allow 记录允许使用cron的用户,若这个文件存在,那么只有这个文件里头所列的用才使用cron,对root也不例外
crontab文件(2) crontab格式: 分钟 小时 日 月份 星期 命令 (0-59) (0-23) (1-31) (1-12) (0-6,0为周日) 星号* 表示任意时间;逗号表示分别在什么时候
crontab文件(3) 示例1: 0 0 * * 1-5 backup –0 –u –f /dev/rmt0 周一至周五的,每天24:00整执行backup –0 –u –f /dev/rmt0命令 示例2: 0,15,30,45 8-17 * * 1-5 /tmp/script1 周一至周五的,每天早上8点至17点,每个15分钟执行/tmp/script1命令
crontab命令 查看cron表 # crontab –l 删除cron表 • # crontab –r
crontab命令(2) 编辑cron表 方法一: # crontab –e 方法二: # crontab –l>/tmp/crontmp # vi /tmp/crontmp # crontab /tmp/crontmp
crontab命令(3) 要使用cron,用户必须建立crontab文件 cron进程将crontab文件驻留在内存中,所以用vi直接修改硬盘上的cron文件是没有效果的 必须使用crontab命令操作,它会告诉cron进程crontab文件已修改
9.2.2 at作业管理 at命令用于在指定时间执行一次性作业,它从标准输入读取要执行的命令 at作业存放在/var/spool/cron/atjobs/$USER中
at作业管理(2) 控制用户使用at 的两个文件: /var/adm/cron/at.deny 记录不允许使用at的用户,若这个文件存在,那么除了这个文件里头所列的用户外,其他任何用户都可以使用at /var/adm/cron/at.allow 记录允许使用at的用户,若这个文件存在,那么只有这个文件里头所列的用才使用at,对root也不例外
at作业管理(3) 示例: 2分钟后发个大字体的hello的字符给/dev/tty3终端: # at now +2 mins banner hello > /dev/tty3 < ctrl + d > job user.time.a will be run at date
at作业管理(4) 列示at作业清单 # at –l [user] # atq [user] 取消at作业 # at -r job # atrm {job | user} 只有 root才可以列出和取消所有的作业,包括其他人的作业;其他人只能取消他本人的作业
batch作业管理 示例: CPU空闲时发个hello的banner信号给/dev/tty3终端: # batch banner hello > /dev/tty3 < ctrl + d > batch命令用于在CPU空闲时执行一次性作业,即在处理负载足够低时提交作业
9.2.3 skulker 命令 skulker 用来删除过时的文件,清理文件系统;通过修改skulker脚本调整要清除旧文件 • 比如删除以下文件: • 旧的qdir 文件 • /var/tmp中的文件 • 一天以前的*.bak、a.out、core等文件
skulker 命令(2) skulker通常写入root的crontab文件中,由cron 守候进程每日执行一次;新安装好一个系统后,想要启动skulker,只好修改root的crontab文件 skulker是个脚本,不是一个服务,可以直接执行skulker命令,但不能用startsrc –s skulker启动
9.2.4 测试题(1) 1、修改后/etc/inetd.conf文件后,要使得修改生效,还须执行下面哪个操作? • service -s inetd • restart -s inetd • refresh -s inetd • service inetd restart
测试题(2) 2、用哪个命令用来结束后台进程? • <ctrl+c> • kill • skulker • refresh
测试题(3) 3、系统刚重新安装过,如何enable skulker? • startsrc -s skulker • chitab "skulker:2:wait:/etc/rc.skulker" • 将root的 crontab中的skulker的注解去除掉 • 将/etc/inetd.conf文件中skulker的注解去除掉,再refresh inetd
测试题(4) 答案 1、C 2、B 3、C