Назад | Перейти на главную страницу

rsync не удаляет папки в месте назначения

Я знаю, что здесь есть несколько квестов на ту же тему, но ответы мне не помогли.

Во-первых, это мой сценарий. Он должен скопировать все файлы из источника в место назначения (с сохранением всех прав и т. Д.). Если файл или каталог удаляются в источнике, он также должен быть удален в адресате. Что не правильно работает.

#!/bin/bash
## Basic RSync Command
RCMD="rsync -rulpEXogtzh --stats --delete --force"
DDIR="/tank/bak/s1/archive/"
SDIR="/tank/bak/s1/backup/"
CDAY=`date '+%u'`

echo "Archive Number: ${CDAY}"
echo "Archiving current backup"
$RCMD $SDIR $DDIR/$CDAY

Если у меня в источнике есть следующие каталоги:

/etc
/home
/root
/usr

и синхронизируйте их, у меня есть следующие каталоги в цели:

/etc
/home
/root
/usr

так что это отлично работает. Теперь, когда я удаляю / usr из источника, мой источник выглядит так:

/etc
/home
/root

но когда я снова запускаю скрипт, моя цель по-прежнему выглядит так:

/etc
/home
/root
/usr

поэтому почему-то rsync игнорирует --delete

rsync выводит это:

Number of files: 1983645
Number of files transferred: 0
Total file size: 17.69G bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 42.68M
File list generation time: 0.083 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 42.68M
Total bytes received: 4.70K

sent 42.68M bytes  received 4.70K bytes  155.52K bytes/sec
total size is 17.69G  speedup is 414.50

Кто-нибудь знает, почему?

Спасибо за любой ответ!

Каталог не будет удален, если это запрещено разрешениями или если каталог не пуст. Часто есть файлы, которые нельзя удалить, потому что они неизменяемы или защищены иным образом. Что значит ls -a /usr показать по месту назначения?

Вы можете попробовать --force-delete флаг, но сначала запустите его с -n (режим пробного запуска), чтобы увидеть, что он удалит.

В моем случае с rsync 3.1.2 --force или --force --delete параметры по-прежнему не удаляли каталоги в папке назначения.

В --delete-excluded вариант, однако, действительно удалял папки.