Scripting


Saludos: Integrantes de la Gran Comunidad de Usuarios del Software Libre (No necesariamente gratis) y Usuarios del Linux Post Install – Script Bicentenario (CMSL / U-LPI-SB), Compañeros, Colegas y Autodidactas del Siglo XXI, Ingenieros, Licenciados y Técnicos de áreas afines a las Tecnologías de la Información.

Saludo de Bienvenida

RECORDATORIO: Recuerda que muchas veces el carácter de doble guión – – en una orden de comando escrita en el Blog se visualiza como un solo guión largo , el carácter comillas simple se visualiza como un acento y el carácter comillas doble recta   se visualiza como comillas doble inclinadas “, por lo que si al momento de copiar la orden de comando desde el Blog y pegarla en una Consola / Terminal no se ejecuta correctamente la misma, verifique y corrija si el problema es causado por un carácter mal traducido guión largo que debe ser escrito como doble guión. Lo mismo puede llegar a suceder con algún otro carácter no alfanumérico, así que tenga cuidado al copiar y pegar en una Terminal / Consola.

________________________________________________________

Esta sección del Blog tiene como objetivo servir de repositorio de ordenes de comando útiles para la facilitar la creación de Scripts en un Shell tipo Bash o compatible.

Aprender sobre el Shell Scripting, es decir, a ejecutar ordenes complejas sobre el Terminal (Consola) de GNU/Linux es muy útil para automatizar actividades rutinarias e importantes dentro de nuestro Sistema Operativo GNU/Linux para así optimizar nuestros Recursos y Tiempo, es decir, con lo aquí contenido exploraremos como desde el terminal podemos ejecutar ordenes de comando manuales que luego nos permitan programar/automatizar actividades sobre un equipo ahorrando Horas/Labor de ejecución manual o presencial, implementando dichas ordenes en un Script de Bash Shell o compatible y explicado de una manera, practica y sencilla.

Todo esto con la intención de seguir intentar desmitificar otro de esos paradigmas sobre GNU/Linux que muchos de los Usuarios de Sistemas Operativos Privativos y uno que otro Linuxero Novato tienen todavía metido entre ceja y ceja. El mito de “GNU/Linux es muy complejo porque todo lo importante es manual vía terminal” y “No sé como realizar un Script de Bash Shell en un Sistema Operativo GNU/Linux desde un Terminal”.

En fin, abarcaremos como en una sola orden de comando podemos extraer y mostrar valores / información del Sistema Operativo / Hardware, que luego podamos implementar dentro de un Script de Bash Shell para automatizar una tarea especifica. Concentrándonos en las Mejores Practicas (Best Practices) necesarias para obtener un excelente diseño de un Script de la manera más eficiente y practica.

Bueno aquí lo tienen, y demuéstrenle a los escépticos e incrédulos que no es cierto, que solo es desconocimiento o falta de experiencia técnica. Estos son pequeños “Tips” que nos facilitan realizar esas operaciones técnicas reservadas por lo general para personas expertas (Administradores de Sistemas y/o Servidores) en DEBIAN o nuestro Sistema Operativo Nacional basado en DEBIAN, “Canaima GNU/Linux”.

Bueno aquí les va la información:

