作业(job):
是指用户向系统提交并要求执行的一个任务
一个作业对应于一个或多个进程
【作业与进程的关系】
ls -l /etc|more& #作业
前台作业:与用户进行交互操作
后台作业:不接受终端的输入,但向终端输出执行结果
前台和后台执行命令的语法格式:
command 前台执行
command& 后台执行
command ctrl+z键 将目前工作放到后台中暂停,挂起后的程序将不再做任何操作
jobs命令
【功能】查看当前终端中的后台作业
【格式】jobs [选项] [作业号]
主要选项
- -l 列出详细的作业信息,包括构成作业的进程列表
- -s 列出处于停止(暂停)状态的作业
- -r 列出处于运行状态的作业
fg命令
【功能】让后台的作业恢复到前台执行,恢复到前台后按ctrl+c可以终止命令
【格式】fg 作业号
bg命令
【功能】让后台作业恢复在后台执行
【格式】bg 作业号
kill命令
kill [pid号] 终止进程
强制终止 kill -9 [pid号]
一次性作业
守护进程中atd提供了执行临时性作业的服务,crond提供了执行周期性作业的服务
首先要确定该守护进程开启 systemctl status std.service
at命令
【功能】在指定时间一次性执行作业
【格式】
at sometime
command list #作业列表
…
ctrl+d #组合键,保存并推出
【常用选项】
- -l 显示等待执行的作业
- -d 删除指定的作业
- -f 从指定文件而非标准输入设备获取将要执行的命令
时间的计数
- 绝对计时法:
小时:分钟 如23:59
小时:分钟 月日年 如23:59 12312020(MMDDYY或者MM/DD/YY或者DD.MM.YY) - 相对计时法:
now+时间间隔:时间间隔单位为minutes、hours、day、week 如:now+2 minutes - 直接计时法:today、tomorrow、midnight 、noon、teatime(下午四点)
【例】2分钟后删除user目录下的newdir目录
at now +2 minutes
at > rm -rf /home/user/newdir
ctrl+d
at命令的配置文件:(可用于一次性和周期性文件)
/etc/at.allow:写在这个文件中的使用者才能使用at
/etc/at.deny:写在这个文件中的使用者则不能使用at
如果两个文件都存在,那么只有root可以使用at
系统可能会保留一个空的/etc/at.deny文件,意思是允许所有人使用at指令的意思
周期性作业
首先要确定该守护进程开启 systemctl status crond.service
crontab命令
【格式】crontab [-u user] filename
【功能】利用crontab命令去执行一个已经创建好的cron作业列表文件
-u user 是超级用户为指定的普通用户创建cron作业,没有指定用户则是用户本身
filenam 是已经编写好的cron作业列表文件,也称为crontab文件
crontab文件的编写
crontab文件每列含义的说明表
表头含义:Min | Hour | Day of Mon| Mon| Day of week | command
取值范围:0~ 59 | 0~ 23 | 1 ~ 31 | 1 ~ 12 | 0 ~ 6 |
每一行是一个作业
每列tab键制表位分隔,共六例除了数字表达的取值范围,还有几个特殊的符号可以配合使用
“*”:所有取值范围内的数字
“/”:每的意思,/5表示每五个单位
“-”:从某个数字到某个数字
“,”:几个离散的数字
管理crontab作业
【格式】crontab
主要选项:
- -l 列出用户的作业执行计划
- -e编辑用户的作业执行计划
- -r删除用户的作业执行计划