321监视进程 1.ps( process status)命令 语法:ps[选项 功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。根据 选项不同,可列出所有或部分进程。无选项时只列出从当前终端上启动的进程或当前用户的 进程。ps命令选项见附录1中表1-1。 2. pstree( process status tree)命令 语法: pstree I选项 功能:以树状图显示进程。用ASCI字符显示树状结构,清楚地表达进程间的相互关系。 如果不指定进程识别码或用户名称,则会把系统启动时的第一个进程视为基层,并显示之后 的所有进程。若指定用户名称,便会以隶属该用户的第一个进程当作基层,然后显示该用户 的所有进程。 street命令选项及其功能见表3-8。 3.top命令 语法:top选项 功能:top命令提供了对系统处理器实时的状态监视,显示系统中活跃的进程列表,可 以按CPU、内存以及进程的执行时间对进程进行排序,通常会全屏显示,而且会随着进程状 态的变化不断更新。可以通过按键来不断刷新当前状态,如果在前台执行该命令,它将独占 前台,直到用户终止该程序为止,另外,可以通过交互式的命令进行相应的操作 注意 top命令是Lnux下常用的系统性能分析工具,能够实时显示系统中各个进程的資源占用情况。 实例31使用p命令 第1步:在终端窗口执行op命令,如图3-29所示。 top-22: 31: 55 up 9 min, I user, load average: 0.50, 0.32, 0.21 asks: 106 total. 2 running, 103 sleeping. 0 stopped. 1 zombie pu(s):0.03us.0.73sy.0.0ni,99.3%id,0.0%Wa.0.0hi,0.03s1,0.0st r74520k total. 492332k used. 282188k free 28960k buffers Swap: 80S208k total Ok used. 803208k free, 308064k cached 2467 root 50292m12m6952S0.31.60:14.33Xorg 2714 root 150101m17m11mS0.32.30:02.95 gnome- termina1 2792 root 5021681008792R0.30.10:01.07top 1502044636544s0.00.10:00.56init 000s0.00.00:00.00 migration/0 3419000s0.00.00:00.00 ksoftirgd/0 RT0000s0.00.00:00,00 watchdog/0 000S0.00,00:00,00 图3-29执行top命令 前5行是统计信息区,显示了系统整体的统计信息。第1行的信息说明见表3-10。 表3-10第1行的信息
3.2.1 监视进程 1.ps(process status)命令 语法:ps [选项] 功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。根据 选项不同,可列出所有或部分进程。无选项时只列出从当前终端上启动的进程或当前用户的 进程。ps命令选项见附录1中表1-1。 2.pstree(process status tree)命令 语法:pstree [选项] 功能:以树状图显示进程。用ASCII字符显示树状结构,清楚地表达进程间的相互关系。 如果不指定进程识别码或用户名称,则会把系统启动时的第一个进程视为基层,并显示之后 的所有进程。若指定用户名称,便会以隶属该用户的第一个进程当作基层,然后显示该用户 的所有进程。pstree命令选项及其功能见表3-8。 3.top命令 语法:top [选项] 功能:top命令提供了对系统处理器实时的状态监视,显示系统中活跃的进程列表,可 以按CPU、内存以及进程的执行时间对进程进行排序,通常会全屏显示,而且会随着进程状 态的变化不断更新。可以通过按键来不断刷新当前状态,如果在前台执行该命令,它将独占 前台,直到用户终止该程序为止,另外,可以通过交互式的命令进行相应的操作。 注意: top 命令是 Linux 下常用的系统性能分析工具,能够实时显示系统中各个进程的资源占用情况。 实例 3-12 使用 top 命令 第1步:在终端窗口执行top命令,如图3-29所示。 图3-29 执行top命令 前5行是统计信息区,显示了系统整体的统计信息。第1行的信息说明见表3-10。 表 3-10 第 1 行的信息
信息 说明 22:31:55 当前的时间 min 系统运行的时间 I user 当前登录的用户数 load average:0.50,032,021系统负载,即任务队列的平均长度,三个数值分别为1分钟、5分钟、 15分钟前到现在的平均值 第2行的信息说明见表3-11。 表3-11第2行的信息 信息 信息 说明 Tasks: 106 total 进程总数 停止的进程数 2 正在运行的进程数 僵尸进程数 103 sleeping 睡眠的进程数 第3行的信息说明见表3-12。 表3-12第3行的信息 信息 说明 信息 说明 Cpu(s): 0.0%us 用户空间占用CPU百分比 993%id 空闲CPU百分比 0.7%sy 内核空间占用CPU百分比 00%wa等待输入输出的CPU时间百分比 0.0%ni 用户进程空间内改变过优先 级的进程占用CPU百分比 第4、5行的信息说明见表3-13 表3-13第4、5行的信息 信息 说明 信息 Mem: 774520k total 物理内存总量 Swap: 803208k total 交换区总量 492332k used 使用的物理内存总量 Ok used 使用的交换区总量 282188k free 空闲内存总量 803208k free 空闲交换区总量 23960k buffers 用作内核缓存的内存量 308064k cached 缓冲的交换区总量 统计信息区的下方是进程信息区,显示了各个进程的详细信息。首先来认识一下各列的 含义。进程信息区的进程信息说明见表3-14 表3-14进程信息
信息 说明 22:31:55 当前的时间 up 9 min 系统运行的时间 1 user 当前登录的用户数 load average: 0.50, 0.32, 0.21 系统负载,即任务队列的平均长度,三个数值分别为 1 分钟、5 分钟、 15 分钟前到现在的平均值 第2行的信息说明见表3-11。 表 3-11 第 2 行的信息 信息 说明 信息 说明 Tasks: 106 total 进程总数 0 stopped 停止的进程数 2 running 正在运行的进程数 1 zombie 僵尸进程数 103 sleeping 睡眠的进程数 第3行的信息说明见表3-12。 表 3-12 第 3 行的信息 信息 说明 信息 说明 Cpu(s): 0.0% us 用户空间占用CPU百分比 99.3% id 空闲CPU百分比 0.7% sy 内核空间占用CPU百分比 0.0% wa 等待输入输出的CPU时间百分比 0.0% ni 用户进程空间内改变过优先 级的进程占用CPU百分比 第4、5行的信息说明见表3-13。 表 3-13 第 4、5 行的信息 信息 说明 信息 说明 Mem: 774520k total 物理内存总量 Swap: 803208k total 交换区总量 492332k used 使用的物理内存总量 0k used 使用的交换区总量 282188k free 空闲内存总量 803208k free 空闲交换区总量 23960k buffers 用作内核缓存的内存量 308064k cached 缓冲的交换区总量 统计信息区的下方是进程信息区,显示了各个进程的详细信息。首先来认识一下各列的 含义。进程信息区的进程信息说明见表3-14。 表 3-14 进程信息
进程id USER 进程所有者的用户名 PR 优先级 e值,负值表示高优先级,正值表示低优先级 VIRT 进程使用的虚拟内存总量,默认单位是KB。ⅤIRI=SwAP+RES 进程使用的、未被换出的物理内存大小,默认单位是KB。RES=CODE+DATA SHR 共享内存大小,默认单位是KB 进程状态,D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪停止;z=僵尸进程 %CPU 上次更新到现在的CPU时间占用百分比 %MEM 进程使用的物理内存百分比 TIME+ 进程使用的CPU时间总计,单位M100秒 COMMAND 命令名 下面是图3-29的进程信息区中未列出的列名 PPID 父进程id UID 程所有者的用户id GROUP 进程所有者的组名 TTY 启动进程的终端名。不是从终端启动的进程则显示为 P 最后使用的CPU,仅在多CPU环境下有意义 TIME 进程使用的CPU时间总计,单位是秒 SWAP 进程使用的虚拟内存中,被换出的大小,默认单位是KB CODE 可执行代码占用的物理内存大小,默认单位是KB DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,默认单位是KB FLT 页面错误次数 nDT 最后一次写入到现在,被修改过的页面数 WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 任务标志
列 含义 PID 进程id USER 进程所有者的用户名 PR 优先级 NI nice值,负值表示高优先级,正值表示低优先级 VIRT 进程使用的虚拟内存总量,默认单位是KB。VIRT=SWAP+RES RES 进程使用的、未被换出的物理内存大小,默认单位是KB。RES=CODE+DATA SHR 共享内存大小,默认单位是KB S 进程状态,D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程 %CPU 上次更新到现在的CPU时间占用百分比 %MEM 进程使用的物理内存百分比 TIME+ 进程使用的CPU时间总计,单位1/100秒 COMMAND 命令名 下面是图3-29的进程信息区中未列出的列名 PPID 父进程id UID 进程所有者的用户id GROUP 进程所有者的组名 TTY 启动进程的终端名。不是从终端启动的进程则显示为 P 最后使用的CPU,仅在多CPU环境下有意义 TIME 进程使用的CPU时间总计,单位是秒 SWAP 进程使用的虚拟内存中,被换出的大小,默认单位是KB CODE 可执行代码占用的物理内存大小,默认单位是KB DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,默认单位是KB nFLT 页面错误次数 nDRT 最后一次写入到现在,被修改过的页面数 WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 Flags 任务标志
第2步:更改进程信息区显示的内容 通过f键可以选择显示的内容,在图3-29中,按f键之后会显示列的列表,如图3-30所示 按a~z键可以显示或隐藏对应的列,然后按回车键确定。 第3步:学习top的交互命令 3.22使用kl命令控制进程 kt命令 语法:kl[选项]PD 功能:命令用来中止一个进程。向指定的进程发送信号或终止进程。预设信号为 SIGTERM(15),可终止指定的进程。如果仍无法终止该进程,可以使用 SIGKILL(9)信 号尝试强制终止进程。进程或作业号可利用ps命令或jobs命令查看。kl命令的各选项及其功 能见表3-16 实例3-13使用k命令 323进程的优先权 nice命令 iAiE: nice [-n ADJUST][--adjustment= ADJUST][-helpl[--version)[command [ arg.11 功能:nice命令可以调整程序运行的优先级,让使用者在执行程序时,指定一个优先级 称为nice值( ADJUST),范围从-20(最高优先级)到19(最低优先级)共40个等级,数值越 小优先级越高,数值越大优先级越低,默认 ADJUST是10。只有root有权使用负值。一般使 用者但只能往低优先级调整。如果nice指令没加上 command参数,那么会显示目前的执行的 等级。如果调整后的程序运行优先级高于-20,那么就以优先级-20来运行命令,如果调整后 的程序运行优先级低于19,则就以优先级19来运行命令。如果nce命令没有指定优先级的调 整值,那么就以缺省值10来调整程序运行优先级,既在当前程序运行优先级基础之上増加10 实例3-14使用nice命令
第2步:更改进程信息区显示的内容 通过f键可以选择显示的内容,在图3-29中,按f键之后会显示列的列表,如图3-30所示, 按a~z键可以显示或隐藏对应的列,然后按回车键确定。 第3步:学习top的交互命令 3.2.2 使用 kill 命令控制进程 kill命令 语法:kill [选项] PID 功能:命令用来中止一个进程。向指定的进程发送信号或终止进程。预设信号为 SIGTERM(15),可终止指定的进程。如果仍无法终止该进程,可以使用SIGKILL(9)信 号尝试强制终止进程。进程或作业号可利用ps命令或jobs命令查看。kill命令的各选项及其功 能见表3-16。 实例 3-13 使用 kill 命令 3.2.3 进程的优先权 nice命令 语法:nice [-n ADJUST] [--adjustment= ADJUST] [--help] [--version] [command [arg...]] 功能:nice命令可以调整程序运行的优先级,让使用者在执行程序时,指定一个优先级, 称为nice值(ADJUST),范围从-20(最高优先级)到19(最低优先级)共40个等级,数值越 小优先级越高,数值越大优先级越低,默认ADJUST是10。只有 root有权使用负值。一般使 用者但只能往低优先级调整。如果nice指令没加上command参数,那么会显示目前的执行的 等级。如果调整后的程序运行优先级高于-20,那么就以优先级-20来运行命令,如果调整后 的程序运行优先级低于19,则就以优先级19来运行命令。如果nice命令没有指定优先级的调 整值,那么就以缺省值10来调整程序运行优先级,既在当前程序运行优先级基础之上增加10。 实例 3-14 使用 nice 命令
3.24 crontab和at命令 有时希望系统能够定期执行或者在指定时间执行一些程序,此时可以使用 crontab和at 命令。 crontab命令可以定期执行执行一些程序,at命令可以在指定时间执行一些程序 1. crontab命令 语法: crontab crontabfile-uuer{-l-re 功能: crontab命令是用来让使用者在固定时间执行指定的程序,[ u user]是指定某个用 户(比如root),前提是必须有该用户的权限(比如root)。如果不使用[- u user]就表示设置 自己的 crontab。 crontab命令的参数和选项及其功能说明见表3-18 表3-18 crontab命令的参数及其说明 参数和选项 功能 用指定的文件 crontabfile替代目前的 crontab 指定某个用户,如果省略,默认是root用户 编辑某个用户的 crontab 删除某个用户的 crontab 列出某个用户的 crontab 实例3-15使用 crontab命令 问题描述:某单位防火墙的要求是,周一到周五上午8:00~1200,下午14:30~17:30对 工作人员的上网进行限制,其他时间不受限制。对此,使用了两个防火墙规则文件 iptables work.sh和 iptables rest. sh上班时间执行 iptables_work.sh中的规则,其他时间执行中 的 iptables rest. sh规则。为了使防火墙自动切换这两套防火墙规则,使用了 crond服务。 第1步:启动 crond服务 crond是 linux系统中的定时执行工具,可以自动运行程序。手工启动 crond服务的相关命 令如下 #service crond start 启动 crond服务 # service crond stop∥关闭cond服务 # service crond restart∥重启 crond服务 # service crond reload∥重新载入 crond配置文件 如果担心系统重启后 crond服务没有启动,可以将 crond服务在系统启动时自动启动,方 法有二:第一,执行 ntsysv命令,选择 crond即可;第二,在 /etc/rc. d/rc. local脚本文件末尾加 上“/sbin/ service crond start 第2步:编辑 iptables.cron文件 编辑 iptables. cron文件,内容如图3-38所示
3.2.4 crontab 和 at 命令 有时希望系统能够定期执行或者在指定时间执行一些程序,此时可以使用crontab和at 命令。crontab命令可以定期执行执行一些程序,at命令可以在指定时间执行一些程序。 1.crontab命令 语法:crontab crontabfile [-u user] {-l|-r|-e} 功能:crontab命令是用来让使用者在固定时间执行指定的程序,[ -u user ]是指定某个用 户(比如root),前提是必须有该用户的权限(比如root)。如果不使用[ -u user ]就表示设置 自己的crontab。crontab命令的参数和选项及其功能说明见表3-18。 表 3-18 crontab 命令的参数及其说明 参数和选项 功能 crontabfile 用指定的文件crontabfile替代目前的crontab -u 指定某个用户,如果省略,默认是root用户 -e 编辑某个用户的crontab -r 删除某个用户的crontab -l 列出某个用户的crontab 实例 3-15 使用 crontab 命令 问题描述:某单位防火墙的要求是,周一到周五上午8:00~12:00,下午14:30~17:30对 工作人员的上网进行限制,其他时间不受限制。对此,使用了两个防火墙规则文件 iptables_work.sh和iptables_rest.sh。上班时间执行iptables_work.sh中的规则,其他时间执行中 的iptables_rest.sh规则。为了使防火墙自动切换这两套防火墙规则,使用了crond服务。 第1步:启动crond服务 crond是linux系统中的定时执行工具,可以自动运行程序。手工启动crond服务的相关命 令如下: #service crond start //启动crond服务 #service crond stop //关闭crond服务 #service crond restart //重启crond服务 #service crond reload //重新载入crond配置文件 如果担心系统重启后crond服务没有启动,可以将crond服务在系统启动时自动启动,方 法有二:第一,执行ntsysv命令,选择crond即可;第二,在/etc/rc.d/rc.local脚本文件末尾加 上“/sbin/service crond start”。 第2步:编辑iptables.cron文件 编辑iptables.cron文件,内容如图3-38所示
文件色满查看的工具文相p帮的 crontab /root/Desktop/iptables, cron minute hour day-of-month month-of-year day-of-week commands 008**1, 2,3, 4, 5 service iptables restart; sh /root/iptables work, sl 00 12**1,2,3,4,5 service iptables restart; sh /root/iptables rest. sh 3017,19,21,23**1,2,3,4,5 servI ables restart: sh /root/iptables rest.s 0 8, 11, 14, 17, 20, 23*.0,6 service iptables restart: sh /root/iptables rest. sh 图3-38 iptables.cron文件 在图3-38中,后5行要求cond服务在不同时间执行对于的命令。每一行都有6个字段的 内容,前5个字段是指时间,第6个字段是指要执行的命令,比如“008**1,2,3,4,5 service iptables restart, sh/root/ tables work.sh”这一行,它的各字段及其含义见表3-19,另外4行请 读者自行分析。 表3-19第一有效行的各字段及其含义 字段 含义 day-of-month (1-31) ,2,3,4,5 day-of-week(0-6),0代表星期天 service iptables restart, sh /root/iptables_work. sh commands,要执行由分号隔开的两条命令 前5个字段中,除了数字还可以使用几个特殊的符号:“*”、“/"、“-”和“,”,“*”代表 所有取值范围内的数字;“/”代表每的意思,如果第1个字段是“*10”,那么表示每10分钟; “”代表从某个数字到某个数字,如果第3个字段是“5-10”,那么表示一个月的5号到10号 “,”分隔几个离散的数字,第4个字段是“1,2,3,4,5”,那么表示周一到周五,此时也可以写 成“1-5 第3步:创建 crontab 可以执行“# crontab crontabfile”或“# crontab-e”命令来创建 crontab,每次创建完某个 用户的 crontab后,cron会自动在/ar/ spool/cron下生成一个与该用户同名的文件,该用户的 cron信息都记录在这个文件中,不过这个文件不可以直接编辑,只能用“# crontab -e”命令 来编辑。cron启动后每分钟读一次该文件,检查是否有需要执行的命令,所以修改该文件后 不需要重新启动cron服务 如图3-39所示,第1条命令用来查看root用户(默认)的 crontab,此时没有 crontab。第2 条命令用第2步的 iptables cron文件创建 crontab(存储在ar/ spool/cron/root中),第3条命令再 次查看root用户(默认)的 Crontab,表明root用户(默认)的 crontab创建成功
图3-38 iptables.cron文件 在图3-38中,后5行要求crond服务在不同时间执行对于的命令。每一行都有6个字段的 内容,前5个字段是指时间,第6个字段是指要执行的命令,比如“00 8 * * 1,2,3,4,5 service iptables restart;sh /root/iptables_work.sh”这一行,它的各字段及其含义见表3-19,另外4行请 读者自行分析。 表 3-19 第一有效行的各字段及其含义 字段 含义 00 minute(0-59) 8 hour(0-23) * day-of-month(1-31) * month-of-year(1-12) 1,2,3,4,5 day-of-week(0-6),0代表星期天 service iptables restart;sh /root/iptables_work.sh commands,要执行由分号隔开的两条命令 前5个字段中,除了数字还可以使用几个特殊的符号:“*”、“/”、“-”和“,”,“*”代表 所有取值范围内的数字;“/”代表每的意思,如果第1个字段是“*/10”,那么表示每10分钟; “-”代表从某个数字到某个数字,如果第3个字段是“5-10”,那么表示一个月的5号到10号; “,”分隔几个离散的数字,第4个字段是“1,2,3,4,5”,那么表示周一到周五,此时也可以写 成“1-5”。 第3步:创建crontab 可以执行“#crontab crontabfile”或“#crontab -e”命令来创建crontab,每次创建完某个 用户的crontab后,cron会自动在/var/spool/cron下生成一个与该用户同名的文件,该用户的 cron信息都记录在这个文件中,不过这个文件不可以直接编辑,只能用“#crontab -e”命令 来编辑。cron启动后每分钟读一次该文件,检查是否有需要执行的命令,所以修改该文件后 不需要重新启动cron服务。 如图3-39所示,第1条命令用来查看root用户(默认)的crontab,此时没有crontab。第2 条命令用第2步的iptables.cron文件创建crontab(存储在/var/spool/cron/root中),第3条命令再 次查看root用户(默认)的crontab,表明root用户(默认)的crontab创建成功
rootelocalhost /F crontab -1 no crontab fo Irootelocalhost /]F crontab /root/Desktop/iptables, cron@) Irootelocalhost /F crontab -l F crontab /root/Desktop/iptables, cron Eminute hour day-of-month month-of-year day-of-week commands 0081,.2.3,4,5 service iptables restart: sh /root/iptables_ work.sh 30 14.1.2.3. 4.5 service iptables restart: sh /root/iptables work.sh 00 12.1.2.3, 4, 5 service iptables restart: sh /root/iptables rest. sh 30 17,19, 21,23..1.2,3.4, 5 service iptables restart: sh /root/iptables rest. sh 208, 11.14, 17.20, 230.6 service iptables restart: sh /root/iptables_ rest. sh Irootelocalhost / 图3-39创建 crontab cron服务每分钟不仅要读一次/var/ spool/cron内的所有文件,还需要读一次/ etc/crontab, 因此也可以编辑/etc/ crontab文件,使得cron服务在固定的时间执行指定的程序。/etc/ crontab 文件内容如图3-40所示 注意 run-parts命令执行 /etc/cron hourly、etc/ cron daily等目录中的脚本文件 对后4行的说明如下: 01*** root run- parts/etc/ cron hourly∥每小时执行/etc/ cron. hourly内的脚本文件 024*** oot run-parts /etc/cron daily∥每天执行/ etc/cron daily内的脚本文件 224**0 root run- parts/etc/ cron weekly∥每星期执行/ etc/cron weekly内的脚本文件 4241** root run-parts/etc/ cron. monthly每月执行/etc/ cron. monthly内的脚本文件 注意 在 linux系统中,系统本身的 crontab和用户(比如root)的 crontab是有区别的,如果要修 改系统本身的 crontab,可以直接编辑/etc/cron*/下面的文件;如果要修改用户(比如root)的 crontab,可以执行# crontab crontabfile或# crontab-e命令,并且创建的用户 crontab自动保存 在/ar/ spool/cron目录下 剩辑4直看察③工 run- parts /etc/cron hourly /etc/cron weekly /etc/cron, monthl 图3-4 )文件内容 注意 如果文件/etc/ cron allow存在那么只有在 cron allow中列出的非root用户才能使用cron服 务。如果 cronallow不存在,但是/ etc/crondeny存在,那么在 crondeny中列出的非root用户 不能使用cron服务,如果 crondeny文件为空,那么所有用户都能使用cron服务。如果这两个文 件都不存在那么只允许root用户使用con服务下面介绍的at命剑/etc/ t allow、/etc/ atdeny) 与此类似
图3-39 创建crontab cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab, 因此也可以编辑/etc/crontab文件,使得cron服务在固定的时间执行指定的程序。/etc/crontab 文件内容如图3-40所示。 注意: run-parts 命令执行/etc/cron.hourly、/etc/cron.daily 等目录中的脚本文件。 对后4行的说明如下: 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内的脚本文件 注意: 在 linux 系统中,系统本身的 crontab 和用户(比如 root)的 crontab 是有区别的,如果要修 改系统本身的 crontab,可以直接编辑/etc/cron.*/下面的文件;如果要修改用户(比如 root)的 crontab,可以执行#crontab crontabfile 或#crontab -e 命令,并且创建的用户 crontab 自动保存 在/var/spool/cron 目录下。 图3-40 /etc/crontab文件内容 注意: 如果文件/etc/cron.allow 存在,那么只有在 cron.allow 中列出的非 root 用户才能使用 cron 服 务。如果 cron.allow 不存在,但是/etc/cron.deny 存在,那么在 cron.deny 中列出的非 root 用户 不能使用 cron 服务,如果 cron.deny 文件为空,那么所有用户都能使用 cron 服务。如果这两个文 件都不存在,那么只允许 root 用户使用 cron 服务。下面介绍的 at 命令(/etc/at.allow、/etc/at.deny) 与此类似
2.at命令 语法:at[-ffle[- mldvyv]TME 功能:a命令可以让用户在指定时间执行某个程序或命令。TME的格式是HHMM MMDD/YY],其中HH是小时,MM是分钟,如果要指定超过一天内的时间,那么可以用 MMDD/YY,其中MM是月,DD是日,YY是年。at命令的选项及其功能说明见表3-20 表3-20at命令的参数及其说明 选项 删除指定的定时命令 rfe读入预先写好的命令文件,用户可以不使用交互模式(不带f选项)来输入命令,而是将所有 的命令先写入文件fe后再一次读入 列出所有的定时命令 定时命令执行完后将输出结果ema给用户 列出所有已经完成但尚未删除的定时命令 显示版本号 命实例316使用a命令 如图3-41所示,执行第1条命令(指定了时间),进入at命令的交互模式,输入在指定时 间要执行的命令# ouch /root/Desktop/at example. txt后敲回车键,然后按下【crl】+【D】键 退出t命令的交互模式。执行第2条命令,查看指定时间执行命令的结果。 [rootalocalhost"# at 18: 03 5/28/2008 at> touch /root/Desktop/at_example.txt at> Jjob2at200805-2818:03 rooteloca l host-1#1s-1/root/ Desktop/a·② 0Q320:14/oot 图3-41指定时间执行命令
2.at命令 语法:at [-f file] [-mldvV] TIME 功能:at命令可以让用户在指定时间执行某个程序或命令。TIME的格式是HH:MM [MM/DD/YY],其中HH是小时,MM是分钟,如果要指定超过一天内的时间,那么可以用 MM/DD/YY,其中MM 是月,DD是日,YY是年。at命令的选项及其功能说明见表3-20。 表 3-20 at 命令的参数及其说明 选项 功能 -d 删除指定的定时命令 -f file 读入预先写好的命令文件,用户可以不使用交互模式(不带-f选项)来输入命令,而是将所有 的命令先写入文件file后再一次读入 -l 列出所有的定时命令 -m 定时命令执行完后将输出结果email给用户 -v 列出所有已经完成但尚未删除的定时命令 -V 显示版本号 实例 3-16 使用 at 命令 如图3-41所示,执行第1条命令(指定了时间),进入at命令的交互模式,输入在指定时 间要执行的命令#touch /root/Desktop/at_example.txt后敲回车键,然后按下【Ctrl】+【D】键 退出at命令的交互模式。执行第2条命令,查看指定时间执行命令的结果。 图3-41 指定时间执行命令