nakamavg / Born2beroot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Born2beroot

Estudiando comandos por ssh ssh dgomez-m@localhost -p 4242 para conectarnos desde cualquier terminal a nuestra virtual machine Desde Powershell o Macos conseguimos conectarnos.

Estudiando el bash:

Obtener la arquitectura

  • comando uname te devuelve el sistema
  • uname -a (--all) te devuelve sistema arquitectura tipo de so

Nucleos fisicos

  • Aqui utilizaremos el comando grep para buscar dentro del archivo /proc/cpuinfo por "physical id" Esto nos devolvera la linea de physical id
  • El problema es que habra tantas lineas iguales por numero de de nuclos por ejemplo en mi maquina virtual solo me devuelve una linea physical id = 0 en mi pc de casa 28 lineas physical id entonces necesitamos una forma de contarlas entonces usaremos el comando tuberia para que nos cuente el numero de lineas

Nucleos virtuales

Lo mismo pero en este caso contaremos las lineas proccesor grep processor /proc/cpuinfo | wc -l

Memoria ram

  • El comando free nos muestra informacion sobre la ram
  • el total , usado , la memoria libre, etc
  • para la informacion en megas necesitamos --mega ya que -m son mebibytes y a nadie le importa ese formato
  • El comando Awk
  • Es una herramienta potente para procesar textos , en el contexto que estamos usando es por que queremos sacar cierta informacion de free --mega si uamos el operador tuberia despues del free podemos acceder a cada linea y recuperar cosas
dgomez-m@dgomez-m42:~$ free
               total        used        free      shared  buff/cache   available
Mem:         2014520      221808     1823196         596       90000     1792712
Swap:        2244604           0     2244604

free -- mega | awk '$s1 == "Mem:"' Busca la linea donde Ponga Mem

free --mega | awk '$1 == "Mem:"'
Mem:            2062         227        1866           0          92        1835

y si queremos recuperar un valor en concreto usamos free --mega | awk '$1 == "Mem:" {print $Numerodepalabra}' Donde numero de palabra sera el valor que querramos recuperar por ejemplp el total seria

dgomez-m@dgomez-m42:~$ free --mega | awk '$1 == "Mem:" {print $2}'
2062

Para la parte del porcentaje usaremos printf veamos este comando

calculo de porcentaje de memoria usada

dgomez-m@dgomez-m42:~$ free --mega | awk '$1 == "Mem:" {printf("(%d)\n", $3/$2*100)}'
(11)

Este printf nos muestra en entero el porcentaje de memoria usada para hacer el calculo usamos la memoria usada entre el total por cien

Ahora bien si queremos hacer lo que nos piden con dos decimales y % al final tenemos que trabajarlo un poquito mas

free --mega | awk '$1 == "Mem:" {printf("(%f)\n", $3/$2*100)}'
(11.008729)

con %f de float nos imprime todos los decimales pero como solo queremos 2 solo haria falta modificarlo %.2f y como queremos el porcentaje delante y ya lo tenemos controlado del printf el comando final seria asi

free --mega | awk '$1 == "Mem:" {printf("(%.2f%%)\n", $3/$2*100)}'
(10.96%)

Memoria del disco

Para ver el estado de memoria del disco usamos el comando df

image

Para que nos muestre solo las lineas que queremos /dev/ y nos excluya las lineas que contengan /boot usamos grep para filtrar lo que queremos y grep -v para que no nos incluya esas lineas

df -m | grep "/dev/" | grep -v "/boot"

image

ademas vamos a usar el comando awk para quie nos sume todo el espacio usado por estas carpetas

df -m | grep "/dev/" | grep -v "/boot" | awk '{memory_use += $3} END {print memory_use}' image

Una vez obtenido el espacio usado necesitamos el espacio total , que es un comando muy parecido df -m | grep "/dev/" | grep -v "/boot" | awk '{memory_result += $2} END {printf ("%.0fGb\n"), memory_result/1024}'

aqui le estamos diciendo que nos sume los valores en s2 y que nos haga un printf de los valores sumados dividido entre 1024 para obtenerlo en GB image

