实现crontab定时调用python脚本,以及command not found的问题

摘要:
操作1.修改/etc/crontab文件调用python脚本和其他sh的不同是:需要写清楚调用哪个python解释器例如:*12***root/usr/bin/python/home/admin/test.py需要用/usr/bin/python全路径指定.另外需要在此前写root表示调用账户.2.增加日志使用/home/admin/test.py.log2˃&1把错误流重定向到标准输出流全部配置

操作

1.修改 /etc/crontab文件
调用python脚本和其他sh的不同是:需要写清楚调用哪个python解释器
例如:
* 12 * * * root /usr/bin/python /home/admin/test.py
需要用/usr/bin/python 全路径指定.
另外需要在此前写root 表示调用账户.
2.增加日志
使用/home/admin/test.py.log 2>&1 把错误流重定向到标准输出流
全部配置如下:
* 12 * * * root /usr/bin/python /home/admin/test.py >> /home/admin/test.py.log 2>&1


问题

python脚本里调用了别的命令,如git命令,执行时可以执行,但crontab执行时显示command not found
比如我在python脚本里,subprocess.Popen来执行一个'git pull'命令.

def get_err_process_cmd(cmd):
    stdout, stderr = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
                                      stderr=subprocess.PIPE).communicate()
    print stdout
    return str(stderr)

# 直接 ./test.py可以顺利运行
err = get_err_process_cmd('git pull')

crontab配置后,则会是 binsh: git command not found
解决办法:
whereis git去找到git的安装路径,比如我的是 /usr/local/bin/git
然后在python脚本里替换:

git_home = '/usr/local/bin/git'
err = get_err_process_cmd(git_home +' pull')

这样crontab就能顺利执行

免责声明:文章转载自《实现crontab定时调用python脚本,以及command not found的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android-APK绕过签名七大经典排序(Java版)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

OCR库Tesseract初探

1.Tesseract 安装及使用 一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Office Document Imaging(MODI)相比,我们可以不断的训练的库,使图像转换文本的能力不断增强;如果团队深度需要,还可以以它为模板,开发出符合...

python连接服务器上传文件,后台执行命令

上传文件 import osimport paramikoimport loggingfrom django.core.cache import cachefrom YunTai import settings def upload_files(connectIp): ssh = paramiko.Transport((connectIp, 22...

Linux系统下-关于Python和pip的那些报错

   1、在安装过程中出现如下错误: ImportError: No module named setuptools [root@localhost MySQL-python-1.2.5]# python setup.py install Traceback (most recent call last): File "setup.py", line 7,...

python中的subprocess.Popen() 执行shell命令

subprocess介绍 需要用到Python来执行shell脚本, 因此需要查看下subprocess模块文档。 根据官网文档描述:subprocess模块用于创建子进程, 这个模块用于替换旧版本中的一些模块, 如:os.system, os.spawn*, os.popen*, os.popen*, popen2.*, commands.*, subp...

day14-python异常处理

1.     异常 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。最常用异常的形式  异常的常用形式 我们平时工作中最长用到的异常处理的形式: try:     正...

PyQt(Python+Qt)学习随笔:QWidget部件的palette属性以及ColorGroup、colorRole的用途和含义

专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 1、palette属性 QWidget部件的palette属性用于控制部件不同部分的颜色设置。 在Qt Designer的部件属性中,有个部件调色板(palette)的属性,进入后,如下图所示: Qt中提供的调色板pale...