Linux操作系统允许用户在特定的时间自动执行指定的任务(类似于indows操作系统中的任务计划程序),也允许用户对任务进行合理的安排,从而提高资源利用率均衡系统的负载,最终实现系统管理的自动化,我们一般通过以下方式进行系统的进程调度
使用命令at调度偶尔允许的进程(at、ata、atrm)
使用命令cron调度经常运行的进程( crontab)
语法:at [参数] 时间
功能:指定特定的日期和时间以便运行某个程序
参数:f <文件名> | -l | -d <作业号>
-f<文件名>:
用于指定计划执行的命令所在的文件
-l:
显示等待执行的调度作业
d<作业号>:
删除指定作业号的调度作业
时间:
at命令对时间的设置非常复杂,可以设置当天的时间,也可以设置几天后的时间。格式上,可以使用am、pm等进行描述,也可以用hh:mm(小时:分钟)的方式来描述,
am/pm
now+count minutes/hours/days/weeks
today/tomorrow
midnight/noon
teatime
语法:atq
功能:查看已经安排好的未执行作业(相当于at -l)
语法:atrm 作业号
功能:删除已经安排好的未执行作业(相当于at -d 作业号)
【补充】
我们可以通过/etc/at.allw和/etc/at.deny两个文件来设置允许和禁止用户执行at命令,将对应用户名分别添加到两个文件即可。
功能:周期性的执行命令,cron一般随 Linux启动而启动,cron启动时会读取配置文件并将其保存在内存中,每间隔1分钟,cron会重新检査配置文件(即cron执行命令的最短周期是1分钟)。
语法: crontab [参数]
参数:-elr -u <用户名> <文件>
-e:
用于创建并编辑 crontab内容
-l:
显示创建好的 crontab l内容
-r:
删除 crontab文件
-u <用户名> <文件>:
建立指定用户的cron文件
此文件保存在/var/ spool/cron目录中,文件名与用户名相同,文件共有6个字段,分别为分钟、小时、日期、月和星期和命令
上述字段不能为空,字段之间用空格隔开,如果不指定字段则使用“*”,日期格式的书写中,可以使用横杠(-)表示一段时间,如5-10表示每个月的第5天到第10天,可以使用逗号(,)表示特定日期,如1,15,28表示每个月的1号、15号和28号。
crontab如果要生效,需要重启 crond服务,重启命令:ystemctl restart crond
概念:
在 Linux系统中,服务
是在后台运行的正在执行任务或等待执行任务的一个应用程序(或一组应用程序),也被称为 Daemons
,即守护进程。
分类:
Linux中服务分为独立服务
和基于 Xinetd的服务
,独立服务存在于内存中,用到时就会有相应;基于Xinetd的服务不在内存中,需要 Xinetd去调取相应的服务,因此, Xinetd?就是 Linux中的超级守护进程
。
守护进程的运行目录,有许多程序的脚本,执行这些脚本可以启动、停止、重启这些服务,命令为:/etc/rc. d/init. d/xinetd start /stop/restart
存放进程的初始化脚本,其目录分别是rc0.d-rc6.d,对应系统的7个启动级别,当系统启动或进入某个运行级别时,对应脚本中用于启动服务的脚本将自动运行,如果用户要添加开机启动项,只需要在/etc/rc.d/rc.loca中添加即可。
service是 Red Hat Linux兼容的发行版中常用的用于控制系统服务的使用工具,主要用于启动、停止、重启和关闭系统服务,还可以显示所有系统服务的当前状态,一般随系统启动而启动。
语法格式: service [选项参数]
选项:-h | --status-all
-h:
显示帮助信息
--status-all:
是示所有服务的状态
参数:
服务名:
自动要控制的服务名,即/etc/init.d日录(或/etc/rc.d/nit.d日录)下的脚本文件名。
控制命令:
start stop I restart status reload
service network status //重启网络服务(rhel6.9)
service mysqld restart //重启 mysqld数据库服务
主要用来更新(启动或停止)和查询系统服务的运行级信息,可查询操作系统在每一个执行等级(0-6)中会执行哪些系统服务,包括各类常驻服务。值得注意的是,chkconfig不是立即禁止或激活一个服务,它只是简单的改变了一下符号链接。
主要用法如下:
chkconfig-ad服务名 //増加某个系统服务
chkconfig-del服务名 //删除某个系统服务
chkconfig-list服务名 //显示某个系统服务
chkconfig- level数字服务名 on/of //设置某个服务的开启或关闭,数字为1-6,on为开启,of为关闭
chkconfig- add sssd //增加服务ssd
chkconfig- list sssd //显示ssd服务的运行级信息chkconfig- level2345sson//设置sss服务在系统运行等级为2、3、4、5时开启
在rhel8中,使用 systemd工具取代 System V初始进程现在大部分的标准 Linux发行版都使用 Isystem工具,systemd工具使用 systemcall命令来管理服务,可以取代servicer命令和chkconfigi命令。 systemctl f命令的功能非常强大,
systemctl start/stop服务名列表:启动/停止指定服务,服务名列表的服务名之间使用空格分隔
systemctl restart/ reload服务名列表:重启/重新装载指定服务。
systemctl status服务名列表:查看服务状态。
systemctl enable/ disable服务名列表:设置开机启动/不启动指定服务。
systemctl mask/ umask服务名列表:禁用/取消禁用指定服务。
systemctl show服务名列表:显示服务的所有配置细节
systemctl get- default:查看默认的运行级别
systemctl isolate graphical target:启动运行级别5(图形,也可以使用 runlevels. target
systemctl set- default graphical. target:设置默认运行级别