Skip to main content

Sincroniza tus datos de manera segura con rsyncx (basado en rsync) donde se incluye papelera para no perder datos, con .ignore para ignorar archivos o carpetas y válido para Synology o Servidor.

Project description

🧩 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rsyncx-0.1.7.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rsyncx-0.1.7-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file rsyncx-0.1.7.tar.gz.

File metadata

  • Download URL: rsyncx-0.1.7.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for rsyncx-0.1.7.tar.gz
Algorithm Hash digest
SHA256 e9adfeb4783e7b7615bdc011822d881a4e9a501c4c518fd3ed3d1f694a9a2884
MD5 6b687325bdbc4b3cf05b629b0f997635
BLAKE2b-256 7f43ab4a9137a1114ef3f0e2bcc7d914a9ddf840072556cbef6e8eeca3fe39fb

See more details on using hashes here.

File details

Details for the file rsyncx-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: rsyncx-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for rsyncx-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b2d487cd3aea7be89e53839442bf1583441c72aa0133d56adf84fdae4163b138
MD5 6a0ec82b83477267e51afe2955f8e33c
BLAKE2b-256 cd4754a8e1b0ee5b9f493dac75196d1b01762b231d0d7e4d47639b4bd1b129ab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page