Bases del sistema operativo

1

Lo que aprenderás sobre la administración de servidores linux

2

Distribuciones más utilizadas de Linux

3

Instalación de Ubuntu Server

4

Instrucciones para instalar CentOS

5

Gestión del árbol de directorios

6

Diferencias entre LESS, CAT, HEAD y TAIL para lectura de archivos

7

Interacción con archivos y permisos

8

Conociendo las terminales en linux

9

Manejo y monitoreo de procesos y recursos del sistema

10

Monitoreo de recursos del sistema

Instalación y manejo de software en Linux

11

Análisis de los parámetros de red

12

Administración de paquetes acorde a la distribución

13

Manejo de paquetes en sistemas basados en Debian

14

Administración de software con YUM y RPM para CentOS

15

Nagios: Desempaquetado, descompresión, compilación e instalación de paquetes

Administración de usuarios

16

Los usuarios, una tarea vital en el proceso de administración del sistema operativo

17

Creando y manejando cuentas de usuario en el sistema operativo

18

Entendiendo la membresía de los grupos

19

Usando PAM para el control de acceso de usuarios

Servicios en el sistema operativo

20

Autenticación de clientes y servidores sobre SSH

21

Configurando DNS con bind

22

Arranque, detención y recarga de servicios

23

NGINX y Apache en Ubuntu server

24

Instalación y configuración de NGINX

25

¿Qué es NGINX Amplify?

26

NGINX Amplify: Instalación y configuración de un servidor para producción

27

Monitoreo de MySQL con Nagios

28

Configuración de Nagios

29

Los logs, nuestros mejores amigos

30

Otros servicios de logs

Bash scripting

31

Las bases de bash

32

Las variables y su entorno de ejecución

33

Automatizando tareas desde la terminal

34

Automatizando la copia de seguridad

35

Crontab

Asegurando tu servidor

36

Entendiendo la gestión de vulnerabilidades

37

¿Qué es una superficie de ataque? Principio del menor privilegio

38

El firewall y sus reglas

39

Escaneo de puertos con NMAP y NIKTO desde Kali Linux

40

Lynis: Herramientas de auditoria de seguridad en Linux

Proyecto

41

Configuración de Node.js en un ambiente productivo

42

Configuración de NGINX para la aplicación de Node.js

Bonus: Linux en Azure

43

Aprende sobre Linux en Azure

44

Despliegue de una aplicación web MEAN

45

Crea una máquina virtual en la nube de Azure

Conclusiones

46

Lo que aprendiste sobre servidores linux

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Arranque, detención y recarga de servicios

22/46
Recursos

El comando systemctl nos permite manejar los procesos de nuestro sistema operativo. Nuestros servicios pueden estar activos (es decir, encendidos) o inactivos (apagados). También podemos configurar si están habilitados o deshabilitados para correr automáticamente con el arranque del sistema.

  • sudo systemctl status nombre-servicio: ver el estado de nuestros servicios.
  • sudo systemctl (enable, disable) nombre-servicio: activar o desactivar el arranque automático de nuestros servicios.
  • sudo systemctl (start, stop, restart) nombre-servicio: encender, apagar o reiniciar los servicios.
  • sudo systemctl list-units -t service --all: ver todos los servicios del sistema.

El comando journalctl nos permite ver los logs de los procesos de nuestro sistema operativo. Recuerda que todos ellos están almacenados en la carpeta /var/log/.

  • sudo journalctl -fu nombre-servicio: ver los logs de nuestros servicios y hacer un seguimiento.
  • sudo journalctl --disk-usage: ver la cantidad de espacio que ocupan nuestros logs.
  • sudo journalctl --list-boots: muestra la lista de booteos de la computadora.
  • sudo journalctl -p (critic, info, warning, error): filtrar los logs por el tipo de mensaje.
  • sudo journalctl -o json: ver los logs en formato JSON.

Aportes 46

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

