la red de seguridad — un generador rsync que se niega a un --delete pelado
Rutas, exclusiones y ancho de banda en la entrada, una lista lista para pegar en la salida — dry-run por defecto, y cada --delete llega con una red de respaldo fechada que hace el espejo reversible.
■ space · la red de seguridad
Dry-run por defecto, un paso de armado explícito y una red de respaldo — el generador se niega a emitir un --delete pelado.
La red son dos banderas — --backup --backup-dir=DEST/_rsync_backup_$(date +%F) — y rsync mueve cada archivo que habría borrado a esa carpeta fechada en lugar de borrarlo.
Rutas, host remoto, exclusiones y límites de ancho de banda fuera. comando listo para pegar. Nada de lo que escribes sale de la página.
POR QUÉ --DELETE MERECE UN AVISO
Porque el contrato de rsync es hacer que el destino iguale a la fuente, y --delete lo extiende a borrados. La página man: "delete extraneous files from the destination dir."
Extraneous = cualquier cosa que la fuente no tenga — incluido lo que falta porque apuntaste a la fuente equivocada, montaste el USB equivocado o tecleaste mal una ruta.
Un generador de la primera página hasta etiqueta su salida "AI-generated and not yet checked for validity" — encima de un comando de borrado. Las cuatro banderas que hacen el daño real:
| bandera | lo que hace | lo que hace cuando te equivocas |
|---|---|---|
--delete | los archivos de destino ausentes en la fuente se eliminan | ma path de fuente → archivos del destino "extraneous" → fuera |
src/ vs src | la barra final copia el contenido; sin ella se copia el directorio mismo | un carácter, una disposición de destino totalmente distinta |
-a | archivo: recursivo + permisos, fechas, dueños, enlaces simbólicos | omitido → un "backup" que silenciosamente no lo es |
--partial | conserva los archivos a medio transferir si se interrumpe | enlace caprichoso → todo el transferencia se reinicia desde cero |
La fila de la barra final es el clásico. La doc de rsync dice que una barra final en la fuente "changes this behavior to avoid creating an extra directory at the destination."
En claro: src/ vierte el contenido en el destino; src crea dest/src y lo vierte ahí. Dos caracteres.
La máquina de abajo muestra qué frase aplica mientras tecleas — la barra final ha comido más directorios personales que rm -rf en toda su vida.
LA RED DE SEGURIDAD
Rutas fuera. La llegada. El comando viene con -n: lee lo que pasaría, luego activa el interruptor.
Cuando --delete entra en juego, el generador se niega a emitir un borrado pelado — la red se engancha sola.
Armar un borrado sin peligro: no retires la seguridad — añade una red. Con --backup --backup-dir, rsync mueve primero los archivos borrados o sobrescritos a la carpeta fechada.
El espejo termina exacto igual. La reversibilidad es la diferencia entre un espejo y un recuerdo.
# the record's worked example — armed, net attached:
rsync -a --delete \\\
--backup --backup-dir=/mnt/backup/_rsync_backup_$(date +%F) \\\
/mnt/usb/ /mnt/backup/
verificación: man rsync → --backup dice "make a backup of every file installed" · las líneas --backup-dir caen en DEST/_rsync_backup_<date>/, no en el vacío
LO QUE EL GENERADOR CABLEA
El conjunto que cubre casi toda transferencia real, agrupado como realmente lo decides:
- Rutas — locales o remotas en cualquier lado (
user@host:/path), con el puerto SSH cableado vía-e "ssh -p 2222"si no es 22. - Dirección — el conmutador de la barra final, con la frase contenido vs directorio impresa en vivo.
- Filtros — patrones
--excludecon predeterminados para los habituales:.git,node_modules, cache, logs. - Maneras — compresión
-z,--bwlimitpara que la copia de las 3 de la mañana deje de ahogar el ancho de banda,-Ppara progreso y reanudación,-ccuando mtime miente. - El canal de armado — dry-run por defecto, paso de armado explícito, red enganchada automáticamente a todo
--delete.
Como la calculadora de VRAM GGUF: un solo archivo HTML haciendo aritmética en tu navegador — nada de lo que escribes sale de la página, porque una herramienta sobre copias seguras no debería llamar a casa.
MIT, un archivo, sin paso de compilación, en github.com/mrsaynothing/rsync-builder. Si el flujo de armado se siente regañón, es la función trabajando.
DÓNDE SE ACOMODA EN LA CAJA DE HERRAMENTAS
El generador escribe el comando; los hermanos guardan la teoría. Rsync vs scp — por qué la transferencia delta vence a la copia torpe, y cuándo scp está bien.
Cron vs temporalizadores systemd es la mitad de la planificación; la mitad de saber si corrió viaja en la hoja de trampas de journalctl.
Un dry-run que te saltas es un borrado que no querías.
fin de la red de seguridad · nada descargado · todo en local