Currently viewing the category: "Utilidades"

Vamos a suponer que tenemos un servidor con una partición de SWAP que queremos eliminar, no la necesitamos.

Primero, vamos a desmontar la SWAP.

Para eliminar la partición 5 que corresponde a la SWAP, vamos a usar la herramienta parted.

Empezamos:

Eso es todo, podemos verificar como el sistema ya no detecta la partición 5 de la antigua SWAP.

 

Anteriormente vimos como crear alias de comandos bash, para agilizar nuestro trabajo, ya sea acortando comandos largos, comandos muy habituales u otras necesidades que puedan aparecernos.

Vamos a ver un ejemplo utilizando un alias del siguiente comando:

Es habitual ver la salida de algunos comandos cada ‘x‘ segundos, para ver si hay cambios, si nuestro automatización crea nuevos archivos, si aparecen nuevas conexiones, etc. Todo esto sin necesidad de ejecutar el comando cada momento, podemos usar el comando watch, que se encarga de ir ejecutando el comando cada ‘x‘ segundos, por defecto hará intervalos de 2 segundos.

Pero el comando watch no funciona al ejecutar comandos que son alias de bash:

Así que para poderlo utilizar hay un workarround, hay que crear otro alias de watch con un espacio al final:

 

Generalmente los contenedores Docker se usan para arrancar servicios como Nginx, Apache, PHP-FPM, Redis, etc. Estos servicios se basan en entornos Alpine Linux, Debian u otros.

Cuando el contenedor arrancar con un servicio, su PID será el 1, pero si queremos realizar pruebas con un Debian pelado sin servicios.
¿Como vamos a arrancarlo sin que se nos pare el contenedor Docker?

Muy fácil, vamos a arrancar un contenedor Docker de la imagen base de Debian, lanzando un terminal bash como proceso principal.

Ahora podemos ver como el PID número 1 corresponde a un terminal bash, pero si entramos dentro del contenedor vamos a abrir un bash independiente, con lo cual si salimos y entramos no se detendrá el contenedor al no finalizar el PID 1. Nuestro bash dentro del contenedor para trabajar y realizar pruebas será el que tiene PID 7.

 

Docker es un excelente software que está moviendo los entornos de desarrollo a su terreno.

Una de las cosas mas utilizadas es el repositorio público hub.docker.com, donde los usuarios contribuyen con sus imágenes personalizadas o también imágenes oficiales de software como PHP, Apache, Nginx, etc…

Hoy vamos a ver como subir una imagen personalizada de PHP con alguna extensión añadida por nosotros.

Es importante primero haber realizado el build en nuestro entorno Docker y guardarlo con el siguiente formato de nombre: [nombre_usuario]/[mi_imagen]:[mi_version]

En esta entrada podéis ver como personalizar una imagen de Docker.

Antes de poder subir una imagen, debemos tener un usuario y un repositorio creado en el hub.docker.com, puede ser público o privado según nos convenga.

En este ejemplo usaremos: admsistemas/custom_php:1.1

Primero de todo, vamos a identificarnos (login) desde nuestro Docker en el hub.docker.com con nuestros datos de acceso. Sin esto no podremos realizar un push de la imagen personalizada.

Ahora debemos buscar cual es nuestra imagen de Docker personalizada, en nuestro caso hemos dicho custom_php.

Por último, dado que coincide el nombre de nuestra imagen personalizada con nuestro usuario y repositorio del hub.docker.com, ya podemos hacer un push y subirla al repositorio.

Una vez finalizado el proceso ya tendremos disponible nuestra imagen personalizada de Docker. Podremos realizar un «docker pull» de nuestra imagen PHP con las extensiones añadidas.

Anteriormente vimos como realizar un backup o clonar un disco/dispositivo con “dd” al completo en Linux. Ahora toca hablar sobre como recuperar ese backup .img del disco, también con la herramienta dd de Linux.

Arrancamos el servidor donde queremos recuperar el backup de la imagen con la Live CD Knoppix. Lo haremos con las opciones cuando nos pida el boot: knoppix64 2 lang=es

Cuando tengamos la Knoppix en marcha, hay que hacer un par de cosas importantes, arrancar servidor SSH, establecer contraseña al usuario root y buscar la IP para conectarnos con SSH..

Ahora desde el servidor donde tenemos almacenado el backup .img del disco, lo enviamos al servidor con la Live CD Knoppix en marcha, hay que tener claro el dispositivo (/dev/sda) de destino correcto para no cometer errores graves.

Ya podemos iniciar la restauración del backup.

Nota: Recordad que podéis ver progreso de transferencia de datos con el comando “dd” de Linux.

Por último, si volvemos al servidor con la Knoppix, veremos como ahora si hay particiones creadas en el dispositivo /dev/sda

 

En la anterior entrada vimos como realizar un backup o clonar un disco/dispositivo con “dd” al completo.

Dado que el comando dd es muy poco interactivo y después de introducir el password no ofrece información alguna del progreso de la tasa de transferencia, veamos como podemos ver como progresa el dd.

Tenemos un terminal ocupado con el dd en marcha, abrimos otro terminal al mismo servidor y lanzamos este comando:

