🧩 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
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| rsyncx-0.1.9.tar.gz | 10.7 kB | Without provenance | Details for rsyncx-0.1.9.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| rsyncx-0.1.9-py3-none-any.whl | Python 3 | none | any | Details for rsyncx-0.1.9-py3-none-any.whl |
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
|
Security for rsyncx 0.1.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.