Как очистить историю версий файлов ownCloud из командной строки
Командная строка ownCloud позволяет освободить место в хранилище, удаляя версии файлов, но правильная команда зависит от того, что вы подразумеваете под «очисткой». Вы можете разрешить ownCloud удалять только те версии, которые нарушают настроенную политику хранения, удалить все сохраненные версии для одной или нескольких учетных записей или удалить все версии в масштабе всей системы. Эти варианты существенно различаются по обратимости и масштабу. Сначала убедитесь, является ли ваш сервер ownCloud Server или ownCloud Infinite Scale ; они используют разные инструменты командной строки.
Приведенные ниже команды основаны на текущей документации по администрированию ownCloud Server 10.16 и 11.0, а также руководстве Infinite Scale 8.2, проверенном 6 октября 2026 г. Пути, имена служб и идентификаторы учетных записей могут различаться в зависимости от установки, поэтому адаптируйте примеры перед их запуском на рабочем сервере.
Выберите метод очистки, соответствующий вашей цели.
Метод
Что оно удаляет
Наилучший вариант
Главный компромисс
versions:expireна сервере ownCloud
Версии, считающиеся просроченными согласно настроенному правилу хранения.
Плановое техническое обслуживание и контроль квот
Она сохраняет версии, на которые все еще распространяется политика, поэтому может не освободить столько места сразу, сколько при полной очистке.
versions:cleanup USER_IDна сервере ownCloud
Все сохраненные версии для указанной учетной записи или учетных записей
Удаление истории для конкретной учетной записи
Этот пользователь теряет возможность восстанавливать более ранние версии, включая опубликованные.
versions:cleanupбез идентификаторов пользователей
Все сохраненные версии для всех пользователей ownCloud Server
Запланированная общеорганизационная перестройка
Это масштабная деструктивная операция, и в описанной команде отсутствует опция предварительного просмотра.
ocis revisions purgeв бесконечном масштабе
По умолчанию изменения вносятся во все разделы, или в более узкую область действия ресурсов по указанию соответствующего параметра.
Развертывания в бесконечном масштабе, требующие очистки версий.
Его поведение в режиме тестового запуска и параметры пути к хранилищу отличаются от occкоманд ownCloud Server.
Для управления повторяющимися операциями хранения начните с политики хранения versions:expire. Используйте эту опцию versions:cleanupтолько в том случае, если вы намеренно хотите удалить выбранную историю прямо сейчас.
1. Подтвердите свой продукт ownCloud и местоположение командной строки.
Для работы с ownCloud Server подключитесь к хосту или контейнеру, на котором запущено PHP-приложение, и перейдите в каталог установки ownCloud, где occнаходится скрипт. Распространенный подход в Linux — выполнение команд от имени учетной записи веб-сервера, часто www-dataэто делается так wwwrun:
cd /var/www/owncloud sudo -u www-data php occ status
Используйте фактический путь установки и учетную запись веб-сервера для вашей системы. Запуск occот имени root может привести к тому, что файлы будут принадлежать неправильной учетной записи, поэтому используйте указанную в документации учетную запись службы. Убедитесь, что приложение «Версии» files_versionsвключено; команды версий недоступны, когда это приложение отключено, и недоступны в однопользовательском режиме обслуживания.
Эта occ statusкоманда проверяет установку ownCloud Server перед очисткой версий.
Если ownCloud Server работает в Docker, выполните команду внутри контейнера приложения. Например, из каталога, содержащего вашу конфигурацию Compose, развертывание может использовать docker compose exec owncloud occ status; замените owncloudна фактическое имя службы в вашем файле Compose. Не используйте occпримеры для Infinite Scale.
2. Решите, следует ли обеспечить сохранение данных или удалить историю.
Используйте истечение срока действия, если вам нужна очистка на основе политик.
versions:expireЭта команда сравнивает версии с versions_retention_obligationнастройками в файле config.php. Без идентификатора пользователя она применяется ко всем пользователям; вы также можете указать один или несколько идентификаторов пользователей. Для одной учетной записи команда выглядит следующим образом:
sudo -u www-data php occ versions:expire alice
Замените реальный идентификатор учетной записи, а не отображаемое имя или адрес электронной почты пользователя, если только в вашей системе учетная запись не идентифицируется именно так. Чтобы запустить процесс истечения срока действия для всех учетных записей, опустите этот параметр alice. Этот выбор учитывает настроенное правило хранения: он не обязательно удалит недавние или иным образом сохраненные версии.
Эта versions:expireкоманда применяет настроенную политику хранения данных к одной именованной учетной записи.
В документации ownCloud Server описан autoстандартный шаблон хранения данных, а также представлены альтернативные варианты, основанные на времени. Перед запуском процедуры истечения срока действия проверьте свою политику, особенно если в вашей организации действуют юридические или операционные требования к хранению данных. Для обычного периодического истечения срока действия ownCloud запускает эту процедуру в фоновом режиме. В руководстве администратора рекомендуется использовать системный cron для фоновых задач; запуск истечения срока действия вручную полезен для планового технического обслуживания, но он не должен становиться импровизированной заменой правильно настроенному планировщику.
Используйте команду очистки, если вы намереваетесь удалить все версии в области действия.
Для одной учетной записи выполните:
sudo -u www-data php occ versions:cleanup alice
Для нескольких учетных записей укажите их идентификаторы, разделенные пробелами:
sudo -u www-data php occ versions:cleanup alice bob
Без указания идентификаторов команда удаляет все версионированные файлы для всех пользователей:
sudo -u www-data php occ versions:cleanup
Передача идентификатора учетной записи ограничивает область действия полной очистки истории только этим пользователем.
Если для восстановления могут потребоваться резервные копии, сначала создайте резервную копию и подтвердите идентификаторы учетных записей перед выполнением команды. Описанная команда удаляет данные о версиях и связанную с ними files_versionsпапку в пределах своей области действия. Она также удаляет опубликованные версии, которые в противном случае сохранялись бы дольше обычного срока хранения. Для ownCloud Server не предусмотрен поддерживаемый флаг «только предварительная версия» versions:cleanup, поэтому опечатка или пропущенный идентификатор могут иметь более серьезные последствия, чем предполагалось.
3. Разберитесь в различиях между ownCloud Server и Infinite Scale.
ownCloud Infinite Scale (oCIS) не использует occ versions:cleanupкоманду PHP. В документации по администрированию описывается очистка ревизий с помощью команды ocis revisions purge`.`. По умолчанию команда выполняет пробный запуск, который сообщает, что будет удалено без удаления ревизий. Требуется указать путь к хранилищу, настроенный пользователем; в этом примере используется путь-заполнитель:
ocis revisions purge -p /base/path/storage/users
Проверьте результаты пробного запуска и убедитесь в правильности пути к хранилищу. Чтобы фактически удалить версии, указанные в этом запуске, явно отключите пробный запуск:
По умолчанию команда Infinite Scale нацелена на ревизии во всех пространствах. Ее --resource-idопция позволяет сузить область действия до пространства или отдельного файла, если у вас есть правильный идентификатор. Если путь или область действия неясны, остановитесь на тестовом запуске и подтвердите оба параметра с помощью конфигурации развертывания. В документации отмечается, что альтернативные режимы сопоставления шаблонов могут увеличить использование ЦП и памяти в больших пространствах; оставьте значение по умолчанию, если вы не обнаружили необходимости его изменения.
Без идентификатора пользователя, versions:cleanupнацелен на каждого пользователя ownCloud Server.
4. Проверьте результат, не удаляя больше данных.
После очистки сервера проверьте несколько репрезентативных учетных записей в веб-интерфейсе и убедитесь, что старые записи больше не отображаются в истории версий каждого файла. Проверьте вывод команды для пользователей, которые были обработаны. Для Infinite Scale сравните результаты очистки с результатами пробного запуска и проверьте статус завершения команды. Затем проверьте использование хранилища на уровне, важном для вашей системы: отчеты о квотах ownCloud, локальная файловая система или настроенное объектное хранилище.
Не удаляйте файлы вручную, files_versionsчтобы «завершить» очистку. Поддерживаемые команды ownCloud координируют очистку версий с метаданными приложения; удаление объектов хранилища, находящихся за приложением, может привести к появлению несогласованных записей. Кроме того, освобождение дискового пространства сервера может отличаться от количества удаленных версий, если ваше хранилище использует снимки, репликацию или собственное поведение отложенного удаления. Эта часть зависит от используемого хранилища и должна быть уточнена у его администратора или поставщика.
Какой вариант следует выбрать?
Выберите вариантversions:expire , когда вашей целью является постоянное управление квотами с использованием существующих правил хранения данных.
Выберите режим "с ограничением области действия",versions:cleanup USER_ID если вам необходимо удалить всю историю для известных учетных записей и вы согласны с потерей точек восстановления.
Выберите вариант "versions:cleanup только глобальный" для преднамеренного сброса всей системы после резервного копирования и проверки области действия.
Выберите рабочий процесс очистки Infinite Scale только в oCIS и перед настройкой проверьте его тестовый запуск по умолчанию --dry-run=false.
Примечание к версии: Поведение команд и примеры были проверены на соответствие документации ownCloud Server 10.16/11.0 и Infinite Scale 8.2 6 октября 2026 года. Перед выполнением деструктивных операций проверьте соответствующее руководство для вашей установленной версии.