RESUMEN DE LA CLASE
|
Arranque, detención y recarga de servicios
|
|
Comandos
|

  • sudo systemctl status servicio: Estado de un servicio
  • sudo systemctl enable servicio: Habilita un servicio
  • sudo systemctl disable servicio: Deshabilita un servicio
  • sudo systemctl start servicio: Enciende un servicio
  • sudo systemctl stop servicio: Apaga un servicio
  • sudo systemctl restart servicio: Reinicia un servicio
  • sudo systemctl list-units -t service --all: Lista los servicios del sistema
  • sudo journalctl -fu servicio: Muestra el log de un servicio
  • sudo journalctl --disk-usage: Muestra cuanto pesan los logs en el sistema operativo
  • sudo journalctl --list-boots: Muestra los booteos de la computadora
  • sudo journalctl -p critic|notice|info|warning|error: Muestra mensajes de determinada categoría de nuestros logs
  • sudo journalctl -o json: Muestra los logs en formato json

Aun sigue funcionando la vieja confiable


service [nombre servicio] [accion]

service apache2 restart




O la otra Vieja confiable /etc/init.d/apache2 restart

sudo journalctl -fu nombre-servicio: ver los logs de nuestros servicios y hacer un seguimiento.
sudo journalctl --disk-usage: ver la cantidad de espacio que ocupan nuestros logs.
sudo journalctl --list-boots: ver los logs desde el último arranque del sistema.
sudo journalctl -p (critic, info, warning, error): filtrar los logs por el tipo de mensaje.
sudo journalctl -o json: ver los logs en formato JSON.

Cual es la diferencia entre iniciar con init.d y systemctl

Un comando que utilizamos para ver los servicios java que corren en nuestro servidores es el siguiente: https://docs.oracle.com/en/java/javase/13/docs/specs/man/jps.html

¿Qué son los Logs?
El sistema de logs de Linux (log = registro), es un mecanismo estándar que se encarga de recoger los mensajes generados por los programas, aplicaciones y demonios y enviarlos a un destino predefinido.

Los tipos de prioridad en ubuntu actualmente son:

“emerg” (0), “alert” (1), “crit” (2), “err” (3), “warning” (4), “notice” (5), “info” (6), “debug” (7)

Para cuando tengas que depurar un servicio y necesites ver la traza con formato (utiliza -f)

  • sudo journalctl -u nombre-servicio -f
    Pero si necesitas ver las ultimas 100, 200 … n líneas (utiliza -n)
  • sudo journalctl -u nombre-servicio -n cantidad-de-lineas
    O combina ambos para una mejor lectura:
  • sudo journalctl -u nombre-servicio -n cantidad-de-lineas -f

Tengo el siguiente error al ejecutar systemctl en la terminal ubuntu de windows

System has not been booted with systemd as init system (PID 1). Can’t operate.
Failed to connect to bus: Host is down

Cuando emito el comando system status apache 2 me dice que:
Unit apache2.service count not be found
Que puedo hacer?

Al momento de ver estatus de algun servicio me sale el siguiente error:

System has not been booted with systemd as init system (PID 1). Can’t operate.
Failed to connect to bus: Host is down

Uso ubuntu de windows 10

Alguna ayuda?? Saben por que puede ser?

Entendido

sudo systemctl status apache2
sudo systemctl enable apache2
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl list-units -t services --all 
sudo journalctl -fu apache2
sudo journalctl --disk-usage
sudo journalctl --list-boots
sudo journalctl --p crit
sudo jornalctl -o json

Cuando dijo con el siguiente comando sudo systemctl -o json, vamos a ver los logs de una forma mas amigable para programadores creí que iba a salir una tabla con colores, id, etc. Pero de lo que salió no entendí nada jajajaja

Seria bueno que destacaran que el viejo sistema de arranque de servicios de linux es el esquema basado en los runlevels y el proceso raiz init

Para lo cual sería bueno que explicaran que son los runlevels y como el proceso init permite cambiar de runlevel, y que un runlevel es un número entero

para saber en que runlevel estamos corriendo podemos correr el comando

