Ir al contenido principal

Entradas

Mostrando entradas de julio, 2012

subprocess en python

Vamos a ver cómo hacer un script de parada/arranque de un servicio utilizando subprocess. subprocess nos va a permitir lanzar un comando y esperar a que este termine, y una vez terminado, ver en qué estado ha finalizado. El siguiente ejemplo se puede utilizar para llevar a cabo un reinicio automático de un servicios (jboss por ejemplo) y estar seguros de que el servicio es detenido y arrancado correctamente: #!/usr/bin/env python # -*- coding: iso-8859-15 -*- import subprocess script_arranque='/etc/init.d/jboss start' script_parada='/etc/init.d/jboss stop' #paramos jboss pipe=subprocess.Popen(script_arranque, stdout=subprocess.PIPE, shell=True) estado=pipe.wait() out, err = pipe.communicate() if estado == 0:         print "Estado salida correcto." else:         print "Salida de error: " + str(err)   '''en este caso, el único proceso java que corre es jboss, si hubiese más de uno, la siguiente opción no sería válid

Envío de correo en python bajo SSL

Si necesitáis enviar correos con python por ssl de una forma sencilla, recomiendo el uso de pyzmail ( http://www.magiksys.net/pyzmail/ ). Para instalar pyzmail, lo podéis hacer directamente con pip: pip install pyzmail Si no tenemos instalado pip, para instalarlo: wget http://python-distribute.org/distribute_setup.py  python distribute_setup.py  easy_install pip Os dejo un sencillo código de ejemplo: # -*- coding: iso-8859-15 -*- import pyzmail #Componemos el correo sender=('Yo','cuenta@remitente.es') recipients=['cuenta@destinatario.es',] subject='Prueba envio SSL' text_content='Este correo ha sido enviado bajo SSL' prefered_encoding='iso-8859-1' text_encoding='iso-8859-1' #Vamos a adjuntar dos ficheros fichero=open('fichero.txt.tar.gz', 'rb').read() fichero2=open('fichero.txt','rb').read() payload, mail_from, rcpt_to, msg_id=pyzmail.compose_mail( sender, recipient