Мы хотим сделать резервную копию всего на нашем сервере Debian, который работает удаленно на другом конце света (размещенном на Linode), не выключая его.
Эта система работает с оболочкой, электронной почтой, XMPP / prosody и web, с парой простых настроек nginx.
Мы хотим сделать резервную копию файлов, связанных с этими вещами, чтобы быть в безопасности. Например, файлы, которые пользователи хранят в своих домашних каталогах.
Нам не нужно точно копировать существующую настройку по каждому файлу / etc; вместо этого, причина, по которой мы даже делаем резервное копирование в первую очередь, заключается в том, что мы можем переместить все это в новую настройку (более новая версия Debian все еще на Linode).
Я вижу, что Линоде предлагает услугу резервного копирования. Но в долгосрочной перспективе нам также нужны собственные резервные копии здесь, на случай, если они потерпят неудачу или произойдет что-то еще странное.
Причина, по которой этот вопрос существует, заключается в том, что когда я пытался делать резервные копии в прошлом, я продолжал делать одну из этих двух ошибок:
- Я сказал: «Хорошо, я просто скопирую
/
и все, что находится под ним», а затем застрял в каком-то странном бесконечном цикле из-за того, что диск, на который я копировал, был смонтирован в / media / backup, и он копировал себя рекурсивно [obv эта конкретная проблема здесь неприменима, так как мы собираемся сделать резервную копию через rsync или подобное], или она застряла, пытаясь скопировать некоторые «живые» вещи в / proc или / var или что-то еще, например, пытаясь не отставать от постоянно меняющихся журналов, или - Я сказал: «Хорошо, я просто возьму минимум того, что нам нужно ... хм, домашние каталоги каждого и каталоги нашего веб-сервера (все под
/var
), и давайте закопаем копию/etc
всех старых писем в / var / vmail ", а затем я неизменно облажался с правами доступа к файлам или временными метками (на этот раз я не буду делать резервные копии файлов Unix на FAT-диск) или что-то забыл (" ох, снимите, у меня есть несколько пользовательских скриптов в / usr / local / bin, который я больше нигде не хранил, я забыл их получить, думаю, они исчезли ").
Таким образом, прямое копирование всего диска привело к ошибкам, а выборочное копирование каталогов привело к ошибкам. Я хочу знать, как сделать это правильно.
Вопрос о сбое сервера Что нужно для полной системы резервного копирования? охватывает философию и передовой опыт, но я ищу эти более конкретные детали:
- Какие каталоги мне нужно скопировать, а какие исключить (учитывая, что это система, которая в данный момент работает и обслуживает вики, чат XMPP, электронную почту - с новыми сообщениями, поступающими во время выполнения задания копирования)
- Какие атрибуты файла, такие как отметки времени, владелец и группа, мне нужно представить и как это сделать? ← Я думаю, что могу ответить на эту половину вопроса сам с чем-то вроде ... хм ...
rsync -HXaz
Я думаю, это хороший вариант для нас?-z
OBV на самом деле не связано с вопросом , который «что мне сохранить»
Многие советы по резервному копированию, которые я вижу, например, использование dd
, похоже, предполагают, что диск отключен и не используется. Но я не должен исключать «живой» директории , как / прок , и некоторые из поддиректории / вар (однако, некоторые вещи под / вар , я знаю , мы , безусловно , сделать нужно держать) и / монтирование? Что еще мне нужно подумать в этой ситуации? Тогда, я думаю, я могу просто перехватить это с помощью rsync и используя несколько --exclude
флагов.
Или есть идеи получше, особенно FOSS?
cp -r -a
при копировании файлов сохранит как можно больше атрибутов файла (в зависимости от того, что поддерживает целевая файловая система). -a
Флаг предписывает cp
сохранять атрибуты. Копирование по сети или через файловую систему, которая не поддерживает требуемые атрибуты, tar -c
всегда работало для меня, хотя я полагаю, что есть некоторые крайние случаи, которые он не охватывает, и, в частности, я считаю, tar
что по умолчанию зависит от совпадения имен пользователей по обе системы. Тем не менее, я скопировал всю (не подключенную) систему Linux, используя tar
без каких-либо явных проблем.