计划任务服务可以满足在无需人工干预的情况下,让各个服务、命令在指定的时间段运行、停止。而计划任务又分为 “一次性” 和 “长期性” 之分。
一次性任务
一次性任务是由 atd 服务/进程 来实现的,计划的管理操作是 at
命令,具体的可用参数如下:
参数 | 作用 |
---|---|
at <时间> | 安排一次性任务 |
atq 或 at -l | 查看任务列表 |
at -c 序号 | 预览任务与设置环境 |
atrm 序号 | 删除任务 |
例子:
一般用 at 命令创建计划任务有交互式和非交互式两种方法。
① 交互式
输入 at 时间
进入任务编辑,任务编辑完毕后要敲击 Ctrl+d 来保存退出。
②非交互式
直接用 echo 语句将要执行的命令传送给 at 命令。
echo "ping 192.168.10.1 | at 23:10"
永久性任务
对于创建长期可循环的计划任务,则需要用到cron服务,具体使用方法如下:
- 创建、编辑计划任务:crontab -e [-u 用户名]
- 查看计划任务:crontab -l [-u 用户名]
- 删除计划任务:crontab -r [-u 用户名]
在创建、编辑计划任务的时间段时,有一个固定的格式:
分钟 小时 日期 月份 星期 命令
然后输入命令 run_command
字段 | 说明 |
---|---|
分钟 | 取值为 0-59 之间的整数 |
小时 | 取值为 0-23 之间的整数 |
日期 | 取值为 1-31 之间的整数 |
月份 | 取值为 1-12 之间的整数 |
星期 | 取值为 0-7 之间的整数,其中 0 和 7 都代表星期日 |
命令 | 要执行的命令或程序脚本 |
每周 1、3、5 的 3 点 25 分 将 /home/wwwroot 目录打包备份为 backup.tar.gz
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot
自动在每周 1-5 的 1 点 打包网站目录后清除 /tmp 目录下所有文件
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*