🧩 rsyncx
rsyncx es un sincronizador seguro basado en rsync, diseñado para mantener tus carpetas idénticas entre varios equipos y un NAS o servidor (Synology o similar). Incluye papelera remota, protección ante borrados accidentales y soporte para múltiples grupos de sincronización.
⚙️ Instalación
Puedes instalarlo fácilmente desde pip o pipx:
pip install rsyncx
o bien
pipx install rsyncx
🧠 Configuración inicial
Ejecuta el siguiente comando para crear los archivos de configuración y filtro:
rsyncx configure
Esto generará en tu carpeta de usuario la estructura:
~/.xsoft/rsyncx/
├── config.py # configuración general y grupos
└── .rsync-filter # exclusiones por defecto (venv, .idea, __pycache__, etc.)
Puedes editar config.py para definir tus grupos y servidores.
Ejemplo de configuración:
servers = {
'default': {
'host_local': '192.168.1.18',
'host_vpn': '100.65.103.33',
'port': 2908,
'user': 'rsyncx_user',
'remote': '/volume1/Backup/rsyncx_mac/',
'identity': 'passw',
'passw': '<aqui_tu_pass>'
}
}
SINCRONIZAR = [
{
'grupo': 'scriptsVarios',
'server': 'default',
'name_folder_backup': 'scriptsmac',
'sync': '~/Proyectos/scriptsmac/'
},
{
'grupo': 'sshMac',
'server': 'default',
'name_folder_backup': 'sshMac',
'sync': '~/.ssh/'
}
]
☁️ Subir cambios (push)
Envía los cambios locales al servidor remoto:
rsyncx push
O bien, para un grupo concreto:
rsyncx push <nombre_grupo>
Características:
🔁 Borra en remoto los archivos eliminados localmente (se mueven a _papelera/FECHA).
🚫 No sube la carpeta _papelera local.
🔑 Si no puede usar la clave privada, se usa automáticamente autenticación por contraseña (sshpass).
💾 Descargar cambios (pull)
Trae actualizaciones desde el servidor remoto:
rsyncx pull
O un grupo concreto:
rsyncx pull <nombre_grupo>
Características:
🔒 No borra archivos locales (protección ante pérdida de datos).
♻️ Sincroniza también la papelera remota (_papelera).
🧹 Limpiar papeleras
Vacía las papeleras locales y remotas sin eliminar sus carpetas:
rsyncx purge
Ideal tras revisiones o sincronizaciones finalizadas.
🧩 Estructura de carpetas
~/.xsoft/rsyncx/
│
├── config.py # Config principal (editable)
└── .rsync-filter # Exclusiones (se aplica a todos los grupos)
Cada grupo en SINCRONIZAR apunta a una carpeta local y su equivalente remoto:
Local: ~/Proyectos/scriptsVarios/
Remoto: /volume1/Backup/rsyncx_mac/scriptsVarios/
Dentro del remoto, los archivos eliminados se guardan con versión:
/_papelera/2025-10-17_1237/
💡 Consejos
• ✅ Puedes tener tantos grupos como quieras, y cada uno puede apuntar a un servidor distinto.
• ✅ Si un host local no responde, rsyncx usa automáticamente el host VPN.
• ✅ Puedes añadir tus exclusiones personalizadas en ~/.xsoft/rsyncx/.rsync-filter.
• ✅ Usa rsyncx configure una sola vez por equipo para inicializar.
• 🔒 sshpass se utiliza de forma controlada y segura mediante variables de entorno.
🧱 Requisitos
• Python ≥ 3.8
• rsync y sshpass instalados en el sistema
Instalación rápida (macOS/Linux):
sudo apt install rsync sshpass
o
brew install rsync sshpass
💡 El comando rsyncx configure intentará instalar automáticamente las dependencias si es posible.
🧾 Licencia
MIT License © 2025 Desarrollado por Mario x
Release files for rsyncx 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rsyncx-0.1.9.tar.gz | 10.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rsyncx-0.1.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.6 kB
Release files / rsyncx-0.1.9.tar.gz
| Download URL | rsyncx-0.1.9.tar.gz |
|---|---|
| Size | 10.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
58e4b3b78d551b98158358d122b3394db8edacf3aa8ef838c3475c7f6bb6619f
|
|
BLAKE2b-256 checksum How to use checksums |
69da2f5fabb5129ab05770149da40ffae255dbc2a429e5dcae2354c5431d59dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.5
|
Release files / rsyncx-0.1.9-py3-none-any.whl
| Download URL | rsyncx-0.1.9-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d45b41db03e86a093f8a5c645e862b894e596203e2088f787be3d6972a3a7176
|
|
BLAKE2b-256 checksum How to use checksums |
b7fcc312d11e77d4abc524c3d95df2f825f0ae3a1dee5b21f422a0398202f301
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.5
|