Configuraciones de Servidores Linux

Configuraciones de ubuntu y Recomendaciones

Introduccion

Esta sección solo se dedica a recopilar configuraciones de uso común en Ubuntu Server

image.png

Formateo y Volumenes de Unidades de Almacenamiento


image.png

El formato de una unidad de almacenamiento es aquel que le indica a la unidad de almacenamiento el protocolo a seguir para almacenar cosas, tales como dejar celdas en blanco entre un archivo y otro, o distribuir un contenido sin importarle la continuidad en las celdas de la unidad de almacenamiento. un disco puede tener "particiones" que no es más que una división en el disco, estas divisiones se usan comúnmente por el sistema para tener distintos formatos dentro de una misma unidad de almacenamiento, aunque podrías tener muchas particiones con el mismo formato a elección del usuario.

Cuando compras una unidad de almacenamiento o intentas usar una unidad de almacenamiento que usabas en Windows este no podrá ser reconocida por Ubuntu server, ya sea porque no tiene un formato o porque tiene un formato no es compatible con sistemas Linux. En caso de que pases una unidad de almacenamiento de Windows a Linux con formato fat32 reconocerá la unidad de almacenamiento, pero yo recomiendo un formato ext4 en caso de que quieras usarlo internamente en el sistema para almacenar cosas.   

Preparación

Antes de comenzar, asegúrese de que el disco esté disponible en el sistema. A veces, la presencia de un dispositivo en el BIOS no garantiza que el sistema operativo lo reconozca. Verifique las unidades disponibles con el comando:

sudo fdisk -l

Check available discs using the command

En nuestro caso hay 2 discos en el sistema: vda y vdb, uno de 50GiB y otro de 100GiB vda es el disco del sistema y no debemos modificarlo. Trabajaremos con el disco vdb.

Advertencia: Es crucial identificar correctamente el disco con el que se va a trabajar. Modificar el disco del sistema por error puede dañar el sistema operativo. Asegúrese de que el disco que va a utilizar no tenga particiones o datos importantes.

Particionamiento del Disco

Para particionar el disco, utilizaremos la utilidad fdisk. Ejecute el siguiente comando, reemplazando vdb por el identificador de su disco:

sudo fdisk /dev/vdb

Al ejecutar el comando, se ingresará al menú interactivo de fdisk. Presione m y luego Enter para ver la lista de comandos disponibles.

Referencia de Comandos de fdisk

Eliminar una Partición

Presione d y seleccione el número de partición a eliminar.
En caso de que no se le muestren las particiones puede buscar la tabla de particiones con p como se le indica en el menú.

Crear una Partición

En este ejemplo, crearemos una partición primaria que ocupe todo el disco.

  1. Presione n para crear una nueva partición.

  2. Seleccione p para partición primaria.

  3. Elija el número de partición: 1.

  4. Presione Enter para aceptar el primer sector por defecto.

  5. Presione Enter para aceptar el último sector por defecto (usará todo el disco).

Si desea crear varias particiones, en el paso 5 en vez de solo presionar Enter ingrese primero el espacio que abarcara, por ejemplo, para una partición de 2 gigabytes, especifique 2G, Las denominaciones de capacidad permitidas son de Kilo, Mega, Giga, Tera y Peta,

  1. Presione w para guardar los cambios y salir.

Formateo del Disco

Después del particionamiento, se crea el dispositivo /dev/vdb1 (o el correspondiente a su disco y número de partición). Ahora formatee la partición con el sistema de archivos ext4 con el comando:

sudo mkfs.ext4 /dev/vdb1
Linux ofrece varios sistemas de archivos, listo los más comunes a continuación:

Montar Unidades de Almacenamiento

Introducción

image.png

Cuando tu conectas una USB en sistemas operativos con interfaz de usuario normalmente este se reconoce de inmediato y te permite navegar. Cuando conectas unidades externas en Ubuntu Server estas no se montan automáticamente, tú tienes que crear esta conexión. para esto se verá como hacerlo a continuación. 

Creación de punto de montaje

image.png

1.- Crear carpeta de montaje 

El primer paso es crear una carpeta donde se montarán o donde pondrás el contenido de la unidad de almacenamiento externa, en sistemas Linux, normalmente estas unidades externas se almacenan en /mnt 

Crearemos la carpeta para el punto de montaje con el siguiente comando

sudo mkdir /mnt/punto-de-montaje

2.- Listar los dispositivos

Una vez ubicado veremos cual es la unidad que montaremos con el siguiente comando

sudo lsblk -f

 Obtendremos una salida como la siguiente

image.png

Como puedes apreciar en la imagen, se listan las unidades (como sda, mmcblk1p1 y nvme01) y sus particiones. 
Guardaremos el nombre de la partición que nos interese y su UUID para usarlo posteriormente.

3.- Montar el sistema de archivos

