python脚本crontab执行的几个坑。

坑一:

一般linux都预安装python,但是版本比较低。会出现python程序手工执行正常,但是用crontab执行报错,如缺少某某模块之类的。

最直接的解决办法:使用新版本python的绝对路径执行,如:

0 14 * * * /usr/local/bin/python2.7 /xxx.py > /yyy.log 2>&1 &

坑二:

如果python程序内使用到一些涉及环境变量的方法可能差异,如:

cfg = ConfigParser.ConfigParser()
cfg.read(r‘/home/work/open-falcon/addin/sms.ini‘)

这里如果采用相对路径./sms.ini亦会导致无法正常读取。

tips:脚本内有输出 通过 “> /yyy.log 2>&1 &”输出到日志文件。

时间: 2024-08-08 22:08:52

python脚本crontab执行的几个坑。的相关文章

运行python脚本后台执行

最近搞到了一台服务器,挂一个脚本刷刷河畔在线时间.脚本随便写了两下,能跑到什么时候就随缘了 https://blog.csdn.net/philosophyatmath/article/details/80174687 运行python脚本后台执行 1 脚本后加& python3 run.py >/dev/null 2>&1 & 2 使用nohup在后台执行命令 nohup python3 run.py >/dev/null 2>&1 & 3

Python 脚本的执行

源文件如下,文件名test.py: #!/usr/bin/python# -*- coding: UTF-8 -*- print 'Hello World'print '你好 世界' 执行方式1: python test.py 执行方式2: sudo chmod +x test.py ./test.py 执行方式3,shell脚本也一样,原理是,环境变量PATH中存放的是目录,这些目录中的文件可以直接执行: sudo chmod +x test.py sudo cp test.py /usr/b

阿里云创建邮件告警 python 脚本,执行超时

现象:做了一个邮件告警脚本,python 写的,名称 mail.py,内容如下 #!/usr/bin/python #coding:utf-8 import smtplib from email.mime.text import MIMEText import sys mail_user = '[email protected]' mail_pass = '8xxxxxxxxxxxxj' def send_mail(to_list,subject,content): me = "zabbix 监

appium自动化测试框架——在python脚本中执行dos命令

一般我们运行dos命令,会有两种需求,一种是需要收集执行结果,如ip.device等:一种是不需要收集结果,如杀死或开启某个服务. 对应的在python中就要封装两种方法,来分别实现这两种需求. 1.引入包 import os 2.只执行不收集结果 os.system(command) 3.执行并手机结果 os.popen(command).readlines() 4.代码实现 1 #coding=utf-8 2 import os 3 4 class DosCmd: 5 ''' 6 用来封装w

crontab 执行python脚本不成功解决办法

原因:从crontab日志看执行了脚本,但是python脚本没有执行结果,而且手动执行脚本没有问题 解决办法: * * * * * $HOME/.bash_profile;/usr/bin/python /data/script/python/project/backup.py

关于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 放到定时任务cront

关于python脚本开头两行解释

#!/usr/bin/python指定用什么解释器运行脚本以及解释器所在的位置 # -*- coding: utf-8 -*-用来指定文件编码为utf-8的 这个东东常用在cgi脚本中,apache启动cgi脚本时就靠它来知道这是个python脚本,执行它需要的python解释器路径在哪里.有时候写 #!/usr/bin/python 还是不行,很简单,因为python解释器没有装在/usr/bin/目录,改成其所在目录就行了,或者更通用的方法是:#!/usr/bin/env python

mac上使用crontab周期性执行python脚本

这个月买了本书<Linux系统命令及Shell脚本实践指南>, 看到了一个周期性执行任务cron.顿时产生一个想法: mac上有这种机制么? 加上自己也在15年下半年也学了点python脚本,哈哈,顿时就产生了这个想法“mac上使用crontab周期性执行python脚本”,不得不说 网络是给力的,居然还真有,顿时感觉学海无涯哇. 1. crontab -e 来编辑自定义自己的任务 关于如何定义自己的任务,我们可以参考here 2. 对python脚本进行编辑: 3. 效果就是,如下: 恩,基

crontab常见错误(执行python脚本 no module)

在crontab定时执行python脚本,在shell下没有问题,在crontab中报no module,找不到安装的库. 1 crond服务未启动 crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以停止.如果停止了就无法执行任何定时任务了,解决的方法是打开它: crond 或 service crond start 如果提示crond命令不存在,可能被误删除了,CentOS下可以通过这个命令重新安装: yum -y install crontabs