Я хотел бы иметь возможность программно определить, выполнил ли 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, в дополнение к вышеупомянутому.)