le filet de sécurité — un générateur rsync qui refuse un --delete nu
Chemins, exclusions et bande passante en entrée, une commande prête à coller en sortie — dry-run par défaut, et chaque --delete arrive avec un filet de sauvegarde daté qui rend le miroir réversible.
■ space · le filet de sécurité
Dry-run par défaut, une étape d'armement explicite, et un filet de sauvegarde — le générateur refuse d'émettre un --delete nu.
Le filet, ce sont deux drapeaux — --backup --backup-dir=DEST/_rsync_backup_$(date +%F) — et rsync déplace chaque fichier qu'il aurait effacé dans ce dossier daté au lieu de l'effacer.
Chemins, hôte distant, exclusions et limites de bande passante en entrée ; une commande prête à coller en sortie. Rien de ce que vous tapez ne quitte la page.
POURQUOI --DELETE MÉRITE UN AVERTISSEMENT
Parce que le contrat de rsync est faire que la destination ressemble à la source, et --delete l'étend aux suppressions. La page man : « delete extraneous files from the destination dir. »
Extraneous = tout ce que la source n'a pas — y compris ce qui manque parce que vous avez visé la mauvaise source, monté la mauvaise clé USB, ou mal tapé un chemin.
Un générateur de première page étiquette même sa sortie "AI-generated and not yet checked for validity" — au-dessus d'une commande d'effacement. Les quatre drapeaux qui font les vrais dégâts :
| drapeau | ce qu'il fait | ce qu'il fait quand vous vous trompez |
|---|---|---|
--delete | les fichiers de destination absents de la source sont retirés | mauvais chemin source → fichiers destination "extraneous" → effacés |
src/ vs src | la barre oblique finale copie le contenu ; sans elle, on copie le répertoire lui-même | un caractère, une tout autre disposition de destination |
-a | archive : récursif + permissions, dates, propriétaires, liens symboliques | oublié → une "sauvegarde" qui n'en est pas une, en silence |
--partial | garde les fichiers à moitié transférés en cas d'interruption | lien capricieux → tout le transfert repart de zéro |
La ligne de la barre oblique finale est le grand classique. La doc de rsync dit qu'un slash final sur la source "changes this behavior to avoid creating an extra directory at the destination."
Autrement dit : src/ verse le contenu dans la destination ; src crée dest/src et le verse là-bas. Deux caractères.
La machine ci-dessous montre quelle phrase s'applique à mesure que vous tapez — le slash final a mangé plus de répertoires personnels que rm -rf dans toute sa carrière.
LE FILET DE SÉCURITÉ
Chemins en entrée, commande prête à coller en sortie. La commande arrive avec -n : lisez ce qui arriverait, puis basculez l'armement.
Dès que --delete entre en jeu, le générateur refuse d'émettre un effacement nu — le filet s'attache tout seul.
Armer un effacement sans danger : ne retirez pas la sécurité — ajoutez un filet. Avec --backup --backup-dir, rsync déplace d'abord les fichiers retirés ou écrasés dans le dossier daté.
Le miroir finit toujours exact. La réversibilité, c'est la différence entre un miroir et un souvenir.
# the record's worked example — armed, net attached:
rsync -a --delete \\\
--backup --backup-dir=/mnt/backup/_rsync_backup_$(date +%F) \\\
/mnt/usb/ /mnt/backup/
vérification : man rsync → --backup se lit "make a backup of every file installed" · les lignes --backup-dir aboutissent dans DEST/_rsync_backup_<date>/, pas dans le vide
CE QUE LE GÉNÉRATEUR CÂBLE
L'ensemble qui couvre presque tout transfert réel, regroupé comme vous les trancherez réellement :
- Chemins — local ou distant d'un côté comme de l'autre (
user@host:/path), avec le port SSH câblé par-e "ssh -p 2222"quand il n'est pas 22. - Sens — le basculeur de slash final, avec la phrase contenu-vs-répertoire imprimée en direct.
- Filtres — motifs
--excludeavec presets pour les suspects habituels :.git,node_modules, caches, logs. - Bonnes manières — compression
-z,--bwlimitpour que la sauvegarde de 3h du matin cesse de saturer la maisonnée,-Ppour la progression et la reprise,-cquand mtime ment. - La voie d'armement — dry-run par défaut, étape d'armement explicite, filet auto-attaché à tout
--delete.
Comme la calculatrice de VRAM GGUF : un seul fichier HTML qui fait l'arithmétique dans votre navigateur — rien de ce que vous tapez ne quitte la page, parce que un outil de copies sûres ne devrait pas téléphoner à la maison.
MIT, un fichier, aucune étape de build, sur github.com/mrsaynothing/rsync-builder. Si le flux d'armement ressemble à du rabâchage, c'est la fonctionnalité qui fonctionne.
OÙ CE POSE DANS LA BOÎTE À OUTILS
Le générateur écrit la commande ; les frères gardent la théorie. Rsync vs scp — pourquoi le transfert différentiel bat une copie bête, et quand scp convient.
Cron vs timers systemd est la moitié planification ; la moitié journal de savoir si ça a tourné est dans la fiche journalctl.
Un dry-run que vous sautez est un effacement que vous n'aviez pas exigé.
fin du filet de sécurité · rien de téléchargé · tout en local