该脚本不通过 crontab 运行

问题描述

那是我的 python 脚本:

connection = cx_Oracle.connect(
'REPOR','REPOR','192.168.10.50:1521/db',encoding='UTF-8'
) 
cursor = connection.cursor()
try:
    command = "df -h / /u01"
    result = subprocess.check_output(command,shell=True).decode(sys.stdout.encoding)
    row = [('dm01dbadm01',result,datetime.now(),'0')]
    cursor.bindarraysize = 1
    cursor.executemany("insert into HISTORY values (:1,:2,:3,:4)",row)
    connection.commit()
    cursor.close()
    print("Ok!")
except:
    print("Oooops! Error!"

此脚本将此 df -h 命令的结果写入数据库。

在 linux 终端中完美运行

从终端,我使用以下命令执行脚本: export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1 scl enable python27 -- python2.7 /u01/app/Scripts/script.py

要从 crontab 运行,我执行了以下操作:

使用以下条目创建 bash 脚本: export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1 scl enable python27 -- python2.7 /u01/app/Scripts/script.py

cron 正在执行脚本后,显示 Oooops!错误!。 那么,为什么脚本也没有从 crontab 执行?

解决方法

不应该先导入 crx_Oracle 和 subprocess 模块吗?

另请参考“scl”工具的路径。

crontab 脚本无法获得登录 shell 获得的完整初始化。查看 crontab 文档以获取您的脚本必须在其中运行的运行时环境的准确描述。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...