oracle - libclntsh.so.11.1 : cannot open shared object file.

标签 oracle shell cron environment-variables

我想通过icrontab在Linux上调度一个任务,任务是用python写的,必须导入cx_Oracle模块,所以我导出 ORACLE_HOMELD_LIBRARY_PATH在 .bash_profile 中,但是
它引发了错误:

libclntsh.so.11.1: cannot open shared object file.



由于可以通过在 shell 中发出命令来运行任务,例如:
python a.py  # ok

我将 icrontab 中的任务更改为调用我的 Python 脚本的 shell 脚本,但异常再次出现?
# the shell script scheduled in icrontab
#! bash 
python a.py    

你能帮忙怎么做吗?

最佳答案

上周末我需要使用 cx_Oracle 时遇到了同样的问题。在花了很多时间尝试修改 LD_LIBRARY_PATH 变量以包含 libclntsh.so 所在的 $ORACLE_HOME/lib 目录之后,我最终通过创建从所有 Oracle xlibx.so 库到/lib/xlibx 的符号链接(symbolic link)来解决问题。所以。这当然不是“最干净”的解决方案,但它很有可能在不造成太多麻烦的情况下工作:

 cd $ORACLE_HOME/lib
 for f in `ls ./*.so*`; do;
   sudo ln -s $ORACLE_HOME/lib/$f /lib/$f 
 done

在我这样做之后,cx_Oracle 就像一个魅力一样工作。

关于oracle - libclntsh.so.11.1 : cannot open shared object file.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708317/

相关文章:

oracle - 尝试为从现在起 186 天后的每一天创建一个循环

sql - Oracle 时间戳差异大于 X 小时/天/月

linux - 列出基于 ":"分隔符的 uniq 行

node.js - cron 作业会阻塞主进程还是 nodejs 会创建一个工作程序来执行 cron 任务

python - 有没有办法确定 python 脚本是否由 Cron 启动?

sql - 使用循环 Oracle 为每个 ID 遍历的完整路径

Oracle PL/SQL 网络请求并行化

linux - Shellscript逐行复制文件到新文件并每50行添加一行

perl - String::ShellQuote: 我什么时候需要 `shell_quote` ?

cron - 在哪里存储 Cron 作业,它们会一直运行吗?