定时任务调度
基本概念
当你想要让计算机定时的完成某个任务而非人工管理时,你可以使用 Linux 的 crond 服务进行定时任务的设置。crond 是 Linux 系统中用来定期执行命令或者指定程序任务的一种服务或者软件。
有了 crond 服务,你就可以使用 crontab 命令来设置定时任务了。
有两种方法可以设置定时完成任务:
-
任务简单:
直接使用 crontab + 命令 定时执行。 -
任务复杂:
先编写脚本(Shell),然后用 crontab + 文件 来调用脚本文件定时执行。
crontab :进行定时任务的设置。
crontab [选项]
常用选项:
-e :编辑 crontab 定时任务。(操作环境是 vim 编辑器)
-l :查询 crontab 任务。
-r:删除当前用户所有的 crontab 任务。
如果对 vim 操作环境不熟悉可跳转此贴:vim 编辑器的使用
任务配置基本格式
1)格式:
* * * * * command
2)参数说明:
项目 | 含义 | 范围 |
---|---|---|
第一个 ’ * ’ | 一小时中的第几分钟 | 0 ~ 59 |
第二个 ’ * ’ | 一天中的第几小时 | 0 ~ 23 |
第三个 ’ * ’ | 一月中的几号 | 1 ~ 31 |
第四个 ’ * ’ | 一年中的几月 | 1 ~ 12 |
第五个 ’ * ’ | 一周中的星期几 | 0 ~ 7(0、7都表示周天) |
3)特殊符号说明:
特殊符号 | 含义 |
---|---|
* | 代表任何时间(每) |
, | 代表不连续的时间。如 “ 0 8,12,18 * * * ” 表示每天的 8:00、12:00、18:00 执行一次命令 |
- | 代表连续的时间。如 “ 5 7 * * 1-5 ” 表示每周一到周五的 7:05 执行一次命令 |
*/n | 代表每隔多久执行一次。如 “ */10 * * * * ” 表示每隔 10 分钟执行一次命令 |
4)一些案例:
- 在每天 22:30 执行命令
30 22 * * * command
- 每周一到周五 7:00 执行命令
0 7 * * 1-5 command
- 每月的 1号和 15号凌晨 2:00 执行命令
0 2 1,15 * * command
- 每天的凌晨 4:00 每隔 10分钟执行命令
*/10 4 * * * command
一般星期几和几号不要同时出现,容易搞混。
5)小案例:每分钟将当前时间追加到 /tmp 下的 date.txt 文件中
第一种方法
① crontab -e
② i(进入编辑模式)
③ * /1 * * * * date >> /tmp/date.txt (每分钟将当前时间追加到 /tmp 下的 date.txt 文件中)
④ 保存退出,定时任务开始生效。
第二种方法
① vim task.sh &emsp (创建脚本文件)
② date >> /tmp/date2.txt (编写脚本文件)
③ 退出保存
④ chmod 744 task.sh (给 task.sh 文件可执行权限)
⑤ crontab -e
⑥ * /1 * * * * /home/task.sh (定时调用脚本)
⑦ 退出保存,脚本开始定时执行。
6)删除定时任务
- 删除所有:crontab -r
- 删除部分:crontab -e,删掉任务所在行即可。(一般模式下 dd 即可)