Əsas səhifə > PHP/Python > Running Python Script from crontab

Running Python Script from crontab

Oracle expdp — üçün yazmış olduğum sadə script adi halda yəni birbaşa çağırdıqda işləyirdi , lakin cron-a qoşduqda işləmirdi.

Crontab-in outputunu hər hansısa fayla verdikdən sonra expdp: command not found error-unu gördüm.
Çox zaman bu error ORACLE_HOME/bin tapılmadıqda çıxır. Dolayısı ilə bu PATH-ləri Python kod daxilində environment variables şəklində verməklə problemi həll etdim.

Nümunə kod aşağıdakıdır:

import os
import datetime
import subprocess

os.environ['HOME'] = "/home/oracle"
os.environ['PATH'] = "/opt/app/oracle/product/11.2.0/db_1/bin:/usr/sbin:/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin"
os.environ['ORACLE_BASE']="/opt/app/oracle"
os.environ['ORACLE_HOME']="/opt/app/oracle/product/11.2.0/db_1"
os.environ['ORACLE_SID']="XXXXX"
os.environ['LD_LIBRARY_PATH'] = "/opt/app/oracle/product/11.2.0/db_1/lib:/lib:/usr/lib"


now = datetime.datetime.now()


file_name = 'xxxxx_'+str(now.day)+'_'+str(now.month)+'_'+str(now.year)+'_'+str(now.hour)+'_'+str(now.minute)+'_'+str(now.second)

comm = 'expdp'
connection = 'xxxx/xxxx'
schema = 'xxxxx'
dump_file = file_name+'.dmp'
log_file = file_name+'.log'

command = '%s %s schemas=%s directory=data_pump_directory dumpfile=%s logfile=%s' % (comm, connection, schema, dump_file, log_file)

cm = subprocess.call(command, shell=True, env=os.environ)

Crondan çağırıldıqda artıq Python fayl çalışacaq. Script çalışdıqda çalışdığı tarix və zaman da qeyd olunmaqla .dmp və .log fayllar generate olunacaq.
Məsələn aşağıdakı şəkildə:

xxxxx_31_1_2014_8_0_1.dmp
xxxxx_31_1_2014_8_0_1.log

Təşəkkürlər…

Kateqoriyalar: PHP/Python Etiketlər:
  1. Hələlik heç bir şərh yoxdur
  1. No trackbacks yet.

Bir cavab yazın

Sistemə daxil olmaq üçün məlumatlarınızı daxil edin və ya ikonlardan birinə tıklayın:

WordPress.com Loqosu

WordPress.com hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Twitter rəsmi

Twitter hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Facebook fotosu

Facebook hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Google+ foto

Google+ hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

%s qoşulma

%d bloqqer bunu bəyənir: