crontab 任务调度
功能:规划程序周期性系统性地定时启动、定时执行。
说明:corontab受到文件/etc/cron.allow和/etc/cron.deny的控制(系统默认允许所用用户使用)。如下表:
/etc/cron.allow | /etc/cron.deny | 结果 |
---|---|---|
存在 | 无论是否存在 | 列在前者文件中的用户才能使用corontab命令 |
不存在 | 存在 | 不在后者文件中的用户才能使用corontab命令 |
不存在 | 不存在 | 根据系统配置,可能只有超级用户或所有用户都能使用 |
基本语法:crontab [选项]
选项 | 功能描述 |
---|---|
-e | 编辑用户的crontab文件 |
-l | 列出crontab文件内容 |
-r | 删除用户crontab文件 |
在crontab文件中,除了一些用于变量定义,注释等行除外,格式如下:
minute hour day month day_of_week command(命令)
例如:*/1 * * * * ls -l /etc/ > /tmp/to.txt
解释:每小时的每分钟都执行ls -l /etc/ > /tmp/to.txt 命令
项目 | 含义 | 范围 |
---|---|---|
minute | 一小时中的第几分钟 | 0-59 |
hour | 一天中的第几小时 | 0-23 |
day | 一月中的第天 | 1-31 |
month | 一年中的第月 | 1-12 |
day_of_week | 一周中的星期几 | 0-7(0和7都代表星期日) |
特殊符号说明:
特殊符号 | 含义 |
---|---|
* | 代表任何时间。可参考上述例子理解。 |
, | 代表不连续的时间。如“0 8,12,16 * * * 命令”,表示每天8:00,12:00,16:00都执行一次命令 |
- | 代表连续的时间范围。如“0 5 * * 1-6命令” ,表示周一到周六的凌晨5:00执行命令 |
*/n | 代表每隔多久执行一次。如“*/10 * * * *命令”,表示每隔10分钟执行一次命令 |
at 定时任务
功能:在某指定时刻调度任务执行,只执行一次。
注意:在使用at命令时,需要保证atd进程启动。默认情况下,atd守护进程每60秒检查作业(即at命令指定的任务)队列,作业时间到时会运行。
时间定义:
例子:
at 5pm + 2 days #后天的下午5:00
at 5pm tomorrow #明天下午5:00
at now + 2 minutes #两分钟后执行
注意:写好任务时按两次Ctrl+D结束命令的输入
atq #用来查询任务
atrm 任务号 #删除指定任务
at 与crontab的区别
at提交的作业是一次性的,crontab提交的作业是重复的,永久性的。