Linux 定时执行shell脚本

本文详细介绍了Ubuntu系统下如何安装和使用crontab进行定时任务管理。包括crontab的安装命令,常用编辑任务表的选项,以及如何设置定时任务的时间间隔和特定时间执行。此外,还讲解了通过crontab调用shell脚本时需要注意的事项,如错误流重定向和脚本首行声明。最后,展示了crontab环境变量的配置示例。
摘要由CSDN通过智能技术生成

1.crontab定时调用

1.1crontab安装与使用

	Ubuntu下安装crontab可以通过apt安装:
安装:sudo apt install cron
crontab 常使用的命令选项有:
crontab -e    #新建/编辑一个定时任务表
crontab -l	  #列出当前正在执行的任务表
crontab -r 	  #移除当前正在执行的任务表

提示:第一次使用crontab -e创建一个需要执行的任务表时会想让你选择使用哪一种编辑器,通过输入对应数字进行选择,如下图所示:
在这里插入图片描述
之后如果我们想要修改默认的编辑器可以使用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指点执行的时间时刻,如上面所示第一个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.调用时只需要指定需要执行的文件位置,不需要向shell脚本一样指定命令
3.在crontab中必须调用的SHELL位置,以及全局环境如下所示:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin

4.在脚本test.sh首行必须加上#!/bin/sh,并确保test.sh的执行权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值