Si vamos al terminal donde tenemos el dd ejecutándose veremos que aparecen 3 nuevas líneas como las siguientes:

Podemos ejecutar el kill tantas veces como haga falta para observar el progreso del dump del disco.

En una entrada anterior hablamos de como cifrar disco duro con Luks en Debian para proteger tus datos. En ese ejemplo simple hay que montar manualmente la partición cifrada del disco y no se monta con el arranque del sistema operativo.

Lo que vamos a mostrar ahora es como hacer que al arrancar el sistema operativo Debian, nos pida la contraseña de cifrado de la partición para que se monte directamente.

– La parte inicial de particionar, cifrar y formatear es lo mismo que se habló en la otra entrada.

– Buscamos el UUID de la partición cifrada.

– Añadimos una nueva línea en:  vi /etc/crypttab

– Añadimos otra línea nueva en: vi /etc/fstab

– Creamos la carpeta donde se hará el punto de montaje del disco de backups cifrado.

– Sino queremos reiniciar el sistema operativo, aunque estaría bien verificar que funciona el montaje al arrancar el sistema operativo, podemos forzarlo nosotros.

Recordad que al arrancar el sistema operativo nos pedirá la contraseña de cifrado de la partición /dev/sdb1, justo al iniciar el boot.

Cuando creamos una máquina virtual (MV) en VirtualBox, en el procedimiento del storage del disco virtual (VDI en mi caso) nos preguntará si lo queremos dinámico o físico.

  • Dinámico, irá aumentando el espacio del disco físicamente a medida que se llene el espacio en la MV. Por ejemplo si asignamos 40G pero instalamos un Ubuntu en una MV, de inicio el disco VDI no ocupará mas de 10G físicamente.
  • Tamaño fijo, si asignamos 40G a la MV el disco VDI va a ocupar los 40G en la máquina física sin ahorro de espacio.

Para MV de pruebas, en mi caso, elijo siempre dinámico así ahorro espacio en mis servidores de pruebas y no me afecta al disco de mi ordenador.

No obstante el tamaño siempre va en aumento, aunque eliminemos 10G de la MV el VDI va a ocupar 20G o 30G según haya ido aumentando. El problema se debe a que el espacio de los bloques se ocupa con zeros y no se convierte en espacio libre. Vemos un ejemplo:

EspacioVDIVirtualBox

Con lo cual, tenemos una MV con un disco asignado de 20G, su VDI ocupa 13G reales pero el sistema de ficheros de la MV únicamente está usando 4,8G. Definitivamente hay muchos zeros que ocupan espacio real sin ser usados para nada. Así que lo mejor será compactar el disco VDI, veamos como.

Arrancamos la MV con la Live CD Knoppix basada en Debian con el arranque: knoppix64 2 lang=es

Una vez en el shell, vamos a eliminar los zeros inútiles, seria como una desfragmentación de Windows.

Una vez eliminamos los zeros innecesarios con zerofree, procedemos a compactar el disco VDI con el CLI de VirtualBox (5.0 en mi caso).

Y ahora podemos verificar como efectivamente el disco VDI ocupa la mitad de su tamaño anterior, excelente!!

Destacar que la utilidad zerofree únicamente funciona para sistemas de archivos, ext2, ext3 y ext4 tal y como indica su man.

 

Una pequeña lista de combinaciones que pueden facilitarnos el trabajo diario con nuestros terminales abiertos.

  • Ctrl+D: cerrar sesión de terminal, si es una conexión SSH la finaliza, si es local cierra el terminal.
  • Ctrl+Shift+T: Abrir nueva pestaña en la misma ventana del terminal.
  • Ctrl+Shitf+W: Cerrar la pestaña actual.
  • Ctrl+Shift+Q: Cerrar la ventana actual de terminal, con todas sus pestañas abiertas.
  • Ctrl+RePag: Cambiar a la pestaña anterior.
  • Ctrl+AvPag: Cambiar a la pestaña posterior.
  • Ctrl++: Ampliar el tamaño de letra en terminal.
  • Ctrl+-: Reducir el tamaño de letra en terminal.
  • Ctrl+0: Recuperar tamaño estándar de letra en terminal.
  • Ctrl+L: Limpiar terminal. Como el comando clear.

Ya hemos enseñado como verificar envío a un servidor e-mail con dig y realizar conversación SMTP con telnet, a un servidor de destino. Y también como verificar conexión POP3 con telnet y leer el correo desde terminal.

Hoy vamos a explicar como enviar un e-mail a través de telnet pero pasando por nuestro servidor de salida SMTP propio. Es decir, que haga falta autenticarse con un usuario válido para poder hacer el envío.

En una conversación SMTP autenticada hay diferentes métodos para enviar los datos, cifrados, en base 64, conexión TLS, etc. Como se trata de una verificación emplearemos el método mas sencillo, enviar los datos de usuario y contraseña en base 64.

Durante la conversación SMTP con el servidor veremos que nos responde con información difícil de entender, también está codificada en base 64 y la podemos decodificar para entender qué nos responde.

Como vemos, nos pide usuario y contraseña codificado en base 64. Empecemos la conversación.