Skip to main content

🧩 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)

Source distribution for rsyncx 0.1.9
File Size Uploaded
rsyncx-0.1.9.tar.gz 10.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rsyncx 0.1.9
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.9 This release

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page