Restura bases de datos, crea backups y limpia logs de SQL Server, todo en un solo CLI
Project description
MSSQL Backups
Herramienta de consola para administrar configuraciones, crear backups, restaurar bases de datos de SQL Server y limpiar logs para liberar espacio.
La aplicación guarda la configuración en SQLite, ejecuta sqlcmd para hablar con SQL Server y puede trabajar con rutas locales o con backups dentro de contenedores Docker.
Requisitos
uvsqlcmddisponible en el sistema
Instalación de la herramienta
- Instala
uv:
winget install --id=astral-sh.uv -e
- Instala la herramienta:
uv tool install mssql-backups
- Verifica que esté disponible:
mssql-backups --help
Configurar sqlcmd
La herramienta necesita sqlcmd para ejecutar consultas y realizar backups/restauraciones.
Windows
Instálalo con:
winget install sqlcmd
Linux
En Linux debes instalar los paquetes oficiales de Microsoft para sqlcmd.
Recomendación general:
- Agrega el repositorio oficial de Microsoft para tu distribución.
- Instala
mssql-tools18junto conunixODBC. - Añade el binario al
PATHde tu shell.
Ejemplo común en Bash:
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
Si usas Ubuntu o Debian, sigue la guía oficial de Microsoft para tu versión e instala también unixodbc-dev.
Comandos principales
Los comandos principales de la herramienta son:
| Comando | Descripción |
|---|---|
config |
Administrar configuraciones guardadas en cache |
restore |
Restaurar bases de datos usando backups guardados |
cache |
Crear o limpiar la caché local |
db |
Probar conexiones, listar bases de datos y reducir logs |
bak |
Crear backups de las bases de datos configuradas |
Para obtener ayuda de cualquier comando o subcomando, usa --help.
Muchos comandos también son interactivos: si omites un parámetro, la herramienta te lo pedirá en pantalla.
mssql-backups --help
mssql-backups config --help
mssql-backups restore --help
mssql-backups cache --help
mssql-backups db --help
mssql-backups bak --help
Cómo configurar la aplicación
La configuración se guarda en SQLite dentro de ~/.mssql-bakups/config.db. Esto permite persistir las configuraciones entre sesiones para evitar tener que configurar todo de nuevo.
1. Crear una conexión
Usa config conn add para guardar la conexión a SQL Server.
mssql-backups config conn add
Ese comando te pedirá de forma interactiva:
- nombre de la conexión
- host
- puerto
- usuario
- contraseña
También puedes consultar o eliminar conexiones con:
mssql-backups config conn ls
mssql-backups config conn rm
2. Crear una configuración de backup
Usa config bak add para guardar la ruta de backups y la ruta de datos.
mssql-backups config bak add
Ese comando te pedirá:
- nombre de la configuración
- descripción
backup_dirdata_dir- si usa contenedor Docker
- nombre del contenedor, si corresponde
Si el backup está dentro de un contenedor, las rutas deben ser rutas válidas dentro del contenedor.
También puedes listar o eliminar configuraciones con:
mssql-backups config bak ls
mssql-backups config bak rm
3. Asociar bases de datos a una configuración
Usa config db add para registrar una o varias bases de datos dentro de una configuración de backup.
mssql-backups config db add
Puedes ingresar varias bases separadas por comas.
También puedes listar o eliminar asociaciones con:
mssql-backups config db ls
mssql-backups config db rm
Flujo de uso recomendado
- Inicializa la caché con
cache init. - Guarda la conexión con
config conn add. - Guarda la configuración de backup con
config bak add. - Registra las bases de datos con
config db add. - Verifica la conexión con
db test --conn mi-conexion. - Crea backups con
bak start --conn mi-conexion --name mi-backup. - Si necesitas restaurar, usa
restore files --conn mi-conexion --bak mi-backupy luegorestore begin --conn mi-conexion --bak mi-backup.
Comandos útiles
Backups
mssql-backups bak start --conn mi-conexion --name mi-backup
Este comando crea un backup por cada base de datos configurada y guarda los archivos en una carpeta con fecha dentro de backup_dir.
Restauración
mssql-backups restore files --conn mi-conexion --bak mi-backup
mssql-backups restore begin --conn mi-conexion --bak mi-backup
restore fileslista los archivos.bakdisponibles.restore beginejecuta la restauración.
Base de datos
mssql-backups db test --conn mi-conexion
mssql-backups db ls --conn mi-conexion
mssql-backups db logs reduce --conn mi-conexion --bak mi-backup --threshold 1GB --target 100MB
db testvalida la conexión.db lslista las bases de datos disponibles.db logs reducereduce archivos.ldfque superen el umbral configurado.
Caché
mssql-backups cache init
mssql-backups cache clean
cache initcrea la caché local.cache cleanla elimina.
Notas importantes
- Antes de usar los comandos que dependen de la configuración guardada, inicializa la caché con
mssql-backups cache init. - Para trabajar con contenedores, Docker debe estar instalado y en ejecución.
- Asegúrate de que SQL Server pueda leer los archivos
.bakcuando uses rutas locales. - Si un comando no te queda claro, usa siempre
--helpen el comando o subcomando correspondiente.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mssql_backups-3.13.3.tar.gz.
File metadata
- Download URL: mssql_backups-3.13.3.tar.gz
- Upload date:
- Size: 28.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7575ae729aeb88ab6c5673ab6269dffa67456807ef4073b387ce442811f3121c
|
|
| MD5 |
c8f7f78c894038f8ce4d62c782586b42
|
|
| BLAKE2b-256 |
041ee61e97dfb29c2c28c5fab87a7aac2df993992c877f818fe3a8b1a0fc30aa
|
Provenance
The following attestation bundles were made for mssql_backups-3.13.3.tar.gz:
Publisher:
python-publish.yml on xsismadn3ss/mssql-backups
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mssql_backups-3.13.3.tar.gz -
Subject digest:
7575ae729aeb88ab6c5673ab6269dffa67456807ef4073b387ce442811f3121c - Sigstore transparency entry: 1514993600
- Sigstore integration time:
-
Permalink:
xsismadn3ss/mssql-backups@65afeff42603980e1d2e34d04de1fa595cdaba1b -
Branch / Tag:
refs/tags/v3.13.3 - Owner: https://github.com/xsismadn3ss
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@65afeff42603980e1d2e34d04de1fa595cdaba1b -
Trigger Event:
release
-
Statement type:
File details
Details for the file mssql_backups-3.13.3-py3-none-any.whl.
File metadata
- Download URL: mssql_backups-3.13.3-py3-none-any.whl
- Upload date:
- Size: 43.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de3efff520fdc6a725d52b590ce59d625fd3d963402c645f4914eca26d2af6fe
|
|
| MD5 |
6f77d1a0236e9ef48aea07b8b0652d5e
|
|
| BLAKE2b-256 |
712687b752186551be8f1b5f197db3fc0c2c49ca8354c091870d49d27e7edb45
|
Provenance
The following attestation bundles were made for mssql_backups-3.13.3-py3-none-any.whl:
Publisher:
python-publish.yml on xsismadn3ss/mssql-backups
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mssql_backups-3.13.3-py3-none-any.whl -
Subject digest:
de3efff520fdc6a725d52b590ce59d625fd3d963402c645f4914eca26d2af6fe - Sigstore transparency entry: 1514993695
- Sigstore integration time:
-
Permalink:
xsismadn3ss/mssql-backups@65afeff42603980e1d2e34d04de1fa595cdaba1b -
Branch / Tag:
refs/tags/v3.13.3 - Owner: https://github.com/xsismadn3ss
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@65afeff42603980e1d2e34d04de1fa595cdaba1b -
Trigger Event:
release
-
Statement type: