1
0

monitor.sh 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. #!/bin/bash
  2. # Directorio destino
  3. DIR=/var/www/html
  4. # Nombre de archivo HTML a generar
  5. ARCHIVO=monitor.html
  6. # Fecha actual
  7. FECHA=$(date +'%d/%m/%Y %H:%M:%S')
  8. # Declaración de la función
  9. EstadoServicio () {
  10. systemctl --quiet is-active $1
  11. if [ $? -eq 0 ]; then
  12. echo "<p>Estado del servicio $1 está || <span class='encendido'> ACTIVO</span>.</p>" >> $DIR/$ARCHIVO
  13. else
  14. echo "<p>Estado del servicio $1 está || <span class='detenido'> DESACTIVADO | REINICIANDO</span>.</p>" >> $DIR/$ARCHIVO
  15. service $1 restart &
  16. NOM=`less /etc/VPS-MX/controlador/nombre.log` > /dev/null 2>&1
  17. NOM1=`echo $NOM` > /dev/null 2>&1
  18. IDB=`less /etc/VPS-MX/controlador/IDT.log` > /dev/null 2>&1
  19. IDB1=`echo $IDB` > /dev/null 2>&1
  20. KEY="862633455:AAEgkSywlAHQQOMXzGHJ13gctV6wO1hm25Y"
  21. URL="https://api.telegram.org/bot$KEY/sendMessage"
  22. MSG="⚠️ _AVISO DE VPS:_ *$NOM1* ⚠️
  23. ❗️ _Protocolo_ *[ $1 ]* _con Fallo_ ❗️
  24. 🛠 _-- Reiniciando Protocolo_ -- 🛠 "
  25. curl -s --max-time 10 -d "chat_id=$IDB1&disable_web_page_preview=true&parse_mode=markdown&text=$MSG" $URL
  26. fi
  27. }
  28. # Comienzo de la generación del archivo HTML
  29. # Esta primera parte constitute el esqueleto básico del mismo.
  30. echo "
  31. <!DOCTYPE html>
  32. <html lang='en'>
  33. <head>
  34. <meta charset='UTF-8'>
  35. <meta name='viewport' content='width=device-width, initial-scale=1.0'>
  36. <meta http-equiv='X-UA-Compatible' content='ie=edge'>
  37. <title>Monitor de Servicios VPS-MX</title>
  38. <link rel='stylesheet' href='estilos.css'>
  39. </head>
  40. <body>
  41. <h1>Monitor de Servicios By @Kalix1</h1>
  42. <p id='ultact'>Última actualización: $FECHA</p>
  43. <hr>
  44. " > $DIR/$ARCHIVO
  45. # Servicios a chequear (podemos agregar todos los que deseemos
  46. # PROTOCOLO v2ray
  47. EstadoServicio v2ray
  48. # PROTOCOLO SSH
  49. EstadoServicio ssh
  50. # PROTOCOLO DROPBEAR
  51. EstadoServicio dropbear
  52. # PROTOCOLO SSL
  53. EstadoServicio stunnel4
  54. # PROTOCOLOSQUID
  55. [[ $(EstadoServicio squid) ]] && EstadoServicio squid3
  56. # PROTOCOLO APACHE
  57. EstadoServicio apache2
  58. on="<span class='encendido'> ACTIVO " && off="<span class='detenido'> DESACTIVADO | REINICIANDO "
  59. [[ $(ps x | grep badvpn | grep -v grep | awk '{print $1}') ]] && badvpn=$on || badvpn=$off
  60. echo "<p>Estado del servicio badvpn está || $badvpn </span>.</p> " >> $DIR/$ARCHIVO
  61. #SERVICE BADVPN
  62. PIDVRF3="$(ps aux|grep badvpn |grep -v grep|awk '{print $2}')"
  63. if [[ -z $PIDVRF3 ]]; then
  64. screen -dmS badvpn2 /bin/badvpn-udpgw --listen-addr 127.0.0.1:7300 --max-clients 1000 --max-connections-for-client 10
  65. NOM=`less /etc/VPS-MX/controlador/nombre.log` > /dev/null 2>&1
  66. NOM1=`echo $NOM` > /dev/null 2>&1
  67. IDB=`less /etc/VPS-MX/controlador/IDT.log` > /dev/null 2>&1
  68. IDB1=`echo $IDB` > /dev/null 2>&1
  69. KEY="862633455:AAEgkSywlAHQQOMXzGHJ13gctV6wO1hm25Y"
  70. URL="https://api.telegram.org/bot$KEY/sendMessage"
  71. MSG="⚠️ _AVISO DE VPS:_ *$NOM1* ⚠️
  72. ❗️ _Protocolo_ *[ BADVPN ]* _con Fallo_ ❗️
  73. 🛠 _-- Reiniciando Protocolo_ -- 🛠 "
  74. curl -s --max-time 10 -d "chat_id=$IDB1&disable_web_page_preview=true&parse_mode=markdown&text=$MSG" $URL
  75. else
  76. for pid in $(echo $PIDVRF3); do
  77. echo ""
  78. done
  79. fi
  80. #SERVICE PYTHON DIREC
  81. ureset_python () {
  82. for port in $(cat /etc/VPS-MX/PortPD.log| grep -v "nobody" |cut -d' ' -f1)
  83. do
  84. PIDVRF3="$(ps aux|grep pydic-"$port" |grep -v grep|awk '{print $2}')"
  85. if [[ -z $PIDVRF3 ]]; then
  86. screen -dmS pydic-"$port" python /etc/VPS-MX/protocolos/PDirect.py "$port"
  87. NOM=`less /etc/VPS-MX/controlador/nombre.log` > /dev/null 2>&1
  88. NOM1=`echo $NOM` > /dev/null 2>&1
  89. IDB=`less /etc/VPS-MX/controlador/IDT.log` > /dev/null 2>&1
  90. IDB1=`echo $IDB` > /dev/null 2>&1
  91. KEY="862633455:AAEgkSywlAHQQOMXzGHJ13gctV6wO1hm25Y"
  92. URL="https://api.telegram.org/bot$KEY/sendMessage"
  93. MSG="⚠️ _AVISO DE VPS:_ *$NOM1* ⚠️
  94. ❗️ _Protocolo_ *[ PyDirec: $port ]* _con Fallo_ ❗️
  95. 🛠 _-- Reiniciando Protocolo_ -- 🛠 "
  96. curl -s --max-time 10 -d "chat_id=$IDB1&disable_web_page_preview=true&parse_mode=markdown&text=$MSG" $URL
  97. else
  98. for pid in $(echo $PIDVRF3); do
  99. echo ""
  100. done
  101. fi
  102. done
  103. }
  104. #SERVICE PY+SSL
  105. ureset_pyssl () {
  106. for port in $(cat /etc/VPS-MX/PySSL.log| grep -v "nobody" |cut -d' ' -f1)
  107. do
  108. PIDVRF3="$(ps aux|grep pyssl-"$port" |grep -v grep|awk '{print $2}')"
  109. if [[ -z $PIDVRF3 ]]; then
  110. screen -dmS pyssl-"$port" python /etc/VPS-MX/protocolos/python.py "$port"
  111. NOM=`less /etc/VPS-MX/controlador/nombre.log` > /dev/null 2>&1
  112. NOM1=`echo $NOM` > /dev/null 2>&1
  113. IDB=`less /etc/VPS-MX/controlador/IDT.log` > /dev/null 2>&1
  114. IDB1=`echo $IDB` > /dev/null 2>&1
  115. KEY="862633455:AAEgkSywlAHQQOMXzGHJ13gctV6wO1hm25Y"
  116. URL="https://api.telegram.org/bot$KEY/sendMessage"
  117. MSG="⚠️ _AVISO DE VPS:_ *$NOM1* ⚠️
  118. ❗️ _Protocolo_ *[ PyDirec: $port ]* _con Fallo_ ❗️
  119. 🛠 _-- Reiniciando Protocolo_ -- 🛠 "
  120. curl -s --max-time 10 -d "chat_id=$IDB1&disable_web_page_preview=true&parse_mode=markdown&text=$MSG" $URL
  121. else
  122. for pid in $(echo $PIDVRF3); do
  123. echo ""
  124. done
  125. fi
  126. done
  127. }
  128. ureset_python
  129. ureset_pyssl
  130. pidproxy3=$(ps x | grep -w "PDirect.py" | grep -v "grep" | awk -F "pts" '{print $1}') && [[ ! -z $pidproxy3 ]] && P3="<span class='encendido'> ACTIVO " || P3="<span class='detenido'> DESACTIVADO | REINICIANDO "
  131. echo "<p>Estado del servicio PythonDirec está || $P3 </span>.</p> " >> $DIR/$ARCHIVO
  132. #LIBERAR RAM,CACHE
  133. #sync ; echo 3 > /proc/sys/vm/drop_caches ; echo "RAM Liberada"
  134. # Finalmente, terminamos de escribir el archivo
  135. echo "
  136. </body>
  137. </html>" >> $DIR/$ARCHIVO