rsync непоследовательно не может установить жесткую ссылку

Хорошо.

Вдохновленный ответом @drewbenn, я сам написал его на Python, используя библиотеку Requests ( http://requests.readthedocs.io/en/master/ ):

import requests
import sys

url = sys.argv[1]
print "Connecting ", url

r = requests.get(url)
print r.text
flag = True
while flag :
    s = raw_input()
    data = {"opt": s}
    r = requests.get(url, params=data)
    print r.text

3
24.04.2017, 19:18
1 ответ

Проблема заключается в следующем (из man rsync):

... Файлы должны быть идентичны по всем сохраненным атрибутам (например, разрешения, возможно, право собственности), чтобы файлы можно было связать вместе.

В вашем случае, разрешения файлов (из ваших примеров)

Access: (0644/-rw-r--r--) # hardlink failed (original)
Access: (0777/-rwxrwxrwx) # hardlink failed (backup)

Access: (0777/-rwxrwxrwx) # hardlink created (original)
Access: (0777/-rwxrwxrwx) # hardlink created (backup)

Например

$ chmod 777 A/file
$ rsync -az A/ B/
$ chmod 644 A/file
$ rsync -az --link-dest=$PWD/B/ A/ C/

приводит к

$ du -hsc A B C
965M    A
965M    B
965M    C
2.9G    total

в то время как, сброс разрешений на исходные, приводит к

$ chmod 777 A/file
$ rsync -az --link-dest=$PWD/B/ A/ D/
$ du -hsc A B D
965M    A
965M    B
4.0K    D
1.9G    total

Вы можете попробовать с каким-нибудь файлом, чтобы заставить его работать (я полагаю, с --size-only, который должен пропускать файлы одинакового размера).

Что вам следует сделать, так это попытаться выяснить, изменили ли вы права доступа после последнего резервного копирования, или, если нет, почему изменились права доступа в каталоге резервного копирования.

3
27.01.2020, 21:21

Теги

Похожие вопросы