目录
前言
linux计划任务允许用户在特定时间自动执行预定的命令或脚本,为系统管理员和普通用户提供了强大的自动化执行任务的能力。通过合理的权限管理和配置,可以确保系统的稳定运行和安全。
计划任务的设置
延迟性调度服务(at)
at命令可以以交互方式或通过命令行参数来安排任务,其操作简便且支持多种时间格式。
基本用法
at [选项] [日期时间]:此命令用于安排在指定时间执行的任务。
-f <文件>:从指定文件中读入任务。
-q <队列名称>:指定新任务的队列名称。
-l:显示待执行任务的列表。
-d <任务编号>:删除指定的待执行任务。
-m:任务执行完成后向用户发送E-mail。
atq :查看任务计划。
atrm<任务编号>:取消任务计划。
at [时间] 回车 即可写任务,写好后直接ctrl+d即可保存退出:
时间格式
HH:MM:在当天的指定时间执行,如果时间已过,则在第二天执行。
midnight, noon, teatime:分别指深夜、中午和下午茶时间(一般为下午4点)。
12小时计时制:在时间后面加上AM或PM来区分上午和下午。
mm/dd/yy 或 dd.mm.yy:指定具体执行日期。
now + N units:相对计时法,N为时间数量,units为时间单位,可以是minutes、hours、days、weeks。
使用示例
at 11:20 AM:在上午11点20分进入交互模式,然后输入要执行的命令,例如echo "hello world" > ~/at-test.txt。
echo "echo 'hello again' >> ~/at-test.txt" | at now + 1 minute:一分钟后向文件at-test.txt追加内容。
at 5pm + 3 days:三天后的下午5点钟执行/bin/ls命令。
制作一个计划任务,12:00向/root/renwu.txt文件中写入“hello world”:
#at 9:00
at> echo "hello world" > /root/test.txt
周期性调度服务(crontab)
基本用法
crontab –u 用户名 [选项]
-u:为指定的用户设置计划任务
-e:编辑计划任务列表
-l:查看指定用户的计划任务列表,默认为当前用户
-r:删除用户的计划任务列表
编写任务列表文件的格式:minute hour day month day-of-the-week 任务命令
(分、时、天、月、星期、命令)
* | 该范围内的任意时间 | 0 13 * * 2-4 | 周二到周四每天13:00 |
, | 间隔的多个不连续时间点 | 30 5 * * 1,3,5 | 每周一、三、五的5:30 |
- | 一个连续时间范围 | 0 9-12/3 * * * | 9:00到12:00,每隔3小时 |
/ | 指定时间间隔频率 | 0 * */3 * * | 每隔三天 |
任务计划文件存储位置: /var/spool/cron/