Para los siguientes comandos es necesario tomar en consideración que debes usar el punto de montaje de tu dispositivo como indique anteriormente, para fines prácticos usare sda1 como la partición con la que trabajaremos, pero cámbiala para todos los siguientes comandos según sea necesario.

Para montar la unidad usaremos el siguiente comando

sudo mount /dev/sda1 /mnt/punto-de-montaje

para verificar que el montaje se haya realizado correctamente puedes utilizar el siguiente comando 

 

df -h | grep sda1

En caso de que este bien montada, podemos hacer este cambio permanente para que se conecte cuando arranque el sistema editando el siguiente archivo mediante el editor de texto nano

sudo nano /etc/fstab

Agregamos la siguiente línea 

UUID=tuUUID /mnt/punto-de-montaje  ext4    defaults,nofail    0   2

Ahora es momento de comprobar que el auto montaje se haya echo correctamente con los siguientes comandos

Primero desmontaremos el disco

sudo umount /mnt/punto-de-montaje

y luego montaremos nuevamente como se hará en el proceso de arranque con el siguiente comando

sudo mount -a

Si todo termino satisfactoriamente no veras ningún error, si sucedió algo tendrás que atenderlo, por ejemplo si tienes el siguiente error 

mount: (hint) your fstab has been modified, but systemd still uses the old version; use 'systemctl daemon-reload' to reload.

tendrás que usar el comando que se te indica.

sudo systemctl daemon-reload

 

 

Crons y Bash files

Introducción

image.png

Los crons son acciones que puedes programar para que se ejecuten a cierte hora del día o de manera recurrente

Crecion de Archivos Bash

puedes crear un archivo bash donde quieras pero te recomiendo que sea un lugar que no muevas de manera recurrente para evitar problemas futuros.

Ejemplo un bash file

Aquí un ejemplo de cómo crear un backup de la data de los contenedores de Docker

Abres el editor de código nano directamente en donde almacenaras archivo.sh

sudo nano /usr/local/bin/backup_dockerdata.sh 

Pegas el contenido en el interior y guardas

#!/bin/bash
SOURCE_DIR="/dockerData"
BACKUP_DIR="/mnt/wdstorage/docker/backup"
RUNNING_CONTAINERS=$(docker ps -q)
echo "Deteniendo contenedores Docker en ejecución..."
docker stop $RUNNING_CONTAINERS
sleep 5
mkdir -p "$BACKUP_DIR"
rsync -av --delete "$SOURCE_DIR/" "$BACKUP_DIR/"
echo "Reiniciando contenedores Docker que estaban en ejecución..."
if [ -n "$RUNNING_CONTAINERS" ]; then
    docker start $RUNNING_CONTAINERS
fi

le agregas la propiedad de "ejecutable" al archivo

sudo chmod +x /usr/local/bin/backup_dockerdata.sh

Creación del cron

Ingresa el siguiente comando, si te pide seleccionar un editor de código eliges nano y le das en continuar (si quitas la palabra sudo, se creará un cron sin permisos de administrador)

sudo crontab -e

y agregas la siguiente línea hasta el final,

0 3 * * * /usr/local/bin/backup_dockerdata.sh

El significado de esta línea es cada

  1. Minuto 0 
  2. Hora 3
  3. Todos los días
  4. Todos los meses
  5. Todos los años

Ejecuta el archivo en esta ruta 

Cambiar la zona horaria


image.png

Para cambiar la zona horaria debes primero conocer el nombre de tu zona horaria, podrás ver la lista completa de zonas horarias si ingresas el siguiente comando

timedatectl list-timezones

Posteriormente cambias la zona horaria con el siguiente comando cambiando la zona horaria por la que te corresponda

sudo timedatectl set-timezone America/Mexico_City  

Salud de las unidades de almacenamiento

image.png

Una de las cosas necesarias en el mantenimiento de servidores es checar la temperatura y salud general de los discos, la gran mayoría tienen un registro llamado SMART el cual podemos consultar de distintas formas.

Unidades de almacenamiento USB

Para checar la salud de unidades de almacenamiento conectadas por USB instalaremos smartmontools 

sudo apt install smartmontools

y para checar la información reducida pondremos el siguiente comando cambiando sdX por el numero de la unidad de almacenamiento como sda

sudo smartctl -A /dev/sdX

y para checar la información completa usaremos la propiedad -x en vez de -A

sudo smartctl -x /dev/sda

Unidades de almacenamiento NVME

Para checar la salud de unidades de almacenamiento conectadas por PCI expess instalaremos nvme-cli

sudo apt install nvme-cli

y para checar la información reducida pondremos el siguiente comando cambiando nvme0nX por el numero de la unidad de almacenamiento 

sudo nvme smart-log /dev/nvme0nX

como se muestra a continuación nvme0n1

sudo nvme smart-log /dev/nvme0n1

Listar el peso de las carpetas

Para listar el peso de las carpetas puedes usar el siguiente comando 

du

pero para organizarlo mejor es recomendable usarlo de la siguiente manera 

sudo du -sh *

Explicación de las opciones: