Перейти к основному содержанию

OwnCloud — очистка удалённых файлов

Owncloud

На одном из обслуживаемых серверов OwnCloud как-то резко закончилось место. После анализа выяснилось, что у одного из пользователей OwnCloud много места занимает папка files_trashbin. Это корзина.

При удалении файл не уничтожается сразу, а помещается в корзину. В корзине он лежит пока пользователь не удадит файл из корзины или не сработает скрипт автоматической очистки. За механизм корзины отвечает приложение Deleted files.

owncloud

Срок хранение файлов в корзине устанавливается в файле config.php параметром trashbin_retention_obligation.

'trashbin_retention_obligation' => 'auto',

Значение auto эквивалентно 30 дням, по умолчанию файлы в корзине лежат 30 дней, затем автоматически удаляются. Если, к примеру, файлы следует хранить 14 дней, то пишем:

'trashbin_retention_obligation' => 14,
  • auto — значение по умолчанию, сохранять файлы в корзине 30 дней, автоматически удаляет их если нужно место, если место есть, файлы могут не удаляться
  • D — число, сохранять файлы в корзинеr D+ дней, автоматически удаляет их если нужно место, если место есть, файлы могут не удаляться
  • auto, D — удалять все файлы в корзине старше D дней, удалять остальные если нужно место
  • D1, D2 — сохранять файлы в корзине D1 дней и удалять старше D2 дней
  • disabled — отключить очистку корзины

Очистка корзины

Если нужно срочно почистить место, то можно использовать две команды occ:

  • trashbin:cleanup — удалить из корзины все файлы
  • trashbin:expire — удалить из корзины файлы старше trashbin_retention_obligation.

Удалить всем пользователям из корзины файлы старше trashbin_retention_obligation:

sudo -u www-data ./occ trashbin:expire

Удалить всем пользователям из корзины все файлы:

sudo -u www-data ./occ trashbin:cleanup

Удалить пользователям user1 и user2 из корзины файлы старше trashbin_retention_obligation:

sudo -u www-data ./occ trashbin:expire user1 user2

Удалить пользователям user1 и user2 из корзины все файлы:

sudo -u www-data ./occ trashbin:cleanup user1 user2

Force Delete

Можно указать список названий директорий, которые будут удаляться сразу, не попадая в корзину.

'trashbin_skip_directories' => [
    'temp',
],

Можно указать список расширений файлов, которые будут удаляться сразу, не попадая в корзину.

'trashbin_skip_extensions' => [
    'iso',
    'mkv',
],

Можно указать размер файла, файлы с размером больше будут удаляться сразу, не попадая в корзину. Не отрицательное число и размер в виде: B, K, KB, MB, M, GB, G, TB, T, PB, P.

'trashbin_skip_size_threshold' => "1GB",

Ссылки

https://doc.owncloud.com/webui/next/classic_ui/files/deleted_file_management.html

https://doc.owncloud.com/server/10.10/admin_manual/configuration/files/trashbin_options.html

Примечания

Если в config.php нет параметра trashbin_retention_obligation, то корзина автоматически не очищается.

Если корзина занимает менее 50% квоты пользователя, то устаревшие файлы не удаляются. Данное поведение можно изменить параметром trashbin_purge_limit.

'trashbin_purge_limit' => 50,

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

Расшаренные между несколькими пользователями файлы удаляются более сложным способом, см. документацию.

Для наших клиентов мы занимаемся установкой и поддержкой файловых серверов:
OwnCloud, NextCloud и Seafile.

Теги

 

Похожие материалы