
Estoy confundido con la exclusión de rsync.
Estoy intentando hacer una copia de seguridad de todos los que comienzan con / pero excluyo /media/ /mnt/ /home/files/ y /home/backup
sudo rsync -a \
--progress \
--stats \
--exclude-from=/home/files/ \
--exclude-from=/media/ \
--exclude-from=/mnt/ \
--exclude-from=/home/backup/ \
/ /home/backup
No funcionará.
Termino copiando archivos a /home/backup/home/backup/... Leí que tengo que escribir mis exclusiones en relación con mi raíz de transferencia, pero supongo que si / es mi raíz de transferencia, entonces /media/ debería ser relativo a ¿ese derecho?
Respuesta1
man rsync
--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
excluir de se utiliza para señalar un archivo que enumera las carpetas que no desea. Pruebe la opción --excluir
Respuesta2
Su sintaxis es incorrecta; por eso no funciona.
Tu dices:
--exclude-from=/home/backup/
cuando deberías simplemente decir
--exclude="/home/backup/*"
Además, no estás utilizando el
--delete-excluded
Switch que puede sincronizar los directorios.
En cuanto a su pregunta al final: Sí, en su caso está especificando /
como comienzo para rsync. Entonces, si excluye "tmp/*"
, entonces es relativo a /
, por lo que es lo mismo que especificar"/tmp/*"