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

Seafile — очистка базы данных

Seafile

Набор утилит и команд для очистки базы данных Seafile.

Сессии

Используйте следующую команду для очистки устаревших записей сессий в базе данных Seahub:

cd seafile-server-latest
./seahub.sh python-env python3 seahub/manage.py clearsessions

Подсказка: войдите в Docker-образ, затем перейдите в /opt/seafile/seafile-server-latest.

Использование команды clean_db_records для очистки seahub_db

Используйте следующую команду для одновременной очистки записей в таблицах Activity, sysadmin_extra_userloginlog, FileAudit, FileUpdate, FileHistory, PermAudit, FileTrash старше 90 дней:

./seahub.sh python-env python3 seahub/manage.py clean_db_records

При желании вы также можете очистить эти таблицы вручную, как показано ниже.

Activity

Используйте следующую команду для очистки записей активностей:

use seahub_db;
DELETE FROM Activity WHERE to_days(now()) - to_days(timestamp) > 90;
DELETE FROM UserActivity WHERE to_days(now()) - to_days(timestamp) > 90;

Логи входа

Используйте следующую команду для очистки записей о входах:

use seahub_db;
DELETE FROM sysadmin_extra_userloginlog WHERE to_days(now()) - to_days(login_date) > 90;

Доступ к файлам

Используйте следующую команду для очистки записей о доступе к файлам:

use seahub_db;
DELETE FROM FileAudit WHERE to_days(now()) - to_days(timestamp) > 90;

Обновление файлов

Используйте следующую команду для очистки записей об обновлениях файлов:

use seahub_db;
DELETE FROM FileUpdate WHERE to_days(now()) - to_days(timestamp) > 90;

Разрешения

use seahub_db;
DELETE FROM PermAudit WHERE to_days(now()) - to_days(timestamp) > 90;

История файлов

Используйте следующую команду для очистки записей истории файлов:

use seahub_db;
DELETE FROM FileHistory WHERE to_days(now()) - to_days(timestamp) > 90;

Очистка устаревших данных библиотек

Начиная с версии 6.2, предоставляется команда для очистки устаревших записей библиотек в базе данных Seafile, например, записей, которые не удаляются после удаления библиотеки. Это связано с тем, что пользователи могут восстановить удаленную библиотеку, поэтому мы не можем удалять эти записи в момент удаления библиотеки.

./seahub.sh python-env python3 seahub/manage.py clear_invalid_repo_data

Эта команда была улучшена в версии 10.0, включая:

  • Очистка недействительных данных небольшими пакетами, чтобы избежать чрезмерного потребления ресурсов базы данных за короткое время.
  • Режим пробного запуска: если вы хотите только посмотреть, сколько недействительных данных можно удалить, не удаляя их фактически, используйте опцию --dry-run=true, например:
./seahub.sh python-env python3 seahub/manage.py clear_invalid_repo_data --dry-run=true

Очистка токенов синхронизации библиотек

В базе данных Seafile есть две таблицы, связанные с токенами синхронизации библиотек:

  • RepoUserToken содержит токены аутентификации, используемые для синхронизации библиотек. Обратите внимание, что для каждого клиента (включая клиент синхронизации и SeaDrive) создается отдельный токен.
  • RepoTokenPeerInfo содержит дополнительную информацию о каждом токене клиента, такую как имя клиента, IP-адрес, время последней синхронизации и т.д.

Когда к серверу подключено множество клиентов синхронизации, эти две таблицы могут содержать большое количество строк. Многие из них больше не используются активно. Вы можете очистить токены, которые не использовались в течение определенного периода, с помощью следующего SQL-запроса:

DELETE t,i FROM RepoUserToken t, RepoTokenPeerInfo i WHERE t.token=i.token AND sync_time < xxxx;

xxxx — это UNIX-временная метка, до которой токены будут удалены.

Для безопасности сначала проверьте, сколько токенов будет удалено:

SELECT * FROM RepoUserToken t, RepoTokenPeerInfo i WHERE t.token=i.token AND sync_time < xxxx;

Ссылки

https://manual.seafile.com/latest/administration/clean_database/

Теги

 

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

Seafile 9 — подготовка к переходу на версию 10

Есть у меня на поддержке несколько серверов Seafile. Недавно готовился к переходу на новую мажорную версию с 9 на 10, наступил на много граблей. Одной из проблем стало то, что Seafile 10 уже не хочет просто так работать в Ubuntu 18.

Теги

Seafile — личное хранилище

Seafile — это личное хранилище для хранения данных в стиле Dropbox. Seafile — замечательный инструмент для создания личного, семейного или корпоративного файлового хранилища. Не очень сложен в установке и настройке. Бесплатен.