Linux中设置计划任务
设置计划任务的作用
*为了实现某一时间完成某个指定任务,如定时备份某个文件和目录,定时删除某个文件和目录,定时启动某个服务等等
使用at设置计划任务,at命令是一次性的,完成某个定时任务之后,就失效了
at 用法:
- at [选项] [时间] (这里的时间是使用任务的时间)
- at 时间格式为
时间格式 | 说明 |
---|---|
HH:MM | 当天的HH:MM执行此任务,比如:19:00 |
HH:MM YYYY-MM-DD | 某年的某月某日执行此任务,比如:19:00 2022-05-25 |
选项 | 说明 |
---|---|
-l | 列出所有的计划任务同atq |
-d | 删除指定的计划任务atrm |
-c | 查看某个具体的任务 |
- 用at定义一个简单计划
# at 15:00
at> cat /yyds/a.txt #在at>后填写任务内容
at> <EOT> #任务填写完后,按ctl+D组合键保存退出
- 使用at -l查看任务(最前面的"1"是这个任务的任务ID)
- at -c [任务ID] 可以查看具体任务的内容
使用crontab设置计划任务,这个命令是永久性的,用来定期执行指定任务
crontab 用法:
- crontab [-u user] [文件]|[选项] (不指定用户,默认是当前用户)
- crontab 命令常用选项
选项 | 说明 |
---|---|
-u user | 指定某个用户来设置crontab |
-e | 编辑crontab时程表文件 |
-l | 显示crontab时程表任务 |
-r | 删除crontab时程表任务 |
-i | 删除crontab时程表文件时,给出提示 |
- 用crontab制定定时任务
crontab -e 使用此命令会打开vi|vim编辑器
需要输入的格式为: 分钟(空格)小时(空格)某个月份中的第几日(空格)月份(空格)一个星期的第几天(空格)执行的命令或程序
0 19 25 5 * echo "Hello World!" #这段意思是: 在5月25日19点整输出 "Hello World!"(*表示没有值)
* * * * * echo "Hello World!" #比较特殊,指每分钟执行一次
0 * * * * echo "Hello World!" #到每个整点时都会执行
0 8-20/3 * * * echo "Hello World!" #每天的8:00到20:00,每三小时执行一次
- 查看定制的任务,因为没有指定是哪个用户,所以默认使用的都是当前的用户
crontab -l 用来查看当前用户的时程表任务
crontab -r 用来删除当前用户的时程表任务
因为任务删除了时程表为空,所以显示为"no crontab for 当前用户"