На одном из обслуживаемых серверов OwnCloud как-то резко закончилось место. После анализа выяснилось, что у одного из пользователей OwnCloud много места занимает папка files_trashbin. Это корзина.
При удалении файл не уничтожается сразу, а помещается в корзину. В корзине он лежит пока пользователь не удадит файл из корзины или не сработает скрипт автоматической очистки. За механизм корзины отвечает приложение Deleted files.
Срок хранение файлов в корзине устанавливается в файле 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.