Главная
» Как сделать
»
Безопасное удаление версий файлов ownCloud с помощью команды occ.
Безопасное удаление версий файлов ownCloud с помощью команды occ.
Для ownCloud Server Classic команда администратора для удаления сохраненных версий файлов выглядит следующим образом occ versions:cleanup: . Добавьте один или несколько идентификаторов пользователей, чтобы ограничить удаление; не указывайте идентификаторы пользователей только в том случае, если вы собираетесь удалить историю версий для каждого пользователя. Это приведет к удалению данных, поэтому сначала создайте резервную копию базы данных ownCloud и файлового хранилища.
Гипотетический пример: Алекс администрирует классический сервер ownCloud и ему необходимо удалить старые версии для неактивной тестовой учетной записи с именем demo_user. В этом вымышленном примере показана целевая команда и проведена сравнительная проверка на уровне всего сервера; в нем не описывается реальный запуск или результат.
1. Подтвердите версию ownCloud и целевую платформу.
Описанные ниже шаги используют occинтерфейс командной строки, описанный для ownCloud Server 10.16. Они не применимы к ownCloud Infinite Scale (oCIS), который использует другой набор команд. Если вы не уверены, какой продукт установлен, проконсультируйтесь с администратором, прежде чем запускать очистку.
В стандартной установке Linux перейдите в каталог установки ownCloud. Следующий путь является примером для Ubuntu; используйте свой фактический путь:
cd /var/www/owncloud
Убедитесь, что приложение «Версии» включено, и проверьте идентификатор учетной записи, которую вы собираетесь использовать:
files_versionsПеред использованием команды очистки проверьте, включено ли данное приложение.
В справочнике ownCloud указано, что команды версии доступны только при files_versionsвключенной этой опции и недоступны в однопользовательском режиме обслуживания. Запускайте команды occот имени пользователя HTTP веб-сервера, чтобы права доступа к файлам оставались согласованными. В Debian или Ubuntu это обычно www-data; в других дистрибутивах может использоваться другая учетная запись. См. справочник команд occ в ownCloud .
2. Вернитесь назад и выберите область действия.
Перед удалением истории создайте резервную копию, используя стандартную процедуру резервного копирования ownCloud. Включите в резервную копию базу данных и место хранения файлов и версий пользователей. Убедитесь, что резервная копия завершена и может быть восстановлена; копия только базы данных может не содержать фактических файлов версий.
В гипотетическом случае Алекса предполагаемая область действия ограничена только этим demo_user. Идентификатор пользователя должен совпадать с учетной записью на этом сервере. Не заменяйте адрес электронной почты, отображаемое имя или другого пользователя, поскольку команда принимает идентификаторы пользователей. Перед выполнением команды подтвердите идентификатор учетной записи в административной панели пользователей ownCloud, особенно если имена в службе каталогов отличаются от идентификатора входа.
Если цель — удалить все старые версии для этой учетной записи, используйте команду `versions` versions:cleanup. Для этой команды нет описанной опции предварительного запуска, поэтому перед выполнением проверьте целевую версию и сделайте резервную копию. Не переводите сервер в режим обслуживания для одного пользователя во время этой операции: в документации ownCloud команды Versions недоступны в этом режиме.
3. Выполните целенаправленную очистку или намеренно выберите всех пользователей.
Для обычной установки Linux выполните команду из каталога ownCloud от имени пользователя HTTP. В Debian или Ubuntu Алекс бы выполнил следующую команду:
sudo -u www-data ./occ versions:cleanup demo_user
Добавление этой опции demo_userограничивает очистку только данной учетной записью ownCloud.
В описанном синтаксисе versions:cleanup [user_id]...принимается один или несколько идентификаторов учетных записей. Если идентификатор не указан, удаляются версионированные файлы для всех пользователей. Используйте глобальную форму только после явного подтверждения этой области действия:
sudo -u www-data ./occ versions:cleanup
Если не указывать идентификатор пользователя, будут выбраны все пользователи, поэтому перед продолжением убедитесь, что это относится ко всему серверу.
В примере ownCloud показана команда, идентифицирующая всех пользователей для удаления, если идентификатор не указан; указание идентификаторов сужает операцию до этих учетных записей. В руководстве также отмечается, что опубликованные постоянные основные версии могут быть удалены администратором с помощью этой команды, даже несмотря на то, что обычные политики хранения не приводят к их удалению. Перед удалением учетных записей, которые могут содержать утвержденные или опубликованные версии, проконсультируйтесь с владельцами контента. Не добавляйте --no-interactionдля пропуска запросов. Для установки контейнера документированный шаблон выглядит следующим образом docker exec --user www-data <owncloud-container-name> occ <your-command>: ; замените заполнитель фактическим именем контейнера и выбранной вами командой. Обратитесь к инструкциям Docker и occ, если в вашем развертывании используется другой пользователь контейнера.
4. Используйте истечение срока действия только в том случае, если цель состоит в соблюдении правил хранения.
Если Алекс хотел, чтобы ownCloud удалял только те версии, срок действия которых истек в соответствии с настроенной политикой хранения, более подходящей командой была бы следующая:
sudo -u www-data ./occ versions:expire demo_user
versions:expireПрименяет настроенные правила хранения; не гарантирует удаление всех сохраненных версий.
В справочнике ownCloud указано versions:expire, что удаляются только версии, срок действия которых истек versions_retention_obligation. В отличие от этого, versions:cleanupудаляются все версии в выбранной области. Перед изменением политики ознакомьтесь с документированными настройками хранения версий . Эта настройка disabledотключает удаление версий; она не удаляет уже сохраненные версии.
В этой статье рассматривается ownCloud Server Classic. Infinite Scale использует собственные команды для очистки ревизий; вместо их запуска следуйте документации по очистке ревизий oCISocc .
Проверьте результат
После того, как команда завершится без ошибок, откройте представление «Версии» для файла, принадлежащего целевой учетной записи. Убедитесь, что предыдущие версии больше не отображаются и что текущий файл по-прежнему присутствует. Для очистки всех пользователей проверьте репрезентативные учетные записи, а не предполагайте, что целевая команда была выполнена глобально. Сохраняйте резервную копию до тех пор, пока владелец не подтвердит, что историческая версия больше не нужна. Если ваша цель заключалась только в соблюдении графика хранения, используйте versions:expireи проверяйте соответствие этой политике, вместо того чтобы ожидать немедленной полной очистки.
Эта команда предназначена исключительно для версий файлов. Она не очищает элементы в корзине «Удаленные файлы», не удаляет архивы резервных копий и не удаляет сами текущие файлы. Рассматривайте это как отдельные задачи по сохранению данных; не удаляйте каталог версий вручную, чтобы заменить описанную в документации команду.