Categoría: Linux

  • Copiando archivos entre servidores

    Copiando archivos entre servidores

    Primero haremos un respaldo de la base de datos

    Luego de los sitios que consta de un sitio estático en .js y otra web api

    Ruta del servidor donde se hará el back up

    tar cvzf /home/frontDiarioWeb.tar.gz /var/www/diarioweb.mirandamx.dev/html/
    tar cvzf /home/APIDiarioWeb.tar.gz /var/www/diarioapi.mirandamx.dev/html/

    Procedemos a descargar en nuestro equipo, en mi caso es windows usando PowerShell en modo administrador

    scp ubuntu@142.44.xxx.xxx:/home/frontDiarioWeb.tar.gz C:\bak\frontOVH\
    
    scp ubuntu@142.44.xxx.xxx:/home/APIDiarioWeb.tar.gz C:\bak\frontOVH\
    

    Ahora procedemos a transferirlos archivos al nuevo servidor

    scp -p ubuntu@142.44.xxx.xxx:/home/frontDiarioWeb.tar.gz root@194.163.xx.xx:/home/temporal
    
    scp -p ubuntu@142.44.xxx.xxx:/home/APIDiarioWeb.tar.gz root@194.163.xx.xx:/home/temporal
    

    Con esto ya transferimos nuestros sitios web

    Ahora si queremos descomprimir

  • Crear backup / respaldo de una base de datos de sql server en un contenedor de docker y descargar en windows mediante Powershell

    Crear backup / respaldo de una base de datos de sql server en un contenedor de docker y descargar en windows mediante Powershell

    Como el titulo lo menciona, tengo un vps con ubuntu, corre una aplicación de web api en net core y un contenedor de docker con sql server para la db, sin embargo, ando experimentando en temas de Dev Ops y cada día me hago más preguntas de «como se hace esto, aquello, etcétera. Posteriormente quiero automatizar estos procesos, desconozco del tema a profundidad, pero pudiera ser con bash scripting.

    Hay muchas maneras de crear un respaldo, anteriormente lo había hecho desde sql managmente studio, aquí está el post si gustan verlo:
    https://mirandamx.dev/copiar-archivos-de-un-contenedor-de-docker-en-ubuntu/

    Así que empezamos:

    Para eso debemos iniciar la consola de nuestro contenedor de sql server, con alguno de estos dos comandos:

    $ docker exec -it 466ae2e5db3d bash
    $ docker exec -it 466ae2e5db3d sh

    Si fuera su caso que no los deje ejecutar comandos, podemos iniciar con el usuario root

    $ sudo docker exec -it --user root 466ae2e5db3d bash

    Para crear nuestro .bak, ejecutamos el siguiente comando en la consola bash que acabamos de abrir (No olviden cambiar por sus datos de su db)

    $ /opt/mssql-tools/bin/sqlcmd -S localhost -U elapolonio -Q "BACKUP DATABASE [diario] TO DISK = N'/var/opt/mssql/data/20250219-Diario.bak' WITH NOFORMAT, NOINIT, NAME = '20250219 - diario', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

    Y posteriormente nos pedirá nuestro password de sql server.

    Si lo quieren hacer de forma directa en la consola del servidor y no en la del contenedor:

    -- Alternativa más directa (cambiar datos por los suyos):
    $ docker exec -it 466ae2e5db3d /opt/mssql-tools/bin/sqlcmd -S localhost -U usernameSQL -P elPasswordSqlDelAmor -d Diario -Q "BACKUP DATABASE [Diario] TO DISK = N'/var/opt/mssql/data/20250219-Diario.bak' WITH NOFORMAT, NOINIT, NAME = N'DockerTest-Full Database Backup', COMPRESSION, STATS = 10"

    Dentro de nuestro contenedor, podemos validar la existencia del archivo:

    $ cd /var/opt/mssql/data/
    $ ls

    Copiamos el .bak de nuestro contenedor en docker a nuestro servidor

    $ sudo docker cp 466ae2e5db3d:/var/opt/mssql/data/20250219-Diario.bak /home

    Para descargar desde nuestro windows con ayuda de PowerShell ejecutamos:

    scp f ubuntu@142.44.243.239:/home/20250219-Diario.bak C:\bak\dbOvh

    Si muestra el mensaje » Permission denied», nos asignamos los siguientes permisos a nuestro archivo en nuestro servidor

    $ sudo chmod 755 /home/20250219-Diario.bak

    Borramos el .bak de nuestro servidor

    $ rm /home/20250219-Diario.bak

  • Error al ejecutar comando sudo ‘ * Is Not in the Sudoers File. This Incident Will Be Reported’

    Este error sucede cuando nuestro usuario no esta en la lista de sudoers, para necesitamos editar dicha lista que se encuentra en un fichero, para realizardo tendremos que ingresar como administrador de la siguiente manera:

    su root

    Ahora con el editor de texto nano

    nano /etc/sudoers

    Buscamos la linea de código: # User privilege specification y agregamos nuestro usuario, para que quede algo así:

    # User privilege specification
    root ALL=(ALL:ALL) ALL 
    resback ALL=(ALL:ALL) ALL

    Ahora apretamos Control + X y guardamos cambios con Y

    Y eso es todo, no olvidar los riesgos que conllleva un usuario con previlegios root.