El siguiente script está desarrollado en bash y nos permitirá obtener información muy valiosa de nuestro sistema. Además, de conocer temas como hostname, sistema operativo, memoria, CPU… realizará un test de velocidad y también podremos obtener nuestra IP pública.
Para que el script funcione correctamente será necesario instalar primero speedtest-cli:
sudo apt install speedtest-cli
Creamos el script en el directorio que queramos:
nano /home/alozanox/scripts/info-system.sh
Pegamos el siguiente código y modificamos el token y chat id por el de nuestro bot en Telegram:
#!/bin/bash
# Función para obtener información del sistema
get_system_info() {
echo "***** Información del Sistema *****"
echo "Hostname: $(hostname)"
echo "Sistema Operativo: $(cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2)"
echo "Kernel: $(uname -r)"
echo "Arquitectura: $(uname -m)"
echo "Memoria Total: $(free -h | awk '/^Mem:/ {print $2}')"
echo "Uso de CPU: $(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}')"
echo "Uso de Disco:"
df -h
}
# Función para obtener la dirección IP pública
get_public_ip() {
echo "***** Dirección IP Pública *****"
curl -s ifconfig.me
}
# Función para realizar un test de velocidad de la conexión a Internet
speed_test() {
echo "***** Test de Velocidad de Internet *****"
speedtest-cli
}
# Función para obtener usuarios logados a través de SSH
get_ssh_users() {
local ssh_users=$(who | grep "pts")
if [ -n "$ssh_users" ]; then
echo "***** Usuarios Logados por SSH *****"
echo "$ssh_users"
else
echo "No hay usuarios logados por SSH."
fi
}
# Función para obtener usuarios logados localmente
get_local_users() {
local local_users=$(who | grep -v "pts")
if [ -n "$local_users" ]; then
echo "***** Usuarios Logados Localmente *****"
echo "$local_users"
else
echo "No hay usuarios logados localmente."
fi
}
# Función para enviar el mensaje a Telegram
send_message() {
local message="$1"
local telegram_token="<TOKEN>"
local chat_id="<CHAT_ID>"
curl -s -X POST "https://api.telegram.org/bot${telegram_token}/sendMessage" -d "chat_id=${chat_id}" -d "text=${message}" > /dev/null
}
# Obtener información del sistema
system_info=$(get_system_info)
# Obtener dirección IP pública
public_ip=$(get_public_ip)
# Realizar test de velocidad de Internet
speed_test_result=$(speed_test)
# Obtener usuarios logados por SSH
ssh_users_info=$(get_ssh_users)
# Obtener usuarios logados localmente
local_users_info=$(get_local_users)
# Construir el mensaje
message="$system_info\n\n$public_ip\n\n$speed_test_result\n\n$ssh_users_info\n\n$local_users_info"
# Enviar mensaje a Telegram
send_message "$message"
Le damos permisos de ejecución al script:
chmod +x info-system.sh
Lo ejecutamos:
./info-system.sh
Y recibiremos en nuestro chat de Telegram toda la info:
NOTA: La versión del script que he añadido al post es sin emojis porque por algún motivo no le gustaba a WordPress en la sección de código de la entrada. Podéis añadirlos vosotros manualmente.