**runlevel**```

El runlevel de operación normal es el 5

No es lo mismo saber que el comando init 6 reinicia el sistema operativo, que entender que son los runlevels, y que estamos cambiando de runlevel, y entendemos la evolución de systemVinit hacia systemd y saber porque se dio y cuales eran las necesidades insatisfechas.

Eso es lo que le falta a estas clases, el enfoque histórico, holistico y trascendental de saber porque estamos haciendo las cosas y como funcionan y no solo hacerlas como pericos.

Para eliminar los logs

sudo journalctl --vacuum-time=((time))

ejemplos de time = 2m (dos minutos), 5h (cinco horas), 3weeks (tres semanas), 5months (cinco meses).

Excelente!

Les dejo algunos otros comandos útiles

Para recargar los archivos de configuración de un servicio SIN reiniciarlo

sudo systemctl reload <servicio>

Para reducir el tamaño de los logs cierta cantidad

sudo journalctl --vacuum-size=100M

Para reducir el tamaño de los logs a cierta cantidad de días

sudo journalctl --vacuum-time=3days

con el comando service tambien se puede hacer casi lo mismo que con el comando systemctl

Interesante, sabía lo de systemctl, pero no lo de journalctl, necesito darle una revisada a mis servidores para ver esto

Para tener en cuenta, en caso en algún momento necesites visualizar las ultimas 10, 20,…, n líneas del log del algún servicio, puedes usar el parámetro -n

  • sudo systemctl -u nombre-servicio -n 100 (este te mostrara las ultimas 100 líneas del log)
    Si deseas con formato la traza del log puedes usar el parámetro -f
  • sudo systemctl -u nombre-servicio -f (esto te mostrara en tiempo real la traza mas reciente del log)
    O puedes combinarlas ambas opciones -n -f te mostrara las ultimas líneas que le pases al parámetro -n y seguirá presentándote la información que llegue a la traza del servicio, con formato.

Excelentes comando, corto y directo al grano!. Clase magistral. Básico y con mucha preguntas, pero poco a poco.

sudo systemctl status nombre-servicio: ver el estado de nuestros servicios.
sudo systemctl (enable, disable) nombre-servicio: activar o desactivar el arranque automático de nuestros servicios.
sudo systemctl (start, stop, restart) nombre-servicio: encender, apagar o reiniciar los servicios.
sudo systemctl list-units -t service --all: ver todos los servicios del sistema.

l comando systemctl nos permite manejar los procesos de nuestro sistema operativo. Nuestros servicios pueden estar activos (es decir, encendidos) o inactivos (apagados). También podemos configurar si están habilitados o deshabilitados para correr automáticamente con el arranque del sistema.

El comando journalctl nos permite ver los logs de los procesos de nuestro sistema operativo. Recuerda que todos ellos están almacenados en la carpeta /var/log/.

Saludos compañeros

me tira este error alguien sabe que puedo hacer?

[email protected]:~$ sudo systemctl status apache2
System has not been booted with systemd as init system (PID 1). Can’t operate.

journalct

Si haz intentado

sudo systemctl status apache2

Y el terminal te ha devuelto un “Not find” necesitas instalar apache2 ejecutando el siguiente comando

sudo apt install apache2

Tambien puedes seguir esta guia que he encontrado en internet. Estoy seguro que les ayudara bastante:

https://www.digitalocean.com/community/tutorials/como-instalar-el-servidor-web-apache-en-ubuntu-18-04-es

Para limpiar los logs de journalctl ejecutamos el comando

journalctl --vacuum-time=7d

donde 7d es el número de días que queremos dejar. En este caso, quiero dejar los logs de la última semana.

Nota al pie de página que no tiene que ver con la clase pero que sí tiene que ver con la administración: estaba haciendo la práctica con sshd y me di cuenta que meterse con el servicio no afecta las conexiones activas. Investigué un poco y resulta que si afectas el servicio sshd es sólo el server en escucha, pero quienes ya se encuentran loggeados por ssh no sufren desconexión, ya que dichas sesiones encuentran ligadas en procesos hijos que operan aparte del daemon. No sé qué otros servicios pudieran tener este mismo comportamiento, pero es algo a destacar, ya que en ESTE CASO, el reiniciar un servicio no causará impacto en los usuarios. Y yo me pregunto, ¿eso es bueno o malo?

# Systemd command   |   Sysvinit command (alternative for WSL)
systemctl start service_name	service service_name start
systemctl stop service_name	    service service_name stop
systemctl restart service_name	service service_name restart
systemctl status service_name	service service_name status
systemctl enable service_name	chkconfig service_name on
systemctl disable service_name	chkconfig service_name off

# Monitoring OS services
sudo systemctl
## List OS units
systemctl list-unit-files --type service
sudo systemctl list-units -t services --all

# Status
- sudo systemctl status <service_name>
    enable/disable: indicates if the service will start with the server boot

# Enable/disable a service
- sudo systemctl <enable|disable> <service_name>

# General commands
- sudo systemctl stop <service_name>
- sudo systemctl start <service_name>
- sudo systemctl restart <service_name>

# Notes
- If a service config is modified, it must be restarted

# Search logs of a service
Logs Folder: /var/log/
sudo journalctl -fu <service_name>                              # Debugger for services that does not start
sudo journalctl --disk-usage                                    # Verify how much memory does the logs take up
sudo journalctl --list-reboots                                  # List reboots
sudo journalctl -p <info|notice|warning|error|crit>             # Check service failures
sudo journalctl -p <info|notice|warning|error|crit> -o json     # Output in JSON format

# Delete logs
sudo journalctl --vacuum-time=((<time>))              # time: 2m | 5h | 3weeks | 5months

En mi caso tuve que escribir el siguiente comando para que funcionara
systemctl list-unit-files --type service

Pequeña introducción a los servicios.

Un servicio (o demonio) es un programa que corre en background que tiene el propósito de ejecutar tareas específicas del sistema, como por ejemplo; el servidor SSH para conexiones remotas; un servidor de correo electrónico; varios servidores web; la transferencia de archivos por FTP; la resolución de dirección IP con DHCP, entre otros. Típicamente, Linux ofrece un gestor de servicios llamado systemd.

Que belleza de comando:

sudo systemctl list-units -t service --all

Arranque, detención y recarga de servicios.

.
sudo systemctl status (server) Verificamos si el servidor está funcionando.
sudo systemctl enable (server) Nos sirve para activar el server.
sudo systemctl list-units -t service --all Lista todas las unidades de todos los servicios.
.
sudo journalctl -fu (server) Nos permite administrar todos los “logs”.
sudo journalctl --disk-usage Nos muestra el espacio ocupado por logs
sudo journalctl --list-boots Nos muestra las veces que hemos reiniciado el PC
sudo journalctl -p crit Nos muestra la información de los errores que se han experimentado en el OS.

Arranque , detencion y recarga de servicios:

sudo systemctl status apache2 ---->  verifica status de apache
sudo systemctl stop apache2  ---> detiene servicio
sudo systemctl start apache2 ---> inicia servicio
sudo systemctl enable apache2 ---> activa apache desde inicio del server , disable si no lo quiere desde el inicio

nota: dos servicios no pueden correr en el mismo puerto y mismo server.

sudo systemctl list-units  -t service --all      -----> ver todos los servicios
sudo journalctl -fu apache2 ---> ver los logs de un servicio , el -f es para quedarse pegado viendolos 
sudo journalctl --disk-usage  -----> ver espacio que estan ocupando los logs hasta ahora 
sudo journalctl --list-boots ---> ver todos los boots que ha tenido la maquina
sudo journalctl -p crit  ---> ver los log filtrados por tipo, en ese caso esta filtrado  por crit, pero puede ser info, notice

sudo journalctl -o json -p crit ----> igual que el otro, pero le agrego el -o json, para que el formato de saldia sea un json

systemctl
saber que servicio esta activo o en que status esta

super 😃 probado 😃

sudo systemctl <stop-start-enable-restart-status> <aplicaicon>

Hola, como hago para borrar los log´s???

Gracias

Excelente el contenido del vídeo.

gracias

bastante útil gracias

muy bien!