Construye un comando rsync seguro, cópialo y luego ejecútalo
rsync es la herramienta estándar para copiar archivos entre dos sitios (una carpeta local, otra carpeta, un servidor remoto por SSH) y transferir solo lo que cambió. Perfecta para backups, despliegues web, mirroring de un NAS o sincronización entre dos máquinas. El problema: la línea de comandos tiene 50+ flags, el orden importa y una errata con `--delete` puede borrar datos que querías conservar.
Este generador te da el comando completo en una vista previa en vivo: elige un preset (deploy, backup, mirror), activa los flags que quieras, rellena origen y destino y copia el resultado. Muestra la trampa de la barra final como diagrama visual (`src/` frente a `src` cambia lo que se copia), avisa antes de armar `--delete` sin `--dry-run` y dispone el comando con continuaciones de línea para que lo leas antes de pegarlo en un terminal.
Todo se ejecuta en tu navegador: nada se envía, no se hace ninguna conexión SSH; la herramienta solo construye texto. Pega el resultado en tu shell cuando estés listo.
Cómo se usa
- Elige un escenario arriba: local a local, local a remoto (push por SSH), remoto a local (pull) o remoto a remoto. Los placeholders de origen y destino se actualizan para indicar el formato.
- Escribe el origen (la carpeta de la que copias) y el destino (a dónde aterriza). Para rutas remotas usa `user@host:/ruta/absoluta`.
- Fíjate en la barra final del origen. Con `/var/www/site/` copias el contenido de la carpeta. Sin la barra (`/var/www/site`) copias la carpeta misma como subdirectorio del destino. El diagrama de la derecha muestra qué pasa en tu estado actual.
- Elige un modo: Archive (preserva todo), Backup (guarda versiones antiguas en una carpeta aparte), Mirror (deja el destino igual al origen, borra los extras), Deploy (comprimido, espejado, salta `.git`) o Custom para activar flags tú mismo.
- Abre Opciones de transferencia para añadir compresión (`-z`, útil por SSH), progreso (`--progress`), niveles de verbose, dry run (`-n`, recomendado la primera vez) o borrar extras (`--delete`, peligroso).
- Añade patrones a excluir (uno por línea, p. ej. `.git`, `node_modules`, `*.log`) y patrones a incluir si necesitas que rsync conserve archivos específicos dentro de una carpeta excluida.
- Para destinos SSH rellena el puerto y el archivo de identidad (clave privada) en las opciones SSH. El generador lo envuelve en `-e "ssh -p N -i ruta/key"`.
- Copia el comando completo del panel derecho y pégalo en tu terminal. Ejecuta siempre `--dry-run` primero cuando haya flags destructivos activos.
Cuándo te resulta útil
Ocho escenarios donde construir el comando rsync antes te ahorra una mala sorpresa:
- Desplegar una web a un VPS. Cambiaste unos archivos locales y los quieres en el servidor. `rsync -avz --delete --exclude='.git' --exclude='node_modules' /local/site/ user@host:/var/www/site/`. Solo cruzan los archivos cambiados, el destino queda idéntico a tu origen y tus carpetas de control de versiones se quedan fuera.
- Backup nocturno de un home a un NAS. Monta el NAS y luego `rsync -avh --delete /home/yo/ /mnt/nas/backup/yo/`. Tras la primera pasada (que copia todo) cada ejecución posterior tarda segundos porque solo se mueven los diffs.
- Descargar un dump de logs del servidor para análisis. `rsync -avz --progress user@prod:/var/log/app/ ./logs/`. El flag `--progress` te enseña un ETA por archivo, útil cuando el dump pesa 5 GB.
- Mover fotos de una tarjeta SD. `rsync -avh --progress /Volumes/SDCARD/DCIM/ ~/Pictures/2026/`. rsync verifica cada archivo tras copiar, a diferencia de un drag-and-drop en Finder, que puede truncar un archivo en silencio si quitas la tarjeta pronto.
- Mirroring de un dump de base de datos de producción entre dos servidores. `rsync -avz --partial --append --bwlimit=5000 server-a:/dumps/ server-b:/dumps/`. El límite de ancho de banda evita saturar el uplink. `--partial --append` permite reanudar si se cae el SSH a la mitad de un dump de 50 GB.
- Sincronizar tus dotfiles entre portátil y sobremesa. `rsync -avh --exclude-from=excludes.txt ~/dotfiles/ desktop:~/dotfiles/`. Más fácil que git cuando no quieres un repo y más rápido que copiar a mano.
- Limpiar un destino que se desincronizó. El destino tiene archivos que el origen ya no tiene. `rsync -avn --delete /src/ /dest/` (ojo al `-n` para dry run) lista exactamente qué se borraría. Cuando se vea bien, quitas el `-n` y ejecutas de verdad.
- Migrar un servidor a hardware nuevo. `rsync -avzAX --numeric-ids --delete /` de la caja vieja a la nueva (por SSH, como root, con cuidado) preserva permisos, ACLs y atributos extendidos para que el nuevo servidor arranque en el mismo estado.