VARIABLES CON INFORMACIÓN SOBRE LA FECHA, HORA, VERSIÓN, ARQUITECTURA DEL SISTEMA OPERATIVO Y SUS USUARIOS, ENTRE OTROS PARÁMETROS:

  1. NOMBRE_HOST=$(cat /etc/hostname)
  2. Nombre del Equipo.
  1. FECHA_INICIO=$(date +"%D")
  2. Fecha actual del Sistema
  1. FECHA_ALFABET=$(date +"%d-%b-%y")
  2. Fecha actual del Sistema
  1. FECHA_ALFANUM=$(date +"%d-%m-%y")
  2. Fecha Numérica actual del Equipo
  1. FECHA_ACTUAL_EXT=$(date "+%d-%m-%y_%H-%M-%S")
  2. Fecha actual extendida del Sistema
  1. HORA_INICIO=$(date +"%T")
  2. Hora actual del Sistema
  1. HORA_ACTUAL=$(date +"%H-%M")
  2. Hora actual del Sistema
  1. HORA_ACTUAL_EXT=$(date +"%H-%M-%S")
  2. Fecha actual extendida del Sistema
  1. HORA=$(date +"%H")
  2. Hora del Sistema
  1. MINUTO=$(date +"%M")
  2. Minuto del Equipo
  1. SEGUNDOS=$(date +"%S")
  2. Segundos del Sistema
  1. DIA=$(date +"%d")
  2. Día actual del Equipo
  1. MES_ALFABET=$(date +"%b")
  2. Mes alfabético actual del Equipo
  1. MES_ALFANUM=$(date +"%m")
  2. Mes numérico actual del Equipo
  1. ANO_2C=$(date +"%y")
  2. Año (con 2 cifras) actual del Equipo
  1. ANO_4C=$(date +"%Y")
  2. Año (con 4 cifras) actual del Equipo
  1. NOMBRE_USUARIO=$(cat /etc/passwd | grep 1000 | cut -d: -f1)
  2. Nombre de Usuario creado por UID/GID (EJM. 1000) - VERSIÓN SIMPLE
  1. NOMBRE_USUARIO=$(awk -F: '{if ($3==1000) print $1}' /etc/passwd)
  2. Nombre de Usuario creado por UID/GID (EJM. 1000) - VERSIÓN COMPLEJA
  1. NOMBRE_USUARIO=$(awk -F: '{if ($4==1000) print $1}' /etc/passwd)
  2. Nombre de Usuario creado por UID/GID (EJM. 1000) - VERSIÓN COMPLEJA
  1. IDSUPERUSER=$(id -u | awk '{print $1}')
  2. IUD del Superusuario root
  1. IDSUPERUSER=$(echo $UID)
  2. IUD del Superusuario root
  1. IDSUPERUSER=$(getent passwd $USER | cut -d: -f3)
  2. IUD del Superusuario root
  1. USER_NAME_1=$(cat /etc/passwd | grep 1000 | cut -d: -f1 | awk '{print $1}')
  2. Nombre del usuario 1000
  1. HOME_USER_NAME_1=/home/$USER_NAME_1
  2. /home del usuario 1000 utilizando la variable anterior
  1. USER_NAME_2=$(cat /etc/passwd | grep 1001 | cut -d: -f1 | sed -n '2p' | awk '{print $1}')
  2. Nombre del usuario 1001
  1. HOME_USER_NAME_2=/home/$USER_NAME_2
  2. /home del usuario 1001 utilizando la variable anterior
  1. ID_FIRST_USERNAME=$(for i in 1000 1001 1002 1003 1004; do grep $i /etc/passwd | awk '{print "\t" $1}' | tr -d '[A-Za-z]' | sed 's/::x*//' | cut -c 1-5 | awk '{print $1}' ; done | sed -n '1p')
  2. Almacenar el ID del Nombre del primer usuario creado en el sistema entre los ID del 1000 al 1005. Nota: Solo funciona con la opción -o desactivada del MODO BASH ESTRICTO ó SEGURO (Bash Strict Mode / BSM)
  1. FIRST_ID_USERNAME=$(for i in $(seq 1000 1999); do grep $i /etc/passwd | awk '{print "\t" $1}' | tr -d '[A-Za-z]' | sed 's/::x*//' | cut -c 1-5 | awk '{print $1}' ; done | sed -n '1p')
  2. Almacenar el ID del Nombre del primer usuario creado en el sistema. Nota: Solo funciona con la opción -o desactivada del MODO BASH ESTRICTO ó SEGURO (Bash Strict Mode / BSM)
  1. QUIENSOY=$(who -m | awk '{print $5}' | awk 'NR==1')
  2. Nombre de quien esta logueado en el Sistema.
  1. DIR_INICIO=$(echo $PWD)
  2. Ruta de ejecución del Script.

