一、作业的基本概念

1、作业(Job):
是指用户向系统提交并要求执行的一个任务。
一个作业对应于一个或多个进程。

【实例】作业与进程的关系。
ls –l /etc |more& #作业

2、前台与后台

前台作业:与用户进行交互操作。
后台作业:不接受终端的输入,但向终端输出执行结果。
前台和后台执行命令的语法格式:

command #前台执行
command & #后台执行
command
Ctrl+z键 #将目前的工作放到后台中暂停,挂起后的程序将不再做任何操作

3、相关命令

 jobs命令
【功能】查看当前终端中的后台作业。
【格式】jobs [选项][作业号]

作业引擎 when then java 作业common_后台执行

fg命令
【功能】让后台作业恢复到前台执行
【格式】fg 作业号

 bg命令
【功能】让后台作业恢复在后台执行
【格式】bg 作业号

二、一次性作业: at作业

Linux系统中的部分系统服务及其守护进程如下:

作业引擎 when then java 作业common_后台执行_02

 at命令
【功能】在指定时间(将来)一次性地执行作业。
1、【格式】

at sometime
command list #作业列表
……
<ctrl>+d #组合键,保存并结束

绝对计时法:

小时:分钟 如 23:59
小时:分钟 月日年 MMDDYY 或 MM/DD/YY 或 DD.MM.YY
如2020年12月31日23时59分
23:59 12312020

相对计时法:

now+ 时间间隔:时间单位为minutes(分钟)、hours(时)、day(天),
week(星期)
如:now+2 minutes

直接计时法:

today(今天)、tomorrow(明天)、midnight(深夜)、noon(中午)、
teatime(下午4点)

作业引擎 when then java 作业common_后台执行_03

2、【格式】at [选项][时间]

作业引擎 when then java 作业common_作业引擎 when then java_04

at命令的配置文件:

  • /etc/at.allow:写在这个文件中的使用者才能使用at
  • /etc/at.deny:写在这个文件中的使用者则不能使用at
  • 如果两个文件都不存在,那么只有root 可以使用at
  • 系统可能会保留一个空的 /etc/at.deny 文件,意思是允许所有人使用 at 指令的意思

三、周期性作业: cron作业

1、运行守护crond服务

systemctl status crond.service //查看crond.service服务的状态
systemctl start crond.service //开启crond.service服务

2、crontab命令

crontab命令
【格式】crontab [-u user] filename
【功能】利用crontab命令去执行一个已经创建好的cron作业列表文件。

  • [-u user]是超级用户为指定的普通用户创建cron作业,没有指定用户则是用户本身。
  • filename是已经编写好的cron作业列表文件,也称为crontab文件。

crontab文件的编写

作业引擎 when then java 作业common_后台作业_05

作业引擎 when then java 作业common_作业引擎 when then java_06

例如:

作业引擎 when then java 作业common_用户账号_07

管理cron作业
【格式】crontab

作业引擎 when then java 作业common_作业引擎 when then java_08

3、限定用户账号
/etc/cron.allow
/etc/cron.deny