1.基础知识
linux系统的定时任务就像我们在日常生活中使用的闹钟一样,一到固定的时间就会有相应的动作
linux系统的延时任务就像闹钟响了之后不想起床,延迟几分钟再响
定时任务是永久的,延时任务是一次性的
2.利用at命令设置定时任务和延时任务的详解
(1)at命令用于定时任务
步骤一:采用watch -n 1 ls -l /mnt/监控命令,监控该过程
步骤二:先用date查看一下desktop主机的当前时间
步骤三:at 时间 回车,此时就可以建立任务了 ctrl+d退出
步骤四:利用at命令操作定时任务
(2)at命令用于延时任务
步骤一:设定延时任务
步骤二:查看延时任务是否完成
步骤三:at now+1min rm -rf *
(3)at任务的黑白名单/etc/at.deny ##黑名单,系统中默认存在,在此文件中出现的用户不能执行at
/etc/at.allow ##白名单,系统中默认不存在,在此文件中出现的普通用户能执行at,只有在名单中的用户可以,并且/etc/at.deny失效
注意:
/etc/at.allow存在/etc/at.deny就失效
系统本来就没有/etc/at.allow,当这个文件建立之后即使是空的,其他普通用户也不能使用at命令了,此时只有超级用户是可以定时的
当student同时出现在allow和deny当中时,deny会失效,因此student可以使用at命令
3.利用crontab命令设定系统定时任务(永久)
执行定时任务的时候,crond.service这个服务必须开启
man 5 crontab可以查看这个命令的用法
cat /var/spool/cron/root定时任务是放在这个文件里面的
删除任务的同时文件也就没有了,删除文件的同时任务也就没有了
(1)系统控制crontab的服务
crond.service ##当程序开启时定时任务生效
(2)crontab 命令后面所跟的参数
e | 表示编辑 |
u | 表示用户 |
l | 表示列出 |
r | 表示删除 |
(3)crontab命令的具体格式
crontab -e -u root | 为root用户创建计划任务 |
crontab -l -u root | 列出root用户的计划任务 |
crontab -r -u root | 删除root用户的计划任务 |
(4)crontab 时间表示方式
分钟 时 日 月 星期几 具体时间
* * * * * 每分钟
*/2 * * * * 每两分钟
*/2 09-17 * * * 早7-晚5每两分钟
*/2 */2 * * * 每隔2小时每两分钟
*/2 09-17 3,5 1 5月的每个周四以及三月1号
*/2 09-17 * * 5 每周周五早9晚5
(5)实验步骤
步骤一:systemctl status crond.service,systemctl start crond.service(这个服务必须开启)
步骤二:crontab -e -u root 为root用户创建定时任务
步骤三:出来一个vim编辑,然后写入要定时的任务格式如上
步骤四:crontab -l -u root列出root用户的定时任务
步骤五:cat /var/spool/cron/root在这个文件里面可以看到定时任务
步骤六:crontab -r -u root 删除root用户的定时任务