________________________________________________________

  1. NOM_DISTRO_N=$(cat /etc/os-release | grep ID | grep -v "VERSION" | cut -f2 -d\=)
  2. Nombre (Normal/Extendido) de la Distro detectada con todas las letras en minúscula.
  1. NOM_DISTRO_N=$(cat /etc/os-release | grep ID | grep -v "VERSION_ID" | grep -v "ID_LIKE" | sed 's/ID=//' | sed 's/"//g')
  2. Nombre (Normal/Extendido) de la Distro detectada con todas las letras en minúscula.
  1. NOM_DISTRO_N=$(lsb_release -d | sed 's/Description://' | awk '{print $1}')
  2. Nombre (Normal/Extendido) de la Distro detectada con la primera letra en mayúscula.
  1. NOM_DISTRO_N=$(lsb_release -i | awk '{print $3}')
  2. Nombre (Normal/Extendido) de la Distro detectada con la primera letra en mayúscula.
  1. NOM_DISTRO_N=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\" | awk '{print $1}')
  2. Nombre (Normal/Extendido) de la Distro detectada con la primera letra en mayúscula.
  1. NOM_DISTRO_E=$(lsb_release -d | sed 's/Description://' | awk '{print $1, $2, $3, $4}')
  2. Nombre (Normal/Extendido) de la Distro detectada con la primera letra en mayúscula.
  1. NOM_DISTRO_E=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\")
  2. Nombre (Normal/Extendido) de la Distro detectada con la primera letra en mayúscula.
  1. NUM_ID_DISTRO_N=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g' | awk '{print $1}')
  2. Número de Identificación (Normal/Extendido) de la Distro detectada.
  1. NUM_ID_DISTRO_N=$(cat /etc/os-release | grep VERSION_ID= | sed -n '1p' | sed 's/VERSION_ID=//' | sed 's/"//g')
  2. Número de Identificación (Normal/Extendido) de la Distro detectada.
  1. NUM_ID_DISTRO_E=$(lsb_release -r | sed 's/Release://')
  2. Número de Identificación (Normal/Extendido) de la Distro detectada.
  1. NUM_ID_DISTRO_E=$(lsb_release -d | awk '{print $4}')
  2. Número de Identificación (Normal/Extendido) de la Distro detectada.
  1. NOM_COD_DISTRO=$(lsb_release -c | sed 's/Codename://')
  2. Nombre Código de la Distro detectada.
  1. NOM_COD_DISTRO=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g' | awk '{print $2}' | sed 's/(//g' | sed 's/)//g')
  2. Nombre Código de la Distro detectada.
  1. TIPO_DISTRO=$(uname -o)
  2. Nombre del tipo de Sistema Operativo Linux encontrado.
  1. TIPO_KERNEL=$(uname -s)
  2. Nombre del Tipo de Kernel del Sistema Operativo encontrado.
  1. RELEASE_KERNEL=$(uname -r)
  2. Versión del Kernel del Sistema Operativo encontrado.
  1. VERSION_KERNEL=$(uname -v | awk '{print $4}')
  2. Versión del Kernel del Sistema Operativo encontrado.
  1. ARQ_DISTRO_COD=$(uname -m)
  2. Arquitectura de la Distro detectada en forma codificada.
  1. ARQ_DISTRO_COD=$(uname -m) ; if [[ "$ARQ_DISTRO_COD" = "x86" ]]; then ARQ_DISTRO_HUM=32; else ARQ_DISTRO_HUM=64; fi
  2. Convertir el Tipo de Arquitectura de la Distro detectada en forma codificada
  1. VERSION_BASH=$(bash --version | grep bash | awk '{print $4}')
  2. Versión del Bash Shell.

________________________________________________________

VARIABLES CON INFORMACIÓN SOBRE LA MEMORIA RAM Y LAS PARTICIONES DEL DISCO DURO DEL EQUIPO:

  1. MEM_TOTAL=$(free -h | sed '1 d' | grep Mem: | awk '{print $2}')
  2. Memoria total del Equipo.
  1. MEM_USADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $3}')
  2. Memoria usada del Equipo.
  1. MEM_LIBRE=$(free -h | sed '1 d' | grep Mem: | awk '{print $4}')
  2. Memoria libre del Equipo.
  1. MEM_COMPARTIDA=$(free -h | sed '1 d' | grep Mem: | awk '{print $5}')
  2. Memoria compartida del Equipo.
  1. MEM_ALMACENADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $6}')
  2. Memoria almacenada del Equipo.
  1. MEM_CACHEADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $7}')
  2. Memoria cacheada del Equipo.
  1. SWAP_TOTAL=$(free -h | sed '1 d' | grep Swap: | awk '{print $2}')
  2. Memoria Swap total del Equipo.
  1. SWAP_USADA=$(free -h | sed '1 d' | grep Swap: | awk '{print $3}')
  2. Memoria Swap usada del Equipo.
  1. SWAP_LIBRE=$(free -h | sed '1 d' | grep Swap: | awk '{print $4}')
  2. Memoria Swap libre del Equipo.

