#!/bin/bash [[ -e /bin/ejecutar/msg source msg source /etc/adm-lite/cabecalho #FUNCION DE SELECCION selection_fun () { local selection="null" local range for((i=0; i<=$1; i++)); do range[$i]="$i "; done while [[ ! $(echo ${range[*]}|grep -w "$selection") ]]; do echo -ne "\033[1;37m Opcion: " >&2 read selection tput cuu1 >&2 && tput dl1 >&2 done echo $selection } chk_ip=${IP} mportas(){ unset portas portas_var=$(lsof -V -i -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND") while read port; do var1=$(echo $port | awk '{print $1}') && var2=$(echo $port | awk '{print $9}' | awk -F ":" '{print $2}') [[ "$(echo -e $portas|grep "$var1 $var2")" ]] || portas+="$var1 $var2\n" done <<< "$portas_var" i=1 echo -e "$portas" } start(){ [[ -e /bin/ejecutar/checkuser.py ]] || wget -q -O /bin/ejecutar/checkuser.py https://gitea.com/drowkid01/scriptdk1/raw/branch/main/Recursos/usercodes/initcheck-sh/chekuser.py && chmod +x /bin/ejecutar/checkuser.py if [[ $(systemctl is-active chekuser) = "active" ]]; then title 'DESABILITANDO CHEKUSER' systemctl stop chekuser &>/dev/null systemctl disable chekuser &>/dev/null rm -rf /etc/systemd/system/chekuser.service print_center -verd 'chekuser, se desactivo con exito!' enter return fi title 'SELECCIONA UN PERTO' while [[ -z "${chekuser}" ]]; do dport=$(shuf -i 82-150 -n 1) chekuser=$(in_opcion -nama "Ingresa un puerto [def = ${dport}]") [ -z "${chekuser}" ] && chekuser=${dport} del 1 [[ $chekuser = 0 ]] && return if [[ ! $chekuser =~ $numero ]]; then print_center -verm2 'ingresa solo numeros!' sleep 2 del 1 unset chekuser elif [[ $chekuser -lt 10 ]]; then print_center -verm2 'ingresa un numero mayor a 10' sleep 2 del 1 unset chekuser elif [[ $chekuser -gt 65535 ]]; then print_center -verm2 'ingresa un numero menor a 65535' sleep 2 del 1 unset chekuser elif [[ $(mportas|grep -w "$chekuser") ]]; then print_center -verm2 "Puerto en uso!" sleep 2 del 1 unset chekuser fi done echo " $(msg -ama "Puerto") $(msg -verd "$chekuser")" msg -bar print_center 'SELECCIONA UN FORMATO DE FECHA' msg -bar menu_func 'YYYY/MM/DD' 'DD/MM/YYYY' msg -bar date=$(selection_fun 2) case $date in 1) fecha="YYYY/MM/DD";; 2) fecha="DD/MM/YYYY";; esac [[ $date = 0 ]] && return del 5 echo " $(msg -ama "Formato") $(msg -verd "$fecha")" enter del 2 print_center -ama 'Instalando python3-pip' if apt install -y python3-pip &>/dev/null; then del 1 print_center -verd 'Instalando python3-pip ok' else del 1 print_center -verm2 'falla al instalar python3-pip\nintente instalar manualmente\n\ncomando manual >> apt install -y python3-pip\n\nresuelva esta falla para luego intentar' enter return fi print_center -ama 'Instalando flask' if pip3 install flask &>/dev/null; then del 1 print_center -verd 'Instalando flask ok' else del 1 print_center -verm2 '\nfalla al instalar flask\nintente instalar manualmente\n\ncomando manual >> pip3 install flask\n\nresuelva esta falla para luego intentar' enter return fi print_center -ama 'Instalando check' if wget -O /usr/bin/check https://gitea.com/drowkid01/scriptdk1/raw/branch/main/Recursos/usercodes/initcheck-sh/check.sh &>/dev/null; then chmod +x /usr/bin/check mkdir /etc/rec del 1 print_center -verd 'Instalando check ok' else del 1 print_center -verm2 '\nfalla al instalar check\nintente instalar manualmente\n\nresuelva esta falla para luego intentar' enter return fi print_center -ama 'Iniciando servicio' if [[ $(systemctl is-active chekuser) = "active" ]]; then systemctl stop chekuser &>/dev/null systemctl disable chekuser &>/dev/null fi rm -rf /etc/systemd/system/chekuser.service echo -e "[Unit] Description=chekuser Service by @drowkid01 After=network.target StartLimitIntervalSec=0 [Service] Type=simple User=root WorkingDirectory=/root ExecStart=/usr/bin/python3 /bin/ejecutar/checkuser.py $chekuser $date Restart=always RestartSec=3s [Install] WantedBy=multi-user.target" > /etc/systemd/system/chekuser.service # ExecStart=/usr/bin/python3 ${ADM_inst}/chekuser.py $chekuser $date # ps x|grep -v grep|grep chekuser.py|awk '{print $7}' systemctl enable chekuser &>/dev/null systemctl start chekuser &>/dev/null if [[ $(systemctl is-active chekuser) = "active" ]]; then title -verd 'Instalacion completa' print_center -ama "URL: http://$chk_ip:$chekuser/checkUser" else systemctl stop chekuser &>/dev/null systemctl disable chekuser &>/dev/null rm -rf /etc/systemd/system/chekuser.service print_center -verm2 'falla al iniciar servicio chekuser' fi enter } _onli() { print_center -ama 'Instalando check' if wget -O /usr/bin/onlineapp https://gitea.com/drowkid01/scriptdk1/raw/branch/main/Recursos/usercodes/initcheck-sh/onlineapp.sh &>/dev/null; then chmod +x /usr/bin/onlineapp mkdir /etc/rec del 1 print_center -verd 'Instalando onlineapp ok' else del 1 print_center -verm2 '\nfalla al instalar onlineapp\nintente instalar manualmente\n\nresuelva esta falla para luego intentar' enter return fi print_center -ama 'Iniciando servicio' if [[ $(systemctl is-active onliuser) = "active" ]]; then systemctl stop onliuser &>/dev/null systemctl disable onliuser &>/dev/null fi rm -rf /etc/systemd/system/onliuser.service echo -e "[Unit] Description=onliuser Service by @drowkid01 After=network.target StartLimitIntervalSec=0 [Service] Type=simple User=root WorkingDirectory=/root ExecStart=/usr/bin/onlineapp Restart=always RestartSec=15s [Install] WantedBy=multi-user.target" > /etc/systemd/system/onliuser.service systemctl enable onliuser &>/dev/null systemctl start onliuser &>/dev/null if [[ $(systemctl is-active onliuser) = "active" ]]; then title -verd 'Instalacion completa' print_center -ama "URL: http://$chk_ip:81/server/online" else systemctl stop onliuser &>/dev/null systemctl disable onliuser &>/dev/null rm -rf /etc/systemd/system/onliuser.service print_center -verm2 'falla al iniciar servicio User Activos' fi enter } mod_port(){ title 'SELECCIONA UN PERTO' while [[ -z "${chekuser}" ]]; do dport=$(shuf -i 82-90 -n 1) chekuser=$(in_opcion -nama "Ingresa un puerto [def = ${dport}]") [ -z "${chekuser}" ] && chekuser=${dport} del 1 if [[ ! $chekuser =~ $numero ]]; then print_center -verm2 'ingresa solo numeros!' sleep 2 del 1 unset chekuser elif [[ $chekuser -lt 10 ]]; then print_center -verm2 'ingresa un numero mayor a 10' sleep 2 del 1 unset chekuser elif [[ $chekuser -gt 65535 ]]; then print_center -verm2 'ingresa un numero menor a 65535' sleep 2 del 1 unset chekuser elif [[ ! $(mportas|grep -w "$PORT") ]]; then print_center -verm2 "Puerto en uso!" sleep 2 del 1 unset chekuser fi done echo " $(msg -ama "Puerto") $(msg -verd "$chekuser")" enter port_chek=$(ps x|grep -v grep|grep chekuser.py|awk '{print $7}') systemctl stop chekuser &>/dev/null systemctl disable chekuser &>/dev/null sed -i "s/$port_chek/$chekuser/g" /etc/systemd/system/chekuser.service systemctl enable chekuser &>/dev/null systemctl start chekuser &>/dev/null if [[ $(systemctl is-active chekuser) = "active" ]]; then title -verd 'puerto modificado' print_center -ama "URL: http://$chk_ip:$chekuser/checkUser" else systemctl stop chekuser &>/dev/null systemctl disable chekuser &>/dev/null rm -rf /etc/systemd/system/chekuser.service print_center -verm2 'algo salio mal\nfalla al iniciar servicio chekuser' fi enter } mod_fdate(){ title 'SELECCIONA UN FORMATO DE FECHA' menu_func 'YYYY/MM/DD' 'DD/MM/YYYY' msg -bar date=$(selection_fun 2) case $date in 1)fecha="YYYY/MM/DD";; 2)fecha="DD/MM/YYYY";; esac [[ $date = 0 ]] && return del 3 echo " $(msg -ama "Formato") $(msg -verd "$fecha")" enter formato=$(ps x|grep -v grep|grep chekuser.py|awk '{print $8}') systemctl stop chekuser &>/dev/null systemctl disable chekuser &>/dev/null sed -i "s/$formato/$date/g" /etc/systemd/system/chekuser.service systemctl enable chekuser &>/dev/null systemctl start chekuser &>/dev/null if [[ $(systemctl is-active chekuser) = "active" ]]; then title -verd 'formato de fecha modificado' print_center -ama "FORMATO: $fecha" else systemctl stop chekuser &>/dev/null systemctl disable chekuser &>/dev/null rm -rf /etc/systemd/system/chekuser.service print_center -verm2 'algo salio mal\nfalla al iniciar servicio chekuser' fi enter } menu_chekuser(){ title 'VERIFICACION DE USUARIOS ONLINE' num=1 if [[ $(systemctl is-active chekuser) = "active" ]]; then formato=$(ps x|grep -v grep|grep chekuser.py|awk '{print $8}') case $formato in 1)fecha_data="YYYY/MM/DD";; 2)fecha_data="DD/MM/YYYY";; esac fecha_data=$(printf '%15s' "$fecha_data") port_chek=$(ps x|grep -v grep|grep checkuser.py|awk '{print $7}') print_center -ama "URL: http://$chk_ip:$port_chek/checkUser" port_chek=$(printf '%8s' "$port_chek") msg -bar echo " $(msg -verd '[1]') $(msg -verm2 '>') $(msg -verm2 'DESACTIVAR') $(msg -azu 'CHEKUSER')" echo " $(msg -verd '[2]') $(msg -verm2 '>') $(msg -azu 'MODIFICAR PUERTO') $(msg -verd "$port_chek")" echo " $(msg -verd '[3]') $(msg -verm2 '>') $(msg -azu 'MODIFICAR FORMATO') $(msg -verd "$fecha_data")" [[ $(systemctl is-active onliuser) = "active" ]] && echo " $(msg -verd '[4]') $(msg -verm2 '>') $(msg -azu 'DESACTIVAR USER ACTIVOS') $(msg -verd "ON")" ||echo " $(msg -verd '[4]') $(msg -verm2 '>') $(msg -azu 'ACTIVAR ONLINE Usr en APP') $(msg -verd "OFF")" num=4 else print_center -verm2 'ADVERTENCIA!!!\nCheckUser PODRIA CONSUMIR RECURSOS \n EN CONEXIONES O METODOS INESTABLES\n RECOMENDABLE ANALIZAR TU METODO PRIMERO' msg -bar echo " $(msg -verd '[1]') $(msg -verm2 '>') $(msg -verd 'ACTIVAR') $(msg -azu 'CHEKUSER')" fi back opcion=$(selection_fun $num) case $opcion in 1)start;; 2)mod_port;; 3)mod_fdate;; 4)_onli;; 0)return 1;; esac } while [[ $? -eq 0 ]]; do menu_chekuser done