Configuraciones de Servidores Linux
Configuraciones de ubuntu y Recomendaciones
- Introduccion
- Formateo y Volumenes de Unidades de Almacenamiento
- Montar Unidades de Almacenamiento
- Crons y Bash files
- Cambiar la zona horaria
- Salud de las unidades de almacenamiento
- Listar el peso de las carpetas
Introduccion
Esta sección solo se dedica a recopilar configuraciones de uso común en Ubuntu Server
Formateo y Volumenes de Unidades de Almacenamiento
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

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
-
DOS (MBR)
-
a: alternar una bandera de arranque -
b: editar etiqueta de disco BSD anidada -
c: cambiar el indicador de compatibilidad con DOS
-
-
General
-
d: eliminar una partición -
F: listar espacio libre no particionado -
l: listar los tipos de partición conocidos -
n: añadir una nueva partición -
p: mostrar la tabla de particiones -
t: cambiar el tipo de partición -
v: verificar la tabla de particiones -
i: imprimir información sobre la partición
-
-
Misceláneos
-
m: mostrar este menú -
u: cambiar las unidades de visualización/entrada -
x: funciones adicionales (solo para expertos)
-
-
Script
-
I: cargar el diseño del disco desde un archivo de script sfdisk -
O: volcar el diseño del disco a un archivo de script sfdisk
-
-
Guardar y Salir
-
w: guardar la tabla en el disco y salir -
q: salir sin guardar los cambios
-
-
Crear una nueva etiqueta
-
g: crear una nueva tabla de particiones GPT vacía -
G: crear una nueva tabla de particiones SGI vacía (IRIX) -
o: crear una nueva tabla de particiones de DOS vacía -
s: crear una nueva tabla de particiones de Sun vacía
-
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.
-
Presione
npara crear una nueva partición. -
Seleccione
ppara partición primaria. -
Elija el número de partición:
1. -
Presione
Enterpara aceptar el primer sector por defecto. -
Presione
Enterpara 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,
-
Presione
wpara 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
-
mkfs.bfs -
mkfs.btrfs -
mkfs.cramfs -
mkfs.ext2 -
mkfs.ext3 -
mkfs.ext4 -
mkfs.ext4dev -
mkfs.fat -
mkfs.minix -
mkfs.msdos -
mkfs.ntfs -
mkfs.vfat -
mkfs.xfs
Montar Unidades de Almacenamiento
Introducción
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
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
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
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
- Minuto 0
- Hora 3
- Todos los días
- Todos los meses
- Todos los años
Ejecuta el archivo en esta ruta
Cambiar la zona horaria
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
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:
-
-l: Formato largo (lista detallada) -
-h: Formato humano (tamaños legibles: KB, MB, GB) -
-s: Muestra el tamaño en bloques -
-S: Ordena por tamaño -
-a: Muestra archivos ocultos -
--color=auto: Colores para mejor legibilidad