Archivi tag: python

Python + Oracle – Installare cx_Oracle su Fedora 14

Ho trovato l’installazione di cx_Oracle un po’ complicata su Fedora 14, quindi procedo a spiegare passo per passo come fare.

Prima di tutto scarichiamo alcuni pacchetti dell’istant client dal sito di oracle:

  • instantclient-basic-linux32-11.2.0.2.0.zip
  • instantclient-sdk-linux32-11.2.0.2.0.zip
  • instantclient-odbc-linux32-11.2.0.2.0.zip
  • instantclient-sqlplus-linux32-11.2.0.2.0.zip
  • instantclient-tools-linux32-11.2.0.2.0.zip

I primi due archivi sono strettamente necessari, il resto é tutto grasso che cola ;).

Da utente root creiamo la directory /opt/ORACLE e scompattiamoci tutti gli zip.
É necessario impostare alcune variabili d’ambiente nel .profile (o .bashrc) di tutti gli utenti che necessiteranno di utilizzare il client oracle.

# Export ORACLE
export ORACLE_HOME=/opt/ORACLE/instantclient_11_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME

Aggiorniamo l’env, oppure effettuiamo un login/logout.

Creiamo un soft link della libreria libclntsh.so.11.1

cd $ORACLE_HOME
ln -s libclntsh.so.11.1 libclntsh.so

Ricordiamoci anche di compilare il file tnsames.ora in $ORACLE_HOME/network/admin/

Scarichiamo l’archivio “Source Code only” aggiornato all’ultima versione di cx_Oralce dalla pagina di cx_Oracle su souceforge, al momento il pacchetto é questo e scompattiamolo in una directory di comodo.

Da dentro la directory diamo i due comandi di installazione

python setup.py build
python setup.py install

Sotto Fedora 14 é inoltre necessario abbassare il livello di sicurezza (oppure aggiungerci le regole di SeLinux, prima o poi impareró anche quello gh :\ )

setenforce 0

Fatto.
Buon lavoro 🙂

Annunci
Contrassegnato da tag , , , , , ,

Trimming in Python

Il trimming é una delle manipolazioni delle stringhe piú importanti per controllare l’input. Uno spazio in piú all’inizio o alla fine dell’input non é visibile per l’utente che lo inserisce ma per la macchina che lo legge é ben diverso.

In python é possibile eliminare questi spazi in eccesso con la funzione “.strip()”


import string
" my input ".strip()

vedremo che il ritorno sará senza gli spazi prima e dopo.

Contrassegnato da tag , , ,

Controllare lo stato dei dischi via python

Uno script per controllare lo stato dei dischi, quando viene trovato un disco oltre la soglia di allerta viene inviata una mail all’indirizzo specificato con i dischi troppo pieni.

#!/usr/bin/env python

import commands
import re
import smtplib

'''
CONFIGURARE QUI
'''
macchina="bscs@itxha309"
devices=[
  ["/mnt/path1", 95],
  ["/mnt/path2",98],
]
addrlist=['alessandro.lorenzi@myMail.com']
'''
Fine CONFIGURAZIONE
'''
dimensione = "([0-9])+%"
mail = ""
count = 0

for device in devices:
  devstat= os.statvfs(device[0])
  free =  int(devstat[3])  *100/  int(devstat[2])
  if int(100-free) >= int(device[1]):
    mail = mail + "%s\t%s \t%s\n" %(device[0], device[1], m.group(0))
    count+=1

if (count > 0):
  mail = "Devices quasi pieni:\n" + mail
  server = smtplib.SMTP('localhost')
  for toaddr in addrlist:
    print toaddr
    server.sendmail(macchina, toaddr, mail)
  server.quit()

 

Ovviamente si sposa bene con cron. Basta inserire lo script in crotab per farlo eseguire ogni minuto ed essere sempre informato dello stato dei propri dischi.

Contrassegnato da tag , , , ,