Python - Programa para avisar de una conexión en Linux (Python3)

 
Vista:
sin imagen de perfil
Val: 16
Ha disminuido su posición en 8 puestos en Python (en relación al último mes)
Gráfica de Python

Programa para avisar de una conexión en Linux (Python3)

Publicado por Sergio (11 intervenciones) el 30/08/2018 15:53:05
Hola, tengo un scipt con python que me avisa de cuando alguien se a conectado a mi sistema, el problema es que cuando lo ejecuto y me conecto con otro usuario me avisa, pero cuando me desconecto con el otro usuario mientras el programa se sigue ejecutando me sigue apareciendo que hay alguien conectado, este es mi script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#! /usr/bin/python3
import subprocess
import time
 
import gi
gi.require_version('Notify', '0.7')
from gi.repository import Notify
Notify.init("ssh2.py3")
 
 
a=subprocess.check_output("who|wc -l",shell=True)
b=int(a.decode("utf-8").strip())
print(b)
def funcion():
 
 
 
   if b>1:
      subprocess.run("zenity --info --text 'Alguien se a conectado'", shell=True)
      subprocess.run("sudo xterm -e home/sergio/Escritorio/prueba.sh",shell=True)
 
      if b==2:
         su1=subprocess.check_output("who|tail -2",shell=True)
         su2=su1.decode("utf-8").strip()
         print("Se a conectado: ")
         print(su2)
         Notify.Notification.new("Alguien se a conectado", su2).show()
 
      if b==3:
         se1=subprocess.check_output("who|tail -3",shell=True)
         se2=se1.decode("utf-8").strip()
         print("Se a conectado: ")
         print(se2)
         Notify.Notification.new("Alguien se a conectado", se2).show()
 
      if b>=4:
         si1=subprocess.check_output("who",shell=True)
         si2=si1.decode("utf-8").strip()
         print("Se an conectado mas de 4 usuarios: ")
         print(si2)
         Notify.Notification.new("Alguien se a conectado", si2).show()
 
 
 
while True:
   funcion()
   time.sleep(5)

Quiero que no siga apareciendo que alguien se a conectado si solo estoy yo. Si podeís mejorar mi programa hacerlo y explicarmelo, me gustaría aprender. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Programa para avisar de una conexión en Linux (Python3)

Publicado por xve (1646 intervenciones) el 30/08/2018 16:26:32
Hola Sergio, creo que estas lineas:
1
2
a=subprocess.check_output("who|wc -l",shell=True)
b=int(a.decode("utf-8").strip())
tendrían que esta dentro de la función funcion() para que se ejecuta en cada llamada a la función, no solo cuando se inicie el script.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha disminuido su posición en 8 puestos en Python (en relación al último mes)
Gráfica de Python

Programa para avisar de una conexión en Linux (Python3)

Publicado por Sergio (11 intervenciones) el 31/08/2018 02:33:01
Es verdad, solo se ejecuta la función en el while, menudo fallo tonto, de todas formas estoy aprendiendo. Muchas gracias por tu ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar