首页 > 其他分享 >crontab定时任务不执行?那就试试最初的方法吧

crontab定时任务不执行?那就试试最初的方法吧

时间:2023-12-14 17:00:12浏览次数:27  
标签:bin sbin 试试 crontab usr 定时 local 环境变量

问题背景

服务器的操作系统是centos7,没有python3,给它安装了一个miniconda3,然后发现 python 脚本手动执行没问题,放到定时任务里面就不执行了。

定位问题

查看/etc/crontab文件,内容如下。

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

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

可以看到它的环境变量是:

/sbin:/bin:/usr/sbin:/usr/bin

而系统的环境变量是:

echo $PATH
/usr/local/miniconda3/bin:/usr/local/miniconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

也就是说,crontab没有获取到 python3 这个环境变量,进而导致脚本执行失败。

解决方法

方法1(此路不通):

修改/etc/crontab文件,将其PATH内容修改和系统中的PATH指一样,然后执行systemctl restart crond重启 cron,亲测,这种方法不行。

方法2(亲测可行):

python3的快捷方式添加到crontab的环境变量中,亲测可行。

ln -s /usr/local/miniconda3/bin/python3.9 /usr/bin/python3

还有在脚本中填写绝对路径执行,或者在在脚本中加载环境变量,这里就不做推荐了。

标签:bin,sbin,试试,crontab,usr,定时,local,环境变量
From: https://www.cnblogs.com/0x1001/p/17901549.html

相关文章

  • SpringBoot中项目启动及定时任务缓存数据库常用数据至内存变量并转换后高频调用
    场景定时任务中需要获取数据库中数据进行数据转换成需要的格式并进行后续的业务处理。数据库中的数据更新频率不高。可将数据库中数据在项目启动后读取一遍数据,然后再通过定时任务定时查询数据库更新数据。实现数据库缓存的方式有多种,比如以下:SpringBoot中通过自定义缓存注解......
  • CRON表达式,让你轻松掌握定时任务设置!
    一、什么是CRON表达式1.1介绍CRON表达式概念CRON表达式是一种时间表达式,用于指定定期执行任务的时间规则。它可以被用来执行非常基本的任务,例如从数据库备份到每天自动发送电子邮件。1.2CRON表达式的由来CRON表达式最初是在UNIX和类似的操作系统中创建的。名称“CRON”代表......
  • 基于.NET Core + Quartz.NET+ Vue + IView开箱即用的定时任务UI
    前言定时任务调度应该是平时业务开发中比较常见的需求,比如说微信文章定时发布、定时更新某一个业务状态、定时删除一些冗余数据等等。今天给大家推荐一个基于.NETCore+Quartz.NET +Vue+IView开箱即用的定时任务UI(不依赖数据库,只需在界面做简单配置):Quartz.NetUI。Quartz.......
  • Windows:定时关机任务
    点击Win键+R打开运行,输入下面的代码:shutdown-s-t9000其中9000是时间,单位为秒,这段代码的意思是,注册一个9000秒(两个半小时)后关机的任务,运行成功后会有如下显示:如果你需要取消关机任务,请输入:shutdown-a如果成功,会显示下面的图片......
  • 这款IDEA插件一定得试试
    前言Idea是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序,Idea还具有许多插件和扩展,可以根据开发人员的需要进行定制和扩展,从而提高开发效率,今天我们就来介绍一款国产的API调试插件:Apipost-Helper什么是Apipost-Helper?Apipost-Helper......
  • 这款IDEA插件一定得试试
    前言Idea是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序,Idea还具有许多插件和扩展,可以根据开发人员的需要进行定制和扩展,从而提高开发效率,今天我们就来介绍一款国产的API调试插件:Apipost-Helper什么是Apipost-Helper?Apipost-He......
  • 定时器训练(UAV2101~UAV2105)
    例子001、51单片机定时器训练下面是一份基本的51定时器控制代码#include<reg52.h>//8051头文件//定义时钟频率为12MHz#defineFOSC12000000UL//定义波特率为9600#defineBAUDRATE9600//定义定时器重装值#defineTIMER_RELOAD_VALUE65535-50000+1sbitLE......
  • 视频展播神器,批量添加、快速修改视频,自动循环播放,无损画质!如果你也在寻找一款能够快速
        做展播视频的朋友们,你是否也在为快速修改视频发愁?小小的改动都需要繁琐的剪辑来解决,轮播结束要守着立刻重来一次,耗时耗力,小小的工作,大大的烦恼!来看看这款专为企业展播和针对不露脸无人直播设计的全新工具——《小星星去重播放器》!    《小星星去重播放器》是一......
  • Linux p15 定时任务调度
    【学习课程】:【【小白入门通俗易懂】2021韩顺平一周学会Linux】https://www.bilibili.com/video/BV1Sv411r7vd/?p=14&share_source=copy_web&vd_source=2c07d62293f5003c919b2df9b2e0549e定时任务调度一、crond任务调度基本介绍crontab进行定时任务的设置概述任务调......
  • springboot开启定时不起作用
    1、主启动类开启@EnableScheduling 并且该配置所在的package要能被扫描到 packagecom.gccloud.dataroom.core.config;importcom.gccloud.dataroom.core.module.receive.service.IDataReceiveService;importorg.springframework.beans.factory.annotation.Autowired;......