1.crontab定时调用1.1crontab安装与使用
Ubuntu下安装crontab可以通过apt安装:
安装:sudo apt install cron
crontab 常使用的命令选项有:
crontab -e #新建/编辑一个定时任务表
crontab -l #列出当前正在执行的任务表
crontab -r #移除当前正在执行的任务表
提示:第一次使用crontab-e创建一个须要执行的任务表时会想让你选择使用哪一种编辑器,通过输入对应数字进行选择linux修改文件名,如右图所示:
然后假如我们想要更改默认的编辑器可以使用select-editor命令进行更改。编辑时间和任务后保存退出该文件即可定时执行,比如添加如下内容:
* * * * * date >> /tmp/time.txt #每隔一分钟执行一次 将当前时间打印到/tmp/time.txt
等待几分钟后既可以在指定文件中见到如下内容:
1.2crontab中触发时间设置
时间设置
# 计划任务定义的例子:
# .---------------- 分 (0 - 59)
# | .------------- 时 (0 - 23)
# | | .---------- 日 (1 - 31)
# | | | .------- 月 (1 - 12)
# | | | | .---- 星期 (0 - 7) (星期日可为0或7)
# | | | | |
# * * * * * 执行的命令
*/1 * * * * date >> /tmp/log.txt #每隔一分钟执行一次
0 * * * * echo "An hour is up" >> /tmp/log.txt #但到达整点时间执行一次
在crontab中每条指令对应一个要定时执行的任务,*****执行的命令。其中五个星号分别表示分/时/日/月/礼拜,执行方法可以分为、
1.指定执行的时间间隔,如前面所示第一个*/1表示每隔一分钟执行一次,以这种推须要每隔5分钟执行一次及应当设置为:*/5****执行的命令。注意若须要每位小时执行一次则须要改写为0*/1***执行的命令须要将分钟为设置为0,否则表示在指定小时下的每一分钟都执行一次。
2赐教执行的时间时刻linux循环执行脚本,如前面所示第一个0****表示到每位整点执行一次(分钟数为0)。
2.调用shell脚本
0 * * * * /tmp/test.sh >> /tmp/log.txt 2>&1
通过crontab调用shell脚本时要注意
1.将标准错误流进行重定向
前面的示例代码表示每隔一个小时执行一次test.sh将脚本的标准输出写入到log.txt中,当加上2>&1表示执行出错时的错误流输出重定向到标准输出中最终也会写入到log.txt中。
2.调用时只须要指定须要执行的文件位置深度linux,不须要向shell脚本一样指定命令
3.在crontab中必须调用的SHELL位置,以及全局环境如下所示:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
4.在脚本test.sh首行必须加上#!/bin/shlinux循环执行脚本,并确保test.sh的执行权限