About Me

header ads

[Crontab python] Lỗi cx_Oracle khi chạy python từ crontab của linux

Script python chạy ngon lành cành đào, nhưng chạy bằng crontab toàn xịt
Kiểm tra log chạy crontab (/var/mail/root) báo lỗi sau:
DPI-1047: 64-bit Oracle Client library cannot be loaded: "libclntsh.so: cannot open shared object file: No such file or directory"
Lỗi này do cx_Oracle không tìm thấy thư viện oracle client, do các biến môi trường khai báo ở .bash_profile, crontab không load các biến này lên.
Khắc phục bằng cách thêm viết 1 file .sh để chạy script python:


<code>#!bin/bash
ORACLE_HOME=/usr/lib/oracle/12.2/client64
PATH=$ORACLE_HOME/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_HOME
export LD_LIBRARY_PATH
export PATH

cd /opt/app_epay/bao_cao_truc
python2 bao_cao_truc.py</code>

Cấu trúc tương tự như trên, phần đầu tiên sử dụng để bổ sung hết các biến cần thiết, sau đó mới chạy.

Ngoài ra, còn một cách khác nữa,đó là bổ sung load file .bash_profile ngay trong crontab
<code>* * * * * source /home/user/.bash_profile; <command></code>
Hoặc trong file .sh
<code>#!/bin/bash
source /home/user/.bash_profile

<commands></code>

Đăng nhận xét

0 Nhận xét