at 命令调用atd进程,一次性任务
crontab 命令调用crond进程 ,周期性任务,重复执行
at 命令
chkconfig atd on 启动服务
at [HH:MM] [yyyy-mm-dd] 格式
-l 查看任务
-d 取消任务
-v 使用较为明显的时间格式输出at任务中的工作
atq 查看任务[at -c 编号 也可以查看]
atrm 编号 删除任务
ctrl + d 表示输入结束
任务存放目录:/var/spool/at
at 时间 -f /root/touch.sh 在该时间执行该脚本任务
时间格式:HH:MM(04:00)如果该时刻已经过了,则在明天的这个时候执行 HH:MM[am|pm] [Month] [Date](04pm March 17) 这样设置的时间格式会立马执行 HH:MM[am|pm] + number [minutes|hours|days|weeks]
now:表示现在
noon:表示中午12:00
teatime:表示下午16:00
邮件放在/var/spool/mail/root中
service sendmail restart 启动邮件服务
mail 查看邮件
d * 删除所有的邮件 (得在查看邮件的时候用的命令)
crontab 周期性的计划任务
配置文件 --> /etc/crontab
=================================================================
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
分 时 日 月 周
run-parts 必须要指定一个目录 --> 依照文件名的顺序依次执行指定目录的脚本
==================================================================
# crontab -e -u 给指定用户新建计划任务
/var/spool/cron/ --> 计划任务的存放位置
计划任务如果只是简单的输出,那么会以邮件的形式发给某个用户
/var/log/cron --> 计划任务的日志
crontab -e 新建计划任务的时候会有语法检测
=================================================================
示例
0 17 * * 1-5 - --> 表示一个连续的时间范围
30 8 * * 1,3,5 , --> 表示间隔的多个不连续的时间点
0 8-18 * * * * --> 代表该范围的任意时间
0 12 */3 * * /n --> 表示指定间隔的频率<每个n ... >
周和日月不要同时存在 --> 避免计划任务的混乱
minute --> 0-59
hours --> 0-23
日期 --> 1-31
月份 --> 1-12
周 --> 0-7
周 --> 0和7 代表周日
crontab -l 查看当前用户计划任务的列表
crontab -r 删除当前用户的计划任务
cronta -e 编辑当前用户的计划任务
注意事项:
--> 周和日月不要同时存在
--> 资源分配不均的问题 --> 比如说多任务同时同时运行
--> 安全检测
启动cron这个服务
/etc/init.d/crond {start|stop|status|reload|restart|condrestart}
===============================================================
anacron 服务
作用 --> 弥补在系统关机之后不能执行计划任务的问题
按天、周、月为单位去检查系统未进行的cron任务
不能代替cron这个服务
Configuration file --> /etc/anacrontab
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
1 65 cron.daily run-parts /etc/cron.daily
7 70 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly
period delay
period --> 该工作执行的间隔,单位是天
idelay --> 延迟,开机启动anacron后延迟执行这项工作的时间,单位是分钟
为甚么要delay这个机制,因为RHEL开机启动的时候系统是很忙碌的,如果此时执行anacron相关的工作的话,可能会大幅度的增加RHEL的系统负载
=========================================================
anacron服务启动
/etc/init.d/anacron {start|stop|restart|condrestart|status}
# /etc/init.d/anacron status
anacron 已停
anacron这个服务不是一个守护进程(daemon),所以不会持续运行,执行完毕后,anacron就会结束
工作机制:
利用时间戳检测你的计划任务是否顺利执行
当anacron执行某一项工作后,会在/var/spool/anacron目录下建立以job_id为名的文件,并修改该文件内容为当前时间,以记录该项工作的运行时间,下次anacron执行的时候,就会以此为依据
========================================================
阅读(977) | 评论(0) | 转发(0) |