一、crond任务调度
1.概述
使用crontab 进行定时任务的设置,让后台进程crond执行定时任务
crond:一种后台进程,它每分钟检查一次:看看有没有到时间要执行的任务
任务调度:
是指让系统在某个时间执行特定的命令或程序
任务调度分类:
1.系统工作:有些重要的工作需要系统循环去执行,比如杀毒等
2.个别用户工作:用户想要执行的某些操作,必须备份文件
2.基本语法
2.1 crontab
crontab [选项]
常用选项:

2.2 参数说明
格式
* * * * * 指令/脚本
五个占位符(每一位含义)

通用符号含义

应用实例
45 22 * * * 命令 -》 每月每日22:45执行命令
0 17 * * 1 命令 -》 每周一17:00执行命令
0 5 1,15 * * 命令 -》 每月1号、15号 5:00 执行命令
40 4 * * 1-5 命令 -》 周一到周五4:40执行命令
*/10 4 * * * 命令 -》 每天凌晨四点开始,每隔十分钟执行一次
0 0 1,15 * 1 命令 -》 每月1号、15号 且 是周一,0:00执行命令
2.3 crond相关指令
crontab -r:终止当前调度
crontab -l:列出当前有哪些任务调度
service crond restart:重启调度任务
3.应用实例
crontab使用逻辑:
eg1:每小时每分钟执行ls -l /home > /tmp/to.txt
bash
*/1 * * * * ls -l /home > /tmp/to.txt

eg2:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate
bash
*/1 * * * * date >> /tmp/mydate

eg3:每隔一分钟,就将当前日期和日历追加到/home/mycal中
1)、创建脚本并加上可执行权限

2)、执行指令
bash
*/1 * * * * my.py

after 1min

eg4:每天凌晨2:00将mysql数据库testdb ,备份到文件中。(指令为mysqldump -u root -p 密码 数据库 》》 /home/db.bak )
二、at定时任务
1.基本介绍:
(1)at命令是一次性定时任务计划,at的后台进程atd会每隔60s检查一次作业队列,有作业时,检查作业的运行时间,若时间匹配,则运行该任务。
(2)at命令是一次性定时任务计划,任务执行一次后便移出作业队列,不再执行
(3)在使用at命令前,要保证atd进程已经启动,可以用相关命令来查看 (ps -ef | grep atd)

图示:

2.at命令格式
创建
at [选项] [时间]
Ctrl+D 结束at命令的输入
删除
atrm 编号
(1)常用选项:

(2)at时间定义格式
at指定时间的方法:
①.接受在当天的Hour:Minute(小时:分钟)式的时间指定,假如该时间已经过去,那么就放在第二天执行。例如:04:00
②.使用midnight、noon、teatime等比较模糊的词语
③.采用十二小时计时制,即在时间后面加上AM、PM,例如:12PM
④、指定命令执行的具体日期,指定格式为month day 或 month/day/year 或 day.month.year,指定的日期需要跟在指定时间的后面。例如:04:00 2026/5/24
⑤.相对计时法,指定格式为:now + count time-units,now(代表当前时间)、count(时间的数量)、time-units(时间单位,可以是minutes/hours/days/weeks)。例如:now + 5 minutes
⑥.直接用today、tomorrow指定日期
总结:
基本格式为具体时刻 + 日期
①③->具体时刻指定方法
④⑥->具体日期指定方法
3.应用实例
eg1:2天后的下午5点来执行 /bin/ls /home

eg2:atq命令来查看系统之中没有被执行的定时任务

eg3:明天17:00,输出具体时间到执行文件/home/time.txt

eg4:删除已经设置的任务

eg5:1分钟后,执行sl


注:想让atd执行sl指令,将小火车打印到显示屏上,需要做如下几件事
1.将sl执行结果重定向到当前终端,使用tty指令可查询当前终端对应的文件
/usr/bin/sl > /dev/pts/0
2.改变终端文件的权限(默认情况下other无法向终端文件写入数据)
3.在环境变量TERM设置终端类型
export TERM=xterm
原因:
sl这类程序不是纯文本打印,依赖终端驱动:
①必须识别合法终端类型 TERM=xterm
②进程拥有终端写入权限
③文件描述符0、1输出句柄指向真实终端设备
当我们使用at在后台执行sl时,该进程环境变量中无TREM类型、文件描述符0、1指向位置不知道、且还存在对于终端文件写入时的权限问题
注:
ps(process status) 查看进程状态
1.用法一:ps aux =》查看所有进程完整信息
参数说明:
a:显示所有终端下全部用户进程
u:以用户维度展示,附带 CPU、内存占用等详情
x:包含无终端关联的后台进程
2.用法二:ps -ef =》查看完整进程树,侧重父子进程关系
参数说明:
-e:列出系统全部进程
-f:完整格式展示,附带父进程 ID、启动时间
3.区别:
ps aux
侧重资源占用:用户、CPU 占比、内存占比、进程状态、资源开销
ps -ef
侧重进程关系:PID、父 PID (PPID)、UID、完整启动命令、归属链路




