как заставить rsync создавать жесткие ссылки на исходный каталог, а также создавать резервные копии измененных файлов?

Речь идет о разделителе полей .

Вам необходимо определить разделитель записей , чтобы поместить каждую строку в одну. Используйте ORSпараметр :

.
ls -l /dev | grep tty | awk 'BEGIN { ORS=" " }; {print $3}'

Без него вывод будет:

root
root
root
etc...

И когда вы определяете ALL_TTY_OWNERS_STRпеременную, вы помещаете только первую строку вывода в первый элемент массива. Из-за этого ваш массив будет содержать только один элемент, и это именно то, что вы получаете

2
23.10.2016, 03:40
1 ответ

Как упоминалось выше, я разбил процесс на два этапа.

src = the "live" clone directory, a mirror of my laptop = primary backup
dst = the weekly snapshot of important parts clone
trashdir = the items from src that don't exist in dst, because they have since been deleted, sorted into date-stamped directories

cmd = ("rsync -avumb --stats --delete --delete-excluded --filter='merge %s' --backup-dir=%s %s %s" %
       (filterfile, trashdir, src, dst))

cmd = ("rsync -avum --stats --delete --delete-excluded --filter='merge %s' --link-dest=%s %s %s" %
       (filterfile, src, src, dst))

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

На втором этапе файлы в резервной копии преобразуются в жесткие ссылки, указывающие на клон. В результате резервная копия не занимает фактического места. trashdir по определению не является файлом с жесткой -ссылкой, потому что он состоит только из файлов, которые были удалены из клонирования и резервного копирования.

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

Я обнаружил, что за пять лет, trashdir вырос примерно до размера клона, так что общий размер = клон x2, что приемлемо для меня, учитывая, что у меня шесть лет истории удаленных файлов, и я могу легко обрезать их по дате.

В дополнение к вышесказанному, у меня есть сценарий, который запускает cp -alдля копирования клона в месячные -проштампованные вращающиеся жестко связанные моментальные снимки. Это относится ко мне для файлов, которые были изменены, а не удалены. Общий размер за месяц кажется примерно вдвое меньше размера клона.

Таким образом, общее дисковое пространство составляет ~2,5 клона, а у меня есть:

  • сам клон, обновляется каждую ночь
  • резервная копия избранных файлов, стабильная в течение недели
  • Моментальные снимки версии клонов за месяц
  • Шесть лет удаленных файлов

Я считаю, что это довольно хорошая защита от потери исходного диска, перезаписи файла и потребности в более старой версии, а также удаления файла и необходимости его последующего использования.

Это немного запутанно,и, вероятно, можно было бы достичь с помощью стороннего -программного обеспечения, но оно работает для меня и построено на инструментах низкого -уровня, которые вряд ли исчезнут или существенно изменят функциональность.

(@gsl -На самом деле, спасибо за запрос обновления. Я обнаружил, что один из моих скриптов сломался, когда я обновился до python3, и не работал пару месяцев. Мне нужно уделять больше внимания моим журналам ошибок!)

Определенно все еще интересуюсь способами упростить это, хотя -так что не стесняйтесь комментировать, можно ли то, что я делаю, выполнить более простым способом.

0
21.08.2021, 22:20

Теги

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