Как получилось, что «правда; сделать эхо у; сделано | правда` умирает сама по себе, но пока правда; делать эхо у | Кот; сделано | правда` нет?

Я далеко не эксперт по этому инструменту резервного копирования, хотя уже около месяца использую его в новой системе Linux Mint. Прежде всего, вы должны понимать, что Deja Dup — это просто графический интерфейс для инструмента, который фактически выполняет дублирование резервного копирования -. Duplicity работает, сканируя то, что вы определили для резервного копирования, и ищет отличия от предыдущего резервного копирования. Затем различия сжимаются (и, при необходимости, шифруются )и сохраняются в текущем каталоге резервных копий. Таким образом, весь процесс начинается с первоначального полного резервного копирования и продолжается с него инкрементными резервными копиями.

Имея это в виду, я попытаюсь ответить на ваши вопросы.

1 )Как упоминалось выше, при первом резервном копировании с дублированием создаются резервные копии всех файлов, которые вы определили. Все эти файлы собраны вместе, и результирующий файл резервной копии может стать слишком большим, чтобы с ним было легко работать. Таким образом, Duplicity разбивает его на несколько файлов меньшего размера (размером около 50 МБ ), с которыми по отдельности легче работать. После завершения первоначального резервного копирования последующие резервные копии должны отслеживать только то, что изменилось, и могут быть значительно меньше. Недостатком этого подхода является то, что если вы хотите восстановить с определенной даты, восстановление необходимо начать с исходного файла, а затем применить все изменения с тех пор, пока не будет достигнута целевая дата восстановления. Таким образом, вероятно, рекомендуется периодически делать полную резервную копию, чтобы при восстановлении не приходилось возвращаться так далеко. Я использую duplicity непосредственно на Raspberry Pi для резервного копирования данных метеостанции, и сценарий, который я написал для этого, создает новую полную резервную копию в начале каждого месяца. Таким образом, в худшем случае для восстановления определенного набора данных потребуется только извлечь исходный файл и применить около 30 дельта-файлов. Перезагружается ли иногда Deja Dup с полной резервной копией, я не знаю. Пока нет, и я буду следить за ним в течение следующего месяца или около того, чтобы увидеть, является ли он «хранителем».

2 )Как я упоминал выше, резервные копии сжимаются, поэтому неудивительно, что они меньше, чем каталоги, для которых выполняется резервное копирование. Кроме того, я только что посмотрел свои резервные копии, которые хранятся на NAS -первая резервная копия состояла из более чем 1500 файлов от 28.03.2018 (все 52,4 МБ ). С тех пор обычно создается несколько файлов резервных копий в день, хотя некоторые из них намного больше (. Я видел один файл размером почти 900 МБ ).

Я также должен отметить, что я пришел к вашему сообщению, когда искал свой собственный вопрос -как мне восстановить один файл или каталог с помощью Deja Dup? По сути, я хочу вернуться и просмотреть пару файлов, которые я удалил пару недель назад, просто чтобы сравнить их с тем, что я использую сейчас. Я не мог найти способ сделать это в довольно редком приложении Deja Dup. Насколько я могу судить, он хочет восстановить всю мою резервную копию (, к счастью, его можно направить на восстановление в другое место, кроме места хранения резервной копии. Однако у меня нет желания восстанавливать 500 ГБ данных только для того, чтобы посмотреть два файла. Я почти уверен, что могу сделать это прямо в командной строке с помощью Duplicity, поэтому, если Deja Dup не поддерживает это, я буду очень разочарован и, скорее всего, либо переключусь на другой инструмент резервного копирования, либо напишу свой собственный. Я бы также порекомендовал это и вам -попробовать что-нибудь восстановить и посмотреть, довольны ли вы результатами. Если нет, вы можете начать искать новый инструмент резервного копирования, прежде чем вы обнаружите, что ваш текущий инструмент резервного копирования вас подвел.

Последний комментарий -вы можете узнать больше о "мужской двуличности". Вы обнаружите, что каждая резервная копия состоит из файлов трех типов :: файла манифеста, файла подписи и одного или нескольких файлов резервных копий в сжатом формате tar и, при необходимости, зашифрованных с помощью GnuPG. Есть также несколько хороших руководств по дублированию, которые вы можете найти с помощью веб-поиска.

Дэйв

2
15.04.2020, 21:51
1 ответ

В while true; do echo y; done | true, поскольку echoявляется встроенным, у вас есть процесс подоболочки, который записывает y\nв цикле в конвейер.

Когда trueвозвращается, конец чтения этого канала закрывается, поэтому запись в конец записи вызывает доставку SIGPIPEв процесс записи. Здесь это процесс подоболочки, который запускает цикл.

В while true; do echo y | cat; done | truecatпишет в канал. catобычно не является встроенным, и даже если бы он был, в оболочках, отличных от zsh и ksh, все компоненты каналов всегда выполняются в дочерних процессах.

Таким образом, здесь умирает только процесс, выполняющий cat, а процесс подоболочки, который запускает цикл, продолжает выполнять другие catпроцессы, которые умирают, как только они записывают y\nв свой стандартный вывод.

В ksh93/ksh2020, если сделать:

$ builtin cat
$ type cat
cat is a shell builtin
$ set -o pipefail
$ while true; do echo y | cat; done | true; kill -l "$?"
PIPE

На этот раз catявляется встроенным и выполняется в том же процессе, что и цикл (, поскольку cat— самая правая команда в первой строке конвейера, а ksh не запускает ее в подоболочке ), так что каналы подоболочки к trueдействительно выходят, и kill -lподтверждает, что он был уничтожен SIGPIPE.

3
19.03.2021, 02:28

Теги

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