Tambien debe salir el porcentaje de la memoria usada para ello sumaremos todos los valores de memororia usada y los guradaremos en use sumaremos toda la memoria total y la guardaremos en total al final imprimiremos el use entre el total multiplicado por 100 para obtener el porcentaje. usando en el printf %d para quitarnos los decimales . df -m | grep "/dev/" | grep -v "/boot" | awk '{use += $3} {total += $2} END {printf("(%d%%)\n"), use/total*100}' image

Porcentaje uso de CPU

el comando vmstat image

Memory informacion sobre el uso de la memoria

  • R : nos muestra el numero de procesos en ejecucion
  • b : procesos en espera
  • swpd : la cantidad de memoria virtual utilizada
  • free : la cantiddad de memoria fisica disponible
  • buff : la cantidad de memoria utilizada como memoria intermedia del sistema
  • cache : la memoria cache utilizada por el sistema

swap espacio de intercambio

  • si : la cantidad de memoria intercambiada desde el disco al espacio de swap por segundo
  • so : la cantidad de memoria intercambiada desde swap al disco por segundo

io Entrada y salida

  • bi: la cantidad de bloques leidos desde dispositivos por segundo
  • bo: la cantidad de bloques escritos en dispositivos por segundo

system información sobre la actividad del sistema

  • in : cantidad de interrupciones por segundo
  • cs : cantidad de cambios de contexto por segundo

cpu

  • us : porcentaje de tiempo utilizado en procesos de usuario

  • sy : porcentaje de tiempo utilizado en procesos del sistema

  • id: porcentaje de tiempo de cpu inactiva

  • wa: porcentaje de tiempo esperando entrada y salida

  • st : indica el procentaje de tiempo de cpu robado por maquinas virtuales.

    -- Un valor alto en la columna "st" podría indicar que las máquinas virtuales en tu sistema no están obteniendo suficiente tiempo de CPU y están siendo limitadas por el hipervisor. En entornos de virtualización, es importante monitorear esta métrica para asegurarse de que las máquinas virtuales obtengan suficientes recursos para realizar sus tareas de manera eficiente.

Ahora bien para lo que nos pide el subject que es el % de cpu primero necesitamos solo obtener la ultima linea para esto usaremos un comando tuberia vmstat | tail -1 como solo queremos el valor 15 hacemos por tuberia vmstat | tail -1 | awk '{print $15}' image

ultimo reinicio

comando who -b

nos muestra mas de lo que queremos como solo queremos la fecha tenemos que hacer un awk

who -b | awk '$1 == "system" {print $3 " " $4}' image

uso lvm

En el subject nos piden que pongamos yes or no dependiendo de si lvm esta activo para ello vamos a seguir usando los comandos aprendidos hasta ahora.

comando lsblk

image Nos muestra una lista jerarquica de discos duros particiones tamaño y puntos de montaje

como queremos saber si hay lvm

lsblk | grep "lvm" | wc -l esto nos vas a contar el numero de lineas al buscar con grep lvm image

ahora necesitamos que nos ponga yes or no dependiendo de si encuentra lineas con el grep

if [ $(lsblk | grep "lvm" | wc -l) -gt 0 ]; then echo yes; else echo no; fi

Metemos dentro del if entre corchetes el comando anterior y le metemos - gt 0 para validar que haya mas lineas que 0 dependiendo de el resultado de la validacion nos hace un echo , y para terminar el if debemos poner fi image

Conexiones TCP

Para mirar el numero de conexiones TCP establecidadas usaremos:

ss -ta | grep ESTAB | wc -l

Esto nos contara el numero de lineas ESTAB lo que nos devolvera el numero de conexiones image

Numero de usuarios

users | wc -w

Dirección IP y mac

comandos hostname -I (devuelve ip) ip link( devuelve mucho texto y la mac addres) Para dejarlo bonito debemos hacer un grep de "link/ether" pasarselo por pipe a awk e imprimir solamente la segunda palabra image

numero de comandos ejecutados con sudo

journalctl _COMM=sudo | grep COMMAND | wc -l)

About