[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>

Nhận xét

Bài đăng phổ biến từ blog này

Sử dụng server để định tuyến mạng - Routing server

Virtual Networking - Ảo hóa mạng

Trình quản lý user và Group trên máy cục bộ (Local user and group)

[vmware workstation] Ngăn máy ảo tự động pause

Cài đặt, cấu hình cơ bản CentOS 7 Minimal

Cách bật card mạng eth0 khi cài đặt Centos 7 Minimal trên VMWARE WORKSTATION

Xây dựng hệ thống monitoring tập trung với PRTG (Phần 1 - Cài đặt)

Căn bản về Storage

Mô hình OSI 7 lớp

Các cấu hình trong khi cấu hình Elastix SIP Trunk (Elastix SIP Trunk Configuration Guide)