________________________________________________________

  1. ESPACIO_TOTAL=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $2}')
  2. Espacio total de una partición predefinida.
  1. ESPACIO_TOTAL=$(df -h | sed '1 d' | grep disk | awk '{print $2}')
  2. Espacio total de una partición predefinida.
  1. ESPACIO_USADO=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $3}')
  2. Espacio usado de una partición predefinida.
  1. ESPACIO_USADO=$(df -h | sed '1 d' | grep disk | awk '{print $3}')
  2. Espacio usado de una partición predefinida.
  1. ESPACIO_DISPONIBLE=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $4}')
  2. Espacio disponible de una partición predefinida.
  1. ESPACIO_DISPONIBLE=$(df -h | sed '1 d' | grep disk | awk '{print $4}')
  2. Espacio disponible de una partición predefinida.
  1. ESPACIO_PORCENTUAL=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $5}')
  2. Espacio porcentual de una partición predefinida.
  1. ESPACIO_PORCENTUAL=$(df -h | sed '1 d' | grep disk | awk '{print $5}')
  2. Espacio porcentual de una partición predefinida.
  1. ESPACIO_PUNTOMONTAJE=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $6}')
  2. Espacio de un punto de montaje de una partición predefinida.
  1. ESPACIO_PUNTOMONTAJE=$(df -h | sed '1 d' | grep disk | awk '{print $6}')
  2. Espacio de un punto de montaje de una partición predefinida.
  1. ESPACIO_TOTAL_RAIZ=$(df -h | sort -k 6 | sed -n '1p' | awk '{print $2}')
  2. Espacio total de la raíz " / " del Sistema Operativo.
  1. ESPACIO_USADO_RAIZ=$(df -h | sort -k 6 | sed -n '1p' | awk '{print $3}')
  2. Espacio usado de la raíz " / " del Sistema Operativo.
  1. ESPACIO_DISPONIBLE_RAIZ=$(df -h | sort -k 6 | sed -n '1p' | awk '{print $4}')
  2. Espacio disponible de la raíz " / " del Sistema Operativo.
  1. ESPACIO_PORCENTUAL_RAIZ=$(df -h | sort -k 6 | sed -n '1p' | awk '{print $5}')
  2. Espacio porcentual de la raíz " / " del Sistema Operativo.

________________________________________________________

VARIABLES CON INFORMACIÓN SOBRE APLICACIONES INSTALADAS EN EL SISTEMA OPERATIVO DEL EQUIPO USANDO DPKG O APTITUDE:

  1. VERSION_SSH=$(dpkg -l | grep "ssh " | egrep '(ii)' | sed -n '1p' | awk '{print $3}')
  2. Versión de un Paquete Instalado usando DPKG
  1. VERSION_LINUX_H=$(dpkg -l | grep linux-headers-`uname -r` | egrep '(ii)' | awk '{print $3}')
  2. Versión de un Paquete Instalado usando DPKG
  1. VERSION_SSH=$(aptitude show ssh | sed -n '5p' | awk '{print $2}')
  2. Versión de un Paquete Instalado usando APTITUDE
  1. VERSION_LINUX_H=$(aptitude show linux-headers-`uname -r` | sed -n '5p' | awk '{print $2}')
  2. Versión de un Paquete Instalado usando APTITUDE
  1. aptitude show $VERSION_SSH $VERSION_LINUX_H | egrep '(Paquete|Estado|Versión)'
  2. Ver información relativa sobre un paquete instalado utilizando las variables anteriores.
  1. aptitude show $VERSION_SSH $VERSION_LINUX_H | egrep '(Package|State|Version)'
  2. Ver información relativa sobre un paquete instalado utilizando las variables anteriores.

________________________________________________________

VARIABLES CON INFORMACIÓN SOBRE PARAMETROS DE RED EN EL SISTEMA OPERATIVO DEL EQUIPO:

  1. PROXY_GATEWAY=$(route -n | sed -n '3p' | awk '{print $2}')
  2. Proxy / Gateway del Sistema Operativo.
  1. DOMINIO=$(cat /etc/resolv.conf | sed '2 d' | grep search | sed -n '1p' | awk '{print $2}')
  2. Dominio del Sistema Operativo.
  1. IP_SERVIDOR_DNS=$(cat /etc/resolv.conf | sed '1 d' | awk '{print $2}')
  2. IP del Servidor DNS del Sistema Operativo.
  1. CONEXION_INTERNET=(`if ping -c 1 8.8.8.8 &> /dev/null; then RESULTADO=Habilitado; else RESULTADO=Deshabilitado; fi ; echo $RESULTADO`)
  2. Estado de la Conexión a Internet.
  1. TEST_PING=$(ping 8.8.8.8 -c 5 | grep packet | awk '{print $6}' | cut -f1 -d%)
  2. Validación de perdida de paquetes hacia Internet.
  1. TEST_LATENCIA=$(ping 8.8.8.8 -c 5 | grep packet | awk '{print $10}' | cut -f1 -d%)
  2. Validación de Latencia de paquetes hacia Internet.
  1. TEST_LATENCIA=$(ping 8.8.8.8 -c 1 | grep time= | awk '{print $7}' | sed 's/time=//')
  2. Validación de Latencia de paquetes hacia Internet.

________________________________________________________

  1. IP_INTERNA=$(hostname -I)
  2. Dirección IP unica Interna del Equipo.
  1. IP_LAN=$(hostname -I | awk '{print $1}')
  2. Primera Dirección IP (eth0 - LAN) del Equipo.
  1. IP_INTERNA=$(hostname -I | awk '{print $2}')
  2. Segunda Dirección IP (eth1 - WAN) del Equipo.
  1. IP_ETH0=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1)
  2. Dirección IP (eth0 - LAN) del Equipo.
  1. IP_ETH0=$(/sbin/ifconfig | sed '/Bcast/!d' | awk '{print $2}' | awk '{print $2}' FS=":" | sed -n '1p')
  2. Dirección IP (eth0 - LAN) del Equipo.
  1. IP_ETH0=$(ifconfig|grep Bcast|awk ' { print $2 }'|awk -F":" ' { print $2 }' | sed -n '1p') ; echo $IP_ETH0
  2. Dirección IP (eth0 - LAN) del Equipo.
  1. MAC_ETH0=$(ifconfig eth0 | sed -n '1p' | awk '{print $5}') ; echo $MAC_ETH0
  2. Dirección física MAC (eth0 - LAN) del Equipo.
  1. IP_ETH0=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1) && IP_ETH0=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1) ; echo IP ETH0: $IP_ETH0 - MAC ETH0: $MAC_ETH0
  2. Aparejamiento de IP/MAC de red eth0 del Equipo.

________________________________________________________

