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

SeaFile — восстановление библиотеки

Seafile

О том как восстанавливать повреждённые библиотеки в SeaFile я уже писал в предыдущих статьях.

Seafile — FSCK восстановление и экспорт библиотек

Всё это была теория, а сегодня — практика. После отключения электричества что-то в SeaFile пошло не так и одна из библиотек перестала открываться. При попытке открыть библиотеку в web-интерфейсе получаю ошибку:

Разрешение на общий доступ к библиотеке не найдено.

seafile

SeaDrive может скачать какие-то файлики, но загрузить не получается. Ошибка:

У вас нет доступа к этой библиотеки

(синтаксис сохранён)

seafile

В логах нечто такое:

[03/06/24 14:33:50] Repo 'Работа' sync state transition from uploading to 'error': 'You do not have permission to access this library'.

Понятно, что библиотеку нужно восстанавливать. Останавливаем все зависимые службы.

systemctl stop nginx.service
systemctl stop minidlna.service
systemctl stop jellyfin.service
systemctl stop seafile-fuse.service
systemctl stop seafile.service
systemctl stop seahub.service

Запускаем проверку, идентификатор библиотеки я просто скопировал из URL.

sudo -u sf /opt/seafile-server-latest/seaf-fsck.sh 82ab2679-e32a-489a-b549-2df3905ba2e1
Starting seaf-fsck, please wait ...

2024-03-06 14:20:01 fsck.c(603): Running fsck for repo 82ab2679-e32a-489a-b549-2df3905ba2e1.
2024-03-06 14:20:01 repo-mgr.c(295): Commit 68d4106499b535fe4c374ea2d0bdf97e7b893555 is missing
2024-03-06 14:20:01 fsck.c(620): Repo 82ab2679 HEAD commit is damaged, need to restore to an old version.
2024-03-06 14:20:01 fsck.c(514): Scanning available commits...
2024-03-06 14:20:10 fsck.c(574): Find available commit cd715d57(created at 2024-02-26 00:39:41) for repo 82ab2679.
2024-03-06 14:20:10 fsck.c(429): Checking file system integrity of repo Работа(82ab2679)...
2024-03-06 14:21:48 fsck.c(667): Fsck finished for repo 82ab2679.

seaf-fsck run done

Done.

seafile

Найдено повреждение, есть возможность отката до предыдущего коммита. Запускаем восстановление с опцией --repair.

sudo -u sf /opt/seafile-server-latest/seaf-fsck.sh --repair 82ab2679-e32a-489a-b549-2df3905ba2e1
Starting seaf-fsck, please wait ...

2024-03-06 14:23:29 fsck.c(603): Running fsck for repo 82ab2679-e32a-489a-b549-2df3905ba2e1.
2024-03-06 14:23:29 repo-mgr.c(295): Commit 68d4106499b535fe4c374ea2d0bdf97e7b893555 is missing
2024-03-06 14:23:29 fsck.c(620): Repo 82ab2679 HEAD commit is damaged, need to restore to an old version.
2024-03-06 14:23:29 fsck.c(514): Scanning available commits...
2024-03-06 14:23:36 fsck.c(574): Find available commit cd715d57(created at 2024-02-26 00:39:41) for repo 82ab2679.
2024-03-06 14:23:36 fsck.c(429): Checking file system integrity of repo Работа(82ab2679)...
2024-03-06 14:25:09 fsck.c(407): Update repo 82ab2679 status to commit b68655f0.
2024-03-06 14:25:09 fsck.c(667): Fsck finished for repo 82ab2679.

seaf-fsck run done

Done.

Откатились на предыдущий коммит. Запускаем службы.

systemctl start seafile.service
systemctl start seahub.service
systemctl start seafile-fuse.service
echo Giving the server some time....
sleep 40
systemctl start minidlna.service
systemctl start jellyfin.service
systemctl start nginx.service

seafile

Проверяем работу.

seafile

Web-интерфейс заработал, библиотека доступна.

А SeaDrive так и не смог синхронизироваться. Помогло удаление учётной записи и заведение её заново.

Теги

 

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

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

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