6.1、控制前后台作业命令
jobs 表示查看当前被暂停的作业或在后台运行的作业
fg %1 表示将后台作业1转到前台运行
bg %1 表示让处于暂停的任务1继续在后台运行
当一个进程或作业在前台运行时,用户可以使用ctrl+Z来使它暂停
kill %1 表示杀死作业1
nohug command[arg…][&] 表示运行一个不会被挂断的命令
command [arg…] 表示运行的命令及相关的参数
& 表示在后台运行
nohug find / -name myprg -print & 表示在后台执行一个查找作业
6.2、at 命令的使用
at [-c|-k|-s|-q queue][-m][-f file]{-t date|time[day][increament]}
-c 表示用csh来执行作业
-k 表示用ksh来执行作业
-s 表示用bsh(bourne shell)来执行作业
-q queue 表示将作业放在指定的队列
-m 表示将命令执行成功后的信息以邮件形式发给登陆的用户
-f file 表示使用文件名为file的文件代替标准输入
-t date|time[day][increament] 表示指定作业的运行时间
date 的格式为:[[CC]YY]MMDDhhmm.[SS] CC表示世纪,YY表示年的后两个数,MM表示月份,DD表示一个月中的天,即几号,hh表示几点,
mm表示多少分钟,SS表示多少秒
time 的格式为数字+后缀(可以是am,pm,zulu)/数字,如at 0820 表示8点20分,at 0820 am 表示早上8点20分
day 的格式为:月份+日数字/一个星期的某一天(星期几) 如 at 7 pm july 26
increament 格式为+n units 表示增加多少单位 如 at now +38 days
at time
command1
command2
…
ctrl +d 结束命令输入
以上表示在某一时间所要执行的命令
也可以用管道的方式
echo command |at time
还可以指定执行文件
at -f file time
显示和删除at作业
at -l [-o] [job…|-q queue]
-l 表示显示已建立的作业
-o 表示按作业时间表的顺序显示已经建立的作业
job 表示作业号
-q queue 表示作业队列名
at -n [user] 表示显示队列中的文件数
at -r [-F] [-i] job…
at -r [-F] [-i] -u user
-r 表示删除当前系统中已经存在的作业
-F 表示禁止事实删除校验
-i 表示采用交互式删除
job 表示作业号
-u user 表示删除user用户的所有作业,只有root用户具有这个权限,其他用户只能删除自己的所有作业
也可以使用atrm命令来删除指定的作业
atq [-c|-n][user…] 表示显示当前用户等待执行的作业队列
-c 表示按照执行at命令的时间排序作业队列
-n 表示只显示队列中的作业号
user 只显示user用户的作业
控制使用at/batch命令的文件为:/var/adm/cron/at.allow和/var/adm/cron/at.deny
如果at.allow文件存在,则只有该文件里包含的用户具有执行at命令的权力
如果at.deny文件存在,则凡是没有出现在该文件里的用户都具有执行at命令的权力
如果at.allow,at.deny文件都不存在时,只有root用户具有执行at命令的权力
6.3、batch命令
batch命令是调用at -b -m now命令,向系统提交一批作业,系统把提交的作业放在一个队列中,在检查系统负载并且在平均负载低于某一个
预先确定值之后开始运行作业
batch command1 command2 … ctrl+d结束
6.4、crontab提供周期性的自动执行命令
检查cron进程是否存在
ps -ef |grep cron
cron进程是一个由init进程启动的后台进程,如果没有这个进程,则需要检查/etc/inittab文件中是否有以下记录:
cron:23456789:respawn:/usr/sbin/cron
如果没有,则用mkitab命令或用vi命令添加这条记录,然后执行telinit -q来启动cron进程,同时telinit -q也是重起cron进程的命令。
cron进程会去读cron进程为每个用户建立的crontab文件,该文件以用户名命名,主要存放在/var/spool/cron/crontabs目录下。
crontab 文件记录的格式为:
minute hour day_of_month month weekday command
minute 表示分钟 ,范围为0-59
hour 表示小时,范围为0-23
day_of_month 表示一个月的多少号,范围为1-31
month 表示月份 ,范围为1-12
weekday 表示星期几,范围为0-6 ,0表示星期天
command 表示要执行的命令或shell脚本
添加或修改cron作业
可以用vi命令直接修改/var/spool/cron/crontabs目录下的文件
crontab [-e|-l|-r|-v|file]
-e 表示编辑当前用户的crontab文件
-l 表示显示用户crontab文件的内容
-r 表示删除用户的crontab 文件
-v 表示显示用户cron作业提交的时间
file 表示将文件file拷贝到/var/spool/cron/crontabs目录下,并以当前用户名命名或覆盖掉原来存在用户名文件
/usr/adm/cron目录下的文件记录着cron的日志及使用权力的设置等