Rsync исключить из root

Rsync исключить из root

Меня смущает исключение rsync.

Я пытаюсь сделать резервную копию всех файлов, начинающихся с /, но исключаю /media/ /mnt/ /home/files/ и /home/backup

sudo rsync -a \
       --progress \
       --stats \
       --exclude-from=/home/files/ \
       --exclude-from=/media/ \
       --exclude-from=/mnt/ \
       --exclude-from=/home/backup/ \
   / /home/backup

Не получится.

В итоге я копирую файлы в /home/backup/home/backup/... Я читал, что мне нужно писать исключения относительно моего корня переноса, но я полагаю, что если / является моим корнем переноса, то /media/ должен быть относительно него, верно?

решение1

man rsync

--exclude=PATTERN       exclude files matching PATTERN
--exclude-from=FILE     read exclude patterns from FILE

exclude-from используется для указания файла, в котором перечислены папки, которые вам не нужны. Попробуйте опцию --exclude

решение2

Ваш синтаксис неверен, поэтому он не работает.

Ты говоришь:

--exclude-from=/home/backup/

когда вам следует просто сказать

--exclude="/home/backup/*"

Кроме того, вы не используете

--delete-excluded 

коммутатор, который может синхронизировать каталоги.

Что касается вашего вопроса в конце: Да, в вашем случае вы указываете /в качестве начала для rsync. Так что если вы исключаете "tmp/*", то это действительно относительно, /так что это то же самое, что указать"/tmp/*"

Связанный контент