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

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 сервер для Linux версия 7.0.5

23 сентября 2019 года вышла новая версия сервера Seafile для Linux — 7.0.5. Релиз доступен для скачивания. До этого был успешный релиз 7.0.4. На этот раз попробую обновиться дальше до версии 7.0.5.

Seafile сервер для Linux версия 7.0.2

13 июня 2019 года вышла новая версия сервера Seafile для Linux — 7.0.2. Релиз уже не помечен как beta. Прошлый раз я пробовал обновить Seafile Server 6.3 до версии 7.0.0, но были проблемы и прошлось откатиться. На этот раз релиз получше. Обновлённый до 7.0.2 сервер заработал без ошибок. Да, да, прежде чем написать новость, я проверил версию на себе. Интерфейс стал удобнее и приятнее.