J'essaie de mettre en miroir un répertoire qui change au fil du temps vers un autre répertoire. Mon problème est que rsync ne supprime plus les fichiers à destination s'ils n'existent plus dans le répertoire source. Voici un script de démonstration:
#!/bin/sh
set -x
DIR1=/tmp/1
DIR2=/tmp/2
rm -rf $DIR1
rm -rf $DIR2
mkdir $DIR1
mkdir $DIR2
echo "foo" > $DIR1/a
echo "bar" > $DIR1/b
rsync -a $DIR1/* $DIR2
rm -f $DIR1/a
rsync -a --delete $DIR1/* $DIR2
ls -1 $DIR2
Voici la sortie:
+ DIR1=/tmp/1
+ DIR2=/tmp/2
+ rm -rf /tmp/1
+ rm -rf /tmp/2
+ mkdir /tmp/1
+ mkdir /tmp/2
+ echo foo
+ echo bar
+ rsync -a /tmp/1/a /tmp/1/b /tmp/2
+ rm -f /tmp/1/a
+ rsync -a --delete /tmp/1/b /tmp/2
+ ls -1 /tmp/2
a
b
Comme vous pouvez le voir, le fichier "a" est toujours présent dans le répertoire de destination après la deuxième exécution de rsync, ce qui n'est pas ce dont j'ai besoin. Suis-je en train d'utiliser abusivement l'option '--delete'?