Bài đăng

Đang hiển thị bài đăng từ Tháng 11, 2017

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

Cài đặt SQL Plus trên máy chủ linux

Download the matching client oracle-instantclient11.2-basic-11.2.0.2.0.x86_64.rpm oracle-instantclient11.2-sqlplus-11.2.0.2.0.x86_64.rpm Install rpm -ivh oracle-instantclient11.2-basic-11.2.0.2.0.x86_64.rpm rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.2.0.x86_64.rpm Set environment variables in your  ~/.bash_profile ORACLE_HOME=/usr/lib/oracle/11.2/client64 PATH=$ORACLE_HOME/bin:$PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib export ORACLE_HOME export LD_LIBRARY_PATH export PATH Reload your  .bash_profile  by simply typing  source ~/.bash_profile  (suggested by jbass) or Log-out user and log-in again. Now you're ready to use SQL*Plus and connect your server.

[Guide] Cài đặt song song cả 2 phiên bản oracle client và 64 bit trên windows

Hình ảnh
Ông nào systemadmin nào lười, từng tự tay code app phục vụ tự động hóa các công việc nhàm nhán của mình chắc hẳn sẽ có đôi lần gặp những ca oái ăm khi kết nối tới database.  Case này mình đang gặp như sau: Bọn DB oracle có cái khổ là app 64 bit thì phải dùng client x64, app x86 thì phải dùng client x86 (mình thấy như thế, k rõ có trick gì chỗ này ko, ngu xin bỏ qua) - Máy chủ đã cài sẵn oracle client cho app (ứng dụng x64) kết nối tới DB - Trên máy chủ đã cài sẵn python 32bit, cx_Oracle, máy chủ cấm kết nối internet, nhiều app chạy python32 đang có sẵn, nên khỏi nghĩ tới việc cài thêm python hay gì. --> Cài song song cả 2 phiên bản oracle client trên máy chủ, app nền tảng nào thì sử dụng client tương ứng mà chạy Bước 1: cài đặt oracle client: - Tạo 2 thư mục C:\oracle\x64 và C:\oracle\x86 để cài đặt - Cài đặt 2 client vào đây Cài xong đại để sẽ ra được như thế này (x64 cũng tương tự nhé) Bước 2: Mở cmd với quyền admin lên gõ các lệnh sau cd C:\Windows\System32 mklink