rsyncx


Namersyncx JSON
Version 0.1.8 PyPI version JSON
download
home_pageNone
SummarySincroniza 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.
upload_time2025-10-26 19:23:08
maintainerNone
docs_urlNone
authorMario x
requires_python>=3.8
licenseMIT
keywords rsync sync backup synology nas mirror cli
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## 🧩 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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rsyncx",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "rsync, sync, backup, Synology, NAS, mirror, CLI",
    "author": "Mario x",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/59/10/05e25e5cafc2a22477b7ba74ad782c611fb22dc381dbb07fa645ab1908b9/rsyncx-0.1.8.tar.gz",
    "platform": null,
    "description": "## \ud83e\udde9 rsyncx\n\nrsyncx es un sincronizador seguro basado en rsync, dise\u00f1ado para mantener tus carpetas id\u00e9nticas entre varios equipos y un NAS o servidor (Synology o similar). Incluye papelera remota, protecci\u00f3n ante borrados accidentales y soporte para m\u00faltiples grupos de sincronizaci\u00f3n.\n\n---\n\n## \u2699\ufe0f Instalaci\u00f3n\n\nPuedes instalarlo f\u00e1cilmente desde pip o pipx:\n\n```pip install rsyncx```\n\no bien\n\n```pipx install rsyncx```\n\n---\n\n## \ud83e\udde0 Configuraci\u00f3n inicial\n\nEjecuta el siguiente comando para crear los archivos de configuraci\u00f3n y filtro:\n\n```rsyncx configure```\n\nEsto generar\u00e1 en tu carpeta de usuario la estructura:\n\n````\n~/.xsoft/rsyncx/\n \u251c\u2500\u2500 config.py         # configuraci\u00f3n general y grupos\n \u2514\u2500\u2500 .rsync-filter     # exclusiones por defecto (venv, .idea, __pycache__, etc.)\n````\n\nPuedes editar config.py para definir tus grupos y servidores.\n#### Ejemplo de configuraci\u00f3n:\n```\nservers = {\n    'default': {\n        'host_local': '192.168.1.18',\n        'host_vpn': '100.65.103.33',\n        'port': 2908,\n        'user': 'rsyncx_user',\n        'remote': '/volume1/Backup/rsyncx_mac/',\n        'identity': 'passw',\n        'passw': '<aqui_tu_pass>'\n    }\n}\n\nSINCRONIZAR = [\n    {\n        'grupo': 'scriptsVarios',\n        'server': 'default',\n        'name_folder_backup': 'scriptsmac',\n        'sync': '~/Proyectos/scriptsmac/'\n    },\n    {\n        'grupo': 'sshMac',\n        'server': 'default',\n        'name_folder_backup': 'sshMac',\n        'sync': '~/.ssh/'\n    }\n]\n```\n\n---\n\n## \u2601\ufe0f Subir cambios (push)\n\nEnv\u00eda los cambios locales al servidor remoto:\n\n```rsyncx push```\n\nO bien, para un grupo concreto:\n\n```rsyncx push <nombre_grupo>```\n\n\n#### Caracter\u00edsticas:\n\n\ud83d\udd01 Borra en remoto los archivos eliminados localmente (se mueven a _papelera/FECHA).\n\n\ud83d\udeab No sube la carpeta _papelera local.\n\n\ud83d\udd11 Si no puede usar la clave privada, se usa autom\u00e1ticamente autenticaci\u00f3n por contrase\u00f1a (sshpass).\n\n\n\n\n## \ud83d\udcbe Descargar cambios (pull)\n\nTrae actualizaciones desde el servidor remoto:\n\n```rsyncx pull```\n\nO un grupo concreto:\n\n```rsyncx pull <nombre_grupo>```\n\n#### Caracter\u00edsticas:\n\n\ud83d\udd12 No borra archivos locales (protecci\u00f3n ante p\u00e9rdida de datos).\n\n\u267b\ufe0f Sincroniza tambi\u00e9n la papelera remota (_papelera).\n\n---\n\n## \ud83e\uddf9 Limpiar papeleras\n\nVac\u00eda las papeleras locales y remotas sin eliminar sus carpetas:\n\n`rsyncx purge`\n\nIdeal tras revisiones o sincronizaciones finalizadas.\n\n---\n\n## \ud83e\udde9 Estructura de carpetas\n\n```\n~/.xsoft/rsyncx/\n\u2502\n\u251c\u2500\u2500 config.py          # Config principal (editable)\n\u2514\u2500\u2500 .rsync-filter      # Exclusiones (se aplica a todos los grupos)\n```\n\nCada grupo en SINCRONIZAR apunta a una carpeta local y su equivalente remoto:\n\n```\nLocal:  ~/Proyectos/scriptsVarios/\nRemoto: /volume1/Backup/rsyncx_mac/scriptsVarios/\n```\n\nDentro del remoto, los archivos eliminados se guardan con versi\u00f3n:\n\n```/_papelera/2025-10-17_1237/```\n\n\n---\n\n## \ud83d\udca1 Consejos\n\t\u2022\t\u2705 Puedes tener tantos grupos como quieras, y cada uno puede apuntar a un servidor distinto.\n\t\u2022\t\u2705 Si un host local no responde, rsyncx usa autom\u00e1ticamente el host VPN.\n\t\u2022\t\u2705 Puedes a\u00f1adir tus exclusiones personalizadas en ~/.xsoft/rsyncx/.rsync-filter.\n\t\u2022\t\u2705 Usa rsyncx configure una sola vez por equipo para inicializar.\n\t\u2022\t\ud83d\udd12 sshpass se utiliza de forma controlada y segura mediante variables de entorno.\n\n---\n\n## \ud83e\uddf1 Requisitos\n\t\u2022\tPython \u2265 3.8\n\t\u2022\trsync y sshpass instalados en el sistema\n\nInstalaci\u00f3n r\u00e1pida (macOS/Linux):\n\n```sudo apt install rsync sshpass```\no\n```brew install rsync sshpass```\n\n\ud83d\udca1 El comando rsyncx configure intentar\u00e1 instalar autom\u00e1ticamente las dependencias si es posible.\n\n---\n\n## \ud83e\uddfe Licencia\n\nMIT License \u00a9 2025\nDesarrollado por Mario x\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "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\u00e1lido para Synology o Servidor.",
    "version": "0.1.8",
    "project_urls": {
        "Homepage": "https://github.com/pistatxos/rsyncx",
        "Issues": "https://github.com/pistatxos/rsyncx/issues",
        "Repository": "https://github.com/pistatxos/rsyncx"
    },
    "split_keywords": [
        "rsync",
        " sync",
        " backup",
        " synology",
        " nas",
        " mirror",
        " cli"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6737a384d230881fb17d082f7792e5b1d29f86a4b6fb2e57826405cea9b6d244",
                "md5": "8ab3cf001d6ad1b7e019994d988cd780",
                "sha256": "e7fc68b696b5c168daed77cb26d61139b07612a8d39f034f0a7a2a3a2365629c"
            },
            "downloads": -1,
            "filename": "rsyncx-0.1.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8ab3cf001d6ad1b7e019994d988cd780",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 9803,
            "upload_time": "2025-10-26T19:23:07",
            "upload_time_iso_8601": "2025-10-26T19:23:07.933117Z",
            "url": "https://files.pythonhosted.org/packages/67/37/a384d230881fb17d082f7792e5b1d29f86a4b6fb2e57826405cea9b6d244/rsyncx-0.1.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "591005e25e5cafc2a22477b7ba74ad782c611fb22dc381dbb07fa645ab1908b9",
                "md5": "8109b234a181076e458136a18e28ef6f",
                "sha256": "9bf2dd92287b009ad9edeca66dcb2ef47fe0d461d649aa386db2641e8efebd85"
            },
            "downloads": -1,
            "filename": "rsyncx-0.1.8.tar.gz",
            "has_sig": false,
            "md5_digest": "8109b234a181076e458136a18e28ef6f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 10641,
            "upload_time": "2025-10-26T19:23:08",
            "upload_time_iso_8601": "2025-10-26T19:23:08.825832Z",
            "url": "https://files.pythonhosted.org/packages/59/10/05e25e5cafc2a22477b7ba74ad782c611fb22dc381dbb07fa645ab1908b9/rsyncx-0.1.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-26 19:23:08",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pistatxos",
    "github_project": "rsyncx",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "rsyncx"
}
        
Elapsed time: 1.56628s