|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - ryuz
26
« en: Viernes 10 de Mayo de 2013, 15:51 »
Creo que manejar el navegador en sí mediante PHP no es posible, deberias intentar combinarlo con JavaScript, que para ello esta...
27
« en: Viernes 10 de Mayo de 2013, 15:49 »
Bueno intentare ayudarte aunque no sea un experto en la materia.  Hace tiempo programe un registro de incidencias de cuando se logeaban erroneamente, por lo que tengo entendido no es exactamente lo que buscas pero intentare contestar.. - Para registrar el nombre de usuario como se encuentra en una variable, hipoteticamente "$username", lo único que debes hacer es una vez logeado o en el intento del logeo, insertar un registro en una tabla de la base de datos que podría ser "$sql = "INSERT INTO incidencias (campo_usuario,campo_date) VALUES ($username,$date)";"
- Para tu segunda pregunta, podrías tener una un campo en la tabla de incidencias_contadas, y antes de añadir el caso registrado, hacer una consultar y obtener el ultimo registro y sumarle al campo numero+1.
Espero haberme explicado...podria quedar algo asi: <?php //funciones de logeo if($logeo == "correcto") { echo "Logeo correcto."; } else { $last_id = mysql_insert_id(); $query0 = mysql_query("SELECT numero_caso FROM incidencias_contadas WHERE id=".$last_id); $result0 = mysql_fetch_row($query0); $ncaso = $result0[0]+1; $sql = "INSERT INTO incidencias_contadas (id,nombre_usuario,numero_caso) VALUES (NULL,$username,$ncaso)"; $query1 = mysql_query($sql); echo "Logeo invalido"; ?>
PD: Si hay algun error de programación no me lo tomes mucho en cuenta, ya que paso tiempo desde que programe con seriedad PHP.
28
« en: Viernes 10 de Mayo de 2013, 11:41 »
Hola  Aun no tengo un nombre real para este código ya que este fin de semana lo reharé pero con clases para que este mejor formado... El programa se basa en la lectura de unos datos recibidos por dos comandos de sistema, y en el caso de que esos valores sean inferiores o superiores dependiendo de CPU o memoria, pues se alertara al usuario con un mensaje en el correo electrónico o un sms/creacion de evento en el calendario. He utilizado la API que Google ofrece para implementar el calendario/funciones de este, en nuestros programas. #!/usr/bin/python #importamos librerias requeridas import atom import gdata.calendar import gdata.calendar.service import random import time import smtplib import math import commands import logging from email.mime.text import MIMEText #variables globales LOGFILE = "checkServer.log" cpu_mail_level = 3 cpu_sms_level = 5 mem_mail_level = 2.5 mem_sms_level = 0.5 email = "******@gmail.com" email_password = "*******" #funciones def check_cpu(): fObj = open("/proc/loadavg","r") fData = fObj.readline() fObj.close() cpu_status = math.ceil(float(fData.split()[0])) return cpu_status def check_mem(): status,mTotal = commands.getstatusoutput("free -m | grep Mem | cut -f11 -d' '") status,mFree = commands.getstatusoutput("free -m | grep Mem | cut -f26 -d' '") mFree = math.ceil((float(mFree)*100)/float(mTotal)) return mFree def is_saturated(): logging.basicConfig(filename=LOGFILE,level=logging.DEBUG,format="%(asctime)s - %(name)s::%(levelname)s %(message)s") cpu_level = check_cpu() mem_level = check_mem() print "Nivel de CPU: %s -- Nivel de Mem: %s" % (cpu_level,mem_level) print "Nivel mail CPU: %s -- Nivel sms CPU: %s" % (cpu_mail_level,cpu_sms_level) print "Nivel mail Mem: %s -- Nivel sms Mem: %s" % (mem_mail_level,mem_sms_level) if( (cpu_level >= cpu_mail_level) and (cpu_level < cpu_sms_level) ): sendmail(cpu_level,"CPU") elif(cpu_level >= cpu_sms_level): sendsms(cpu_level,"CPU") sendmail(cpu_level,"CPU") else: print "CPU funcionando correctamente." logging.debug("CPU: OK") if( (mem_level <= mem_mail_level) and (mem_level > mem_sms_level) ): sendmail(mem_level,"Memoria") elif(mem_level <= mem_sms_level): sendsms(mem_level,"Memoria") sendmail(mem_level,"Memoria") else: print "Memoria funcionando correctamente." logging.debug("Memory: OK") def sendmail(nstatus,by): sFrom = email sTo = email headers = ["From: "+sFrom,"Subject: Alerta PROLIANTG6 saturado.","To: "+sTo,"MIME-Version: 1.0","Content-Type: text/html"] headers = "\r\n".join(headers) msg = "El servidor PROLIANTG6 se encuentra al nivel %s de saturacion de %s." % (nstatus,by) sObj = smtplib.SMTP("smtp.gmail.com",587) sObj.ehlo() sObj.starttls() sObj.ehlo() sObj.login(sFrom,email_password) try: sObj.sendmail(sFrom,sTo,headers+"\r\n\r\n"+msg) except: print "No se pudo enviar el correo." else: print "Se envio el correo correctamente." logging.debug(by+" Email sent.") sObj.close() def sendsms(nstatus,by): cs = gdata.calendar.service.CalendarService() cs.email = email cs.password = email_password cs.source = "GoogleSMSCalender_" + str(random.randint(0, 10000)) cs.ProgrammaticLogin() event = gdata.calendar.CalendarEventEntry() event.title = atom.Title(text="Alerta PROLIANTG6 saturado.") texto = "El servidor PROLIANTG6 se encuentra al nivel %s de saturacion de %s." % (nstatus,by) event.content = atom.Content(text=texto) event.where.append(gdata.calendar.Where(value_string="Repuestos Gualsan")) start_time = time.strftime("%Y-%m-%dT%H:%M:%S.000Z", time.gmtime(time.time() + 2 * 60)) when = gdata.calendar.When(start_time=start_time, end_time=start_time) reminder = gdata.calendar.Reminder(minutes=1, extension_attributes={"method":"sms"}) when.reminder.append(reminder) event.when.append(when) try: new_event = cs.InsertEvent(event, "/calendar/feeds/default/private/full") except: print "No se pudo enviar el sms." else: print "SMS enviado correctamente." logging.debug(by+" SMS sent.") if __name__ == "__main__": is_saturated()
Para quien no lo sepa, Google activo hace tiempo una función de SMS por alerta de eventos, por lo que en la configuración de Google Calendar deben tener el número asociado. Tambien puede servir tener alguna aplicacion de Google Calendar en el telefono por lo que recibirian la alerta de un modo u otro. Para la proxima versión tengo pensado: - POO
- Procesamiento de procesos huerfanos
- ¿?
Hay algunas lineas de más que imprimen texto por ejemplo que era más que nada de referencia.
29
« en: Viernes 10 de Mayo de 2013, 11:21 »
Buenas  , voy a proponer mi código y lo explico brevemente ya que no tiene gran complejidad. Lo he creado en una instancia donde sea necesario leer continuamente un fichero de huellas (*.log). #!/usr/bin/python from sys import exit #Importamos la función de salida de sys. import subprocess #Importamos la libreria de subprocess filename = "/var/log/checkServer.log" #Asignamos la ruta y fichero que leeremos. command = "tail -f %s" % (filename) #Asignamos el comando y el fichero anteriormente asignado. ps = subprocess.Popen(command,shell=True) #Creamos el subproceso. if(ps): #Comprobamos que existe. try: ps.wait() #Intentamos que se quede esperando hasta que interrumpa el programa o termine el mismo. except: exit(1) else: exit(0)
Los valores 1 y 0 de la función exit, se refiere a si se termino sin errores el programa (la lectura).
30
« en: Viernes 10 de Mayo de 2013, 08:15 »
Buenas, un placer ingresar en la comunidad e intentaré aportar mis conocimientos como aprender de ustedes.
Nick: ryuz/RyuZ País: España En que me gusta programar: Python,NASM,PHP,Bash Scripting.
|
|
|