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

Относительно легко определить, когда CrashPlan в последний раз сделал резервную копию файла: его имя файла появляется в /usr/local/crashplan/log/backup_files.log.0, и с некоторой точностью я мог бы сравнить время резервного копирования с временем последнего изменения, чтобы файл, но этот метод выглядит несколько сомнительным.

Я мог бы придумать пару методов, но я не знаю, как:

  • Сравните текущий файл с метаданными CrashPlan об этом файле. Для этого нужны знания о формате файлов кэша CrashPlan и используемой системе хеширования. Это может быть достигнуто через CLI, но CLI - это просто портал в GUI, и мне нужно что-то, что может быть написано в сценарии.

  • Восстановите файл во временный каталог и сравните его. К сожалению, нет CLI для восстановления; GUI это единственный способ.

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

Я использую CrashPlan для непрерывного резервного копирования в мою базу данных PostgreSQL, используя архивы WAL. В текущей конфигурации команда archive копирует файлы в каталог архива, который резервируется CrashPlan. Время от времени я вручную подтверждаю (или просто доверяю) группу резервных копий WAL, удаляю их из архивной директории и иногда выполняю восстановление через графический интерфейс, чтобы обеспечить возможность извлечения текущих и "удаленных" WAL. Каталог xlog также является резервным копированием, поэтому у меня есть хорошие шансы сделать почти полное восстановление, даже если конкретный xlog еще не был заархивирован PostgreSQL.

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

(В качестве бонуса, если метод заслуживает доверия, я мог бы превратить "archive_command" из "copy to archive directory" в «подтверждение того, что CrashPlan создал резервную копию текущей версии», и полностью удалить каталог архива).

(И да, я делаю обычные pg_dumpall, в дополнение к вышеупомянутому.)

2 ответа2

0

Я написал простой сценарий, который делает свое дело. Однако он делает это путем сравнения времени резервного копирования с временем последнего изменения файла. Это единственное решение, которое я нашел. Ниже ссылка на мой пост в блоге и соответствующая суть:

http://bougui505.github.io/2016/05/20/get_crashplan_backup_status_using_a_shell_command_line_on_linux.html

https://gist.github.com/bougui505/ba9db84a2fc6f9330f3ccf32a352a98e#file-backup_stat-sh

0

Боюсь, это будет невозможно. Конечно, не с потребительской версией, я не знаком с бизнес / корпоративными версиями.

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .