关于linux系统下CRONTAB运行python脚本不生效

关于linux系统下CRONTAB运行python脚本不生效
运维中难免会在定时任务中同时使用shell和python脚本,shell脚本不生效大部分为环境变量的问题,在脚本前增加环境变量基本能解决,如加上 source /etc/profile。

最近遇到python脚本不能执行的情况,状态描述,如目录/home/script/SH下有脚本Qdd.py和download.sh,手动是可以执行的是生效的,如下:
python3 /home/script/SH/Qdd.py

放到定时任务crontab中,如下:
15 03 * * * python3 /home/script/SH/Qdd.py > /dev/null 2>&1
看cron日志是执行了的,但是目录/home/script/SH下没有下载的东西,后将Qdd.py加入到download.sh脚本下,如下:

#!/bin/bash
python3 /home/script/SH/Qdd.py > /dev/null 2>&1
查看/home/script/SH目录没有下载的内容,后来看了下root根目录,在其根目录下,看来是运行了只不过是下载到了root根目录。

将脚本download.sh做如下修改:
#!/bin/bash
cd /home/script/SH
python3 Qdd.py > /dev/null 2>&1

定时任务测试
15 09 * python3 /home/script/SH/download.sh > /dev/null 2>&1
目录/home/script/SH下有下载内容
成功运行

注意:多版本python注意全路径,区分版本

原文地址:https://blog.51cto.com/weimouren/2361650

时间: 2025-01-12 09:23:32

关于linux系统下CRONTAB运行python脚本不生效的相关文章

Linux系统下如何运行.sh文件

在Linux系统下运行.sh文件有两种方法,比如我在root目录下有个datelog.sh文件 第一种(这种办法需要用chmod使得文件具备执行条件(x): chmod u+x datelog.sh): 1.在任何路径下,输入该文件的绝对路径/root/datelog.sh就可执行该文件(当然要在权限允许情况下) 2.cd到datelog.sh文件的目录下,然后执行./datelog.sh 第二种(这种办法不需要文件具备可执行的权限也可运行): 1.在该文件路径下sh加上文件名字即可,sh da

linux 下后台运行python脚本

这两天要在服务器端一直运行一个Python脚本,当然就想到了在命令后面加&符号 $ python /data/python/server.py >python.log &说明:     1. > 表示把标准输出(STDOUT)重定向到 那个文件,这里重定向到了python.log     2. & 表示在后台执行脚本这样可以到达目的,但是,我们退出shell窗口的时候,必须用exit命令来退出,否则,退出之后,该进程也会随着shell的消失而消失(退出.关闭) 使用no

LINUX系统下跑分测试脚本:unixbench.sh

linux 系统跑分测试脚本:     一.下载脚本:        wget http://teddysun.com/wp-content/uploads/unixbench.sh 二.更改权限:        chmod +x unixbench.sh 三.运行测试:        sudo bash ./unixbench.sh 等待结果... 测试时间可能会比较长,请耐性等待! 注释:由于网上找了很多方法都没有成功,这个方法亲测可行,以此博文作为记录,并且分享给有需要的小伙伴! 原文地址

iis下php 运行python 脚本

一:要注意的问题 1.iis下php要对python有权限. 2.cmd要所有者权限. 3.cmd命令行中编码格式是gbk. 4.exec(),shell_exec(),system(),passthru()的区别. 5.windows版本对应的python版本,我这里公司系统很老了,遇到很多坑. 二:例子 1.我这里用的是例子是passthru的例子.也是直接输出结果. 2.上php源码 header("Content-type:text/html;charset=utf-8");

Linux系统下vi编辑器的一些简单使用操作

Linux系统安装vi编辑器 打开终端,输入: sudo apt install vim 然后输入Y等待安装即可 Linux系统下使用vi编辑器的使用 安装好vim后,终端中输入vim即可进入vim编辑界面(或输入"vi filename"打开名为"filename"的文件),此时光标处于最下面一行,此时处于命令行模式: 按"a"或"i"键可进入"插入模式"开始编辑 (在"插入模式"中可

linux系统下运行java项目的脚本编写

本文主要讲linux系统下运行jar包,至于如何打包jar包,放到linux系统下可以参考其他的博客. 在linux系统下运行jar包的命令如下: 1.java -jar xxxxx.jar  // 当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 2.java -jar xxxxx.jar &   //当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行. 3.nohup Java -jar xxxxxx.jar &  //意思是不挂断运行命令,当账户退

linux系统下安装Python环境

如何在Linux系统下搭建Python开发环境(http://www.maiziedu.com/course/python/)?Python在Linux系统中安装方法在Windows下是有很大的区别的,今天就具体记录一下关于 Python 环境软件包在Linux系统下的一些安装步骤 1.升级 Python 到 2.7.10( 默认 2.6.6 ) shell > yum -y install epel-release shell > yum -y install gcc wget readli

Linux系统下的定时任务Crontab

什么是Crontab Crontab是Linux系统下的定时任务工具,相当于WIN7系统的任务计划,能够让系统定时做出详见 Cron Crontab能用来做什么 Crontab能用来添加Linux或者Unix系统中的定时任务,让系统定时执行某个命令,比如服务器的数据库需要每天凌晨重启下,不可能每天凌晨起来手动重启.可以用Crontab添加凌晨5点重启数据库的定时任务,系统到每天凌晨5点就会自动重启数据了. Crontab能做的事情还很多,比如定时发送邮件,定时检验库存,定时清理日志,定时备份数据

linux系统下重启tomcat的shell脚本

linux系统下重启tomcat的shell脚本: tomcat_home=/opt/apache-tomcat-6.0.32 #找到tomcat进程的id并kill掉 ps -ef |grep tomcat |awk {'print $2'} | sed -e "s/^/kill -9 /g" | sh - #删除日志文件,如果你不先删除可以不要下面一行 rm $tomcat_home/logs/* -rf #删除tomcat的临时目录 rm $tomcat_home/work/*