я использую rsync
для инкрементных резервных копий с помощью --ссылка-назначение
возможность указать на предыдущую резервную копию, чтобы неизмененные файлы были жестко связаны с ней.
Это работает, но не для всех файлов. Например, у меня есть каталог в резервной копии, содержащий файлы, которые не изменялись более трех лет. Но по какой-то странной причине только некоторые из них являются жесткими ссылками.
Неудобно, файлы большего размера - все копии (т.е. ссылка на файл только одна, проверено через лс -л
). Но это также относится к некоторым файлам меньшего размера, и действительно, некоторые файлы с жесткими ссылками больше, чем некоторые скопированные файлы.
Кажется, нет никакого шаблона, который позволил бы мне предсказать, какие будут копии и какие жесткие ссылки. Длина имени файла и размер файла кажутся несущественными, как и дата модификации: все это смешано как в скопированных, так и в жестко связанных списках. Тем не менее, файлы делают казаться чтобы быть согласованным между несколькими резервными копиями, поэтому то, что произошло с одной резервной копией, похоже, произошло и со следующей резервной копией.
Есть ли какой-то атрибут (технический или иной) файла, какая-то особенность, которая могла бы вызвать rsync
скопировать его, а не жестко связать его?
РЕДАКТИРОВАТЬ 1: Упоминание «атрибута» заставило меня задуматься, существует ли какой-то атрибут, который лс -л
не перечисляет, что может оказать влияние, но делает лсатр
в исходном каталоге показывает, что все файлы имеют одинаковые атрибуты.
РЕДАКТИРОВАТЬ 2: Я говорил ранее (теперь удалено), что разрешения были одинаковыми, но это было неправильно. Разрешения были такими же в целевом (резервном) каталоге. Я использую --постоянные
(для сохранения разрешений), поэтому я не знаю, почему разрешения не сохраняются. Я также ранее работал как пользователь без полномочий root, но теперь я пытаюсь использовать права root на случай, если это имеет значение, но разрешения по-прежнему не сохраняются, что, возможно, может быть причиной того, что некоторые файлы выглядят так, как будто они изменились - файл не 't но его разрешения, по-видимому, есть (по крайней мере, по сравнению с предыдущей резервной копией с ее неправильными разрешениями).
РЕДАКТИРОВАТЬ 3: Теперь я думаю, что это как-то связано с моим сервером CIFS. Есть что-то в mount.cifs
справочная страница о file_mode
option: «Если сервер не поддерживает расширения CIFS Unix, этот режим переопределяет файловый режим по умолчанию». Когда я бегу устанавливать
команда без аргументов для отображения монтирования, перечисленные параметры включают file_mode=0755
и режим_режима = 0755
что связано с тем, что я вижу. я не могу chmod
файл на монтировании, поэтому те файлы, которые изначально не 0755
разрешения считаются измененными и поэтому копируются заново - и в очередной раз получают неправильные разрешения в бэкапе из-за монтирования.