VARIABLES CON INFORMACIÓN SOBRE PARAMETROS DEL SERVIDOR SSH DEL SISTEMA OPERATIVO DEL EQUIPO:

  1. PUERTO_SSH=$(cat /etc/ssh/sshd_config | egrep '(Port )' | sed 's/^.//g' | awk '{print $2}')
  2. Numero de Puerto configurado para conexiones ssh.
  1. QUIENSSH_IP=$(echo "$SSH_CONNECTION" | awk '{print $1}')
  2. Dirección IP de quien esta logueado en el Sistema vía SSH.
  1. QUIENSSH_PUERTO=$(echo "$SSH_CONNECTION" | awk '{print $2}')
  2. Puerto de conección SSH de quien esta logueado en el Sistema.
  1. USUARIOS_CONECTADOS=$(who | awk '{print $1}')
  2. Usuarios conectados vía ssh al Equipo.
  1. USER_ONLINE=$(who | awk '{print $1}' | wc -w)
  2. Cantidad de Usuarios conectados vía ssh al Equipo.
  1. USER_ONLINE=$(top -n 1 -b | grep "load average:" | awk '{print $6}')
  2. Cantidad de Usuarios conectados vía ssh al Equipo.
  1. ID_USERNAME_SESSION=$(for i in $(who | sed 1q | cut -c 1-8); do grep $i /etc/passwd | awk '{print "\t" $1}' | tr -d '[A-Za-z]' | sed 's/::x*//' | cut -c 1-5 | awk '{print $1}' ; done | sed 1q)
  2. ID del Nombre del primer usuario (alfabeticamente) detectado conectado (con sesión abierta) en el sistema.
  1. USERNAME_ID_SESSION=$(for i in $(who | sed 1q | cut -c 1-8); do grep $i /etc/passwd | awk '{print "\t" $1}' | tr -d '[A-Za-z]' | sed 's/::x*//' | cut -c 1-5 | awk '{print $2}' ; done ; echo $i)
  2. Nombre del primer usuario (alfabeticamente) detectado conectado (con sesión abierta) en el sistema.

________________________________________________________

VARIABLES CON INFORMACIÓN SOBRE PARAMETROS DE CARPETAS DEL SISTEMA DE FICHERO DEL SISTEMA OPERATIVO DEL EQUIPO:

  1. NOMBRES_CARPETAS=$(ls -l /home | sed '1 d' | awk '{print $9}')
  2. Nombres de carpetas de usuarios creados.
  1. NUMERO_CARPETAS=$(ls -l /home | sed '1 d' | awk '{print $9}' | wc -w )
  2. Numeros de carpetas de usuarios creados.
  1. CARPETA_USUARIO1=$(ls -l /home | sed '1 d' | sort -k2 | sed q | awk '{print $9}')
  2. Usuario con más cantidad de archivos en la Carpeta HOME
  1. DATA_USUARIO1=$(du -sh /home/* | sort -r | sed q | awk '{print $1}')
  2. Tamaño de la carpeta de Usuario con más cantidad de archivos en la Carpeta HOME
  1. DATA_ROOT=$(du -sh /root | awk '{print $1}')
  2. Tamaño de la carpeta del Superusuario root
  1. DATA_CARPETA1=$(du -sh /var | awk '{print $1}')
  2. Tamaño de una Carpeta predefinida. Ejemplo: La carpeta /VAR

________________________________________________________

VARIABLES CON INFORMACIÓN SOBRE PARAMETROS DE CARGA, PROCESOS Y TIEMPOS DEL SISTEMA OPERATIVO DEL EQUIPO:

  1. CARGA_1MIN=$(top -n 1 -b | grep "load average:" | awk '{print $12}' | sed 's/,//2')
  2. Carga del Sistema Operativo en 1 Minuto, usando el comando top.
  1. CARGA_5MIN=$(top -n 1 -b | grep "load average:" | awk '{print $13}' | sed 's/,//2')
  2. Carga del Sistema Operativo en 5 Minuto, usando el comando top.
  1. CARGA_15MIN=$(top -n 1 -b | grep "load average:" | awk '{print $14}' | sed 's/,//2')
  2. Carga del Sistema Operativo en 15 Minuto, usando el comando top.
  1. CARGA_1MIN=$(uptime | awk '{print $10}' | sed 's/,//2')
  2. Carga del Sistema Operativo en 1 Minuto, usando el comando uptime.
  1. CARGA_5MIN=$(uptime | awk '{print $11}' | sed 's/,//2')
  2. Carga del Sistema Operativo en 5 Minuto, usando el comando uptime.
  1. CARGA_15MIN=$(uptime | awk '{print $12}' | sed 's/,//2')
  2. Carga del Sistema Operativo en 15 Minuto, usando el comando uptime.
  1. PROC_ZOMBIE=$(top -n 1 -b | grep "zombie" | awk '{print $10}')
  2. Cantidad de procesos Zombies.
  1. TIEMPO_ENCENDIDO=$(uptime | awk '{print $3,$4}' | cut -f1 -d,)
  2. Tiempo de encendido del Equipo.

________________________________________________________

VARIABLES CON INFORMACIÓN SOBRE ELEMENTOS DE HARDWARE DEL SISTEMA OPERATIVO DEL EQUIPO:

  1. FAB_TVIDEO=$(lspci -v | grep "VGA" | cut -d " " -f05)
  2. Fabricante de la tarjeta de video.
  1. MEM_TVIDEO=$(lspci -v -s `lspci | awk '/VGA/{print $1}'` | sed -n '/Memory.*, prefetchable/s/.*\[size=\([^]]\+\)M\]/\1/p')
  2. Cantidad de Memoria de la tarjeta de video.
  1. DRV_TVIDEO=$(lspci -nnk | grep -i vga -A3 | grep 'in use' | cut -d " " -f05)
  2. Controlador de la tarjeta de video.
  1. A3D_TVIDEO=$(glxinfo | grep "direct rendering: Yes" | awk '{print $3}')
  2. Comprobación de la Habilitación de la Aceleración 3D de la tarjeta de video.

________________________________________________________

  1. FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
  2. Fabricante del Procesador (CPU) del Equipo.
  1. MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
  2. Modelo del Procesador (CPU) del Equipo.
  1. NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}') ; TOTAL_CPU=$((`expr $NUM_CPU + 1`))
  2. Cantidad de Procesadores (CPU) del Equipo.
  1. NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}') ; TOTAL_CPU=$((`expr $NUM_CPU + 1`)) ; NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}') ; TOTAL_NUCLEO_CPU=$((`expr $TOTAL_CPU \* $NUCLEO_CPU`))
  2. Cantidad Total de Nucleos disponibles en los Procesadores (CPU) disponibles del Equipo.
  1. CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
  2. Cantidad de Memoria Caché de los Procesadores (CPU) del Equipo.

________________________________________________________

VARIABLES CON INFORMACIÓN SOBRE X APLICACIÓN INSTALADA EN EL SISTEMA OPERATIVO DEL EQUIPO:

  1. NOMBRE_ZABBIX=$(cat /etc/zabbix/zabbix_agentd.conf | egrep '(Hostname)' | sed '/#/ d')
  2. Nombre configurado del Equipo en el Cliente ZABBIX instalado.
  1. VERSION_VBOX=$(dpkg -l | grep virtualbox | egrep '(ii)' | awk '{print $2}')
  2. Versión del VirtualBox instalado en el Equipo.
  1. VERSION_VBOX=$(dpkg -l | grep virtualbox | egrep '(ii)' | awk '{print $2}') && aptitude show $VERSION_VBOX | egrep '(Paquete|Estado|Versión)'
  2. Versión del VirtualBox instalado en el Equipo.
  3. VERSION_VBOX=$(dpkg -l | grep virtualbox | egrep '(ii)' | awk '{print $2}') && aptitude show virtualbox-5.0 | egrep '(Package|State|Version)'
  4. Versión del VirtualBox instalado en el Equipo.

La imagen tiene un atributo ALT vacío; su nombre de archivo es paypal-me-proyectotictac-blog-proyectotictac.png
Colabora económicamente (Donación) vía PayPal, haciendo clic aquí o en la imagen, o vía bitcoin usando la Billetera digital: 14GNgY1PqaA1pW8jRZ3gWeBQeyjB1fqpbC para ayudar a mantener el sitio web y sus proyectos de Software Libre, Código Abierto y GNU/Linux.

Nota: Recuerda siempre, luego de leer un buen artículo, coméntalo y compártelo en tus canales, grupos o comunidades favoritas de redes sociales para que apoyes a todos los Blogs de Software Libre, Código Abierto y GNU/Linux, de manera tal, de que logren ser más visitados y usados, y en consecuencia, suban sus números de miembros, seguidores y lectores, y estos a su vez, mejoren su aprendizaje y dominio de todos estos temas que nos apasionan como Comunidad TI global. Además, de donar algún aporte a alguno de ellos, si está dentro de tus posibilidades. Y aprovecha de visitar nuestro feed de noticias de diferentes temáticas al final de la web.

Además, únete a nuestro Canal y Grupo de Telegram. Y recuerden que ya tenemos activada la cuenta de correo en Disroot: albertccs1976@disroot.org ), la cuenta en Mastodon y de OpenTube del Blog y Medio informativo TI internacional del Proyecto Tic Tac y su sitio web especial para Venezuela, que además, posee la cuenta de correo: adminweb@proyectotictac.org.ve. O por nuestros canales oficiales en las Redes Sociales tradicionales, privativas y comerciales sobre Facebook e Instagram, más las cuentas siguientes: Twitter 1 y Twitter 2, LinkedIn 1 y LinkedIn 2, YouTube, Pinterest y AnchorFM.

Así pueden unirse o comunicarse con nosotros tanto por el Blog como por todos esos medios, y leer nuestros artículos y noticias publicados y/o compartidos sobre “Ciencia y Tecnología; Informática y Computación; Software Libre, Código Abierto y GNU/Linux; Seguridad Informática y Hacking, Juegos, Ocio y Entretenimiento digital; Economía digital y Comercio Electrónico, Criptoeconomía, Criptomonedas y Blockchain; Freelancing TI y Emprendimiento digital y Trabajo Remoto; Blogging, Marketing Digital y SEO; Social Media y Community Management”, entre muchos temas relacionados más. Además, de acceder a nuestra Biblioteca en línea para JedIT.

Proyecto Tic Tac: Blog y Medio noticioso TI internacional

Marketplace Freelancer
Marketplace Freelancer: Explora nuestra sección dedicada a Emprendedores y Freelancers TI, Trabajadores Remotos y Nómadas Digitales de nuestra comunidad.

Top Ten de Secciones y Publicaciones

Visita y lee nuestras 10 mejores secciones y publicaciones de todos los tiempos:

  1. MilagrOS GNU/Linux
  2. ¿Qué es un Administrador de Servidores y/o Sistemas?
  3. ¿Cómo compilar un Kernel de Linux?
  4. La Catedral y el Bazar: Análisis personal
  5. Biblioteca JedIT
  6. Marcadores
  7. ¿Linuxfx o Windowsfx?
  8. Apps Linux: SL/CA Multiplataforma
  9. Blogs de Linux
  10. Mis Libros
Banner oficial 2 del Proyecto Tic Tac - 2020

Importante: Si nos lees con frecuencia, y te gustan nuestros artículos apóyanos, para que siempre te mantengas bien informado de forma rápida y veraz, usando nuestro “Acortador URL de AdFoc.us” para recaudar fondos para seguir con tan digna tarea. No es invasivo ni usa Captcha. Ayúdanos haciendo clic, mínimo una vez al día, al entrar al Blog. Máximo se puede hacer 5 veces al día. Solo debes hacer clic en el hipervínculo de este mensaje, esperar 6 segundos para hacer clic en el botón “Skip” y volver al Blog. ¡Gracias por tu apoyo, y de antemano te deseamos mucha salud, éxitos y bendiciones, estimado lector! “Acortador URL de AdFoc.us“.

Linux Post Install: Admin del Proyecto Tic Tac