Перенос файлового хранилища SeaFile со всеми данными на другой сервер
SeaFile – это облачное хранилище файлов с открытым исходным кодом, аналог Dropbox. Но в отличии от Dropbox, файлы хранятся вашем личном сервере. Файлы могут быть синхронизированы с персональными компьютерами и мобильными устройствами через приложения. Так же функционал Seafile позволяет предоставлять доступ к файлам как внешним пользователям, так и внутренним (другим зарегистрированным пользователям вашего хранилища).
Чтобы перенести SeaFile со всеми пользователями и данными на другой сервер, необходимо:
- На старом сервере сделать бэкап mysql-базы и каталога, где лежит SeaFile
- На новом сервере установить и настроить mysql-сервер и web-сервер
- Перенести бэкап со старого сервера на новый
- Развернуть бэкап на новом сервере
Создаем резервную копию SeaFile на старом сервере
1
2
3
4
5
$ mysqldump -u seafile -ppassword ccnet_db | gzip > /home/backup/ccnet_db_$(date +%y%m%d).sql.gz
$ mysqldump -u seafile -ppassword seafile_db | gzip > /home/backup/seafile_db_$(date +%y%m%d).sql.gz
$ mysqldump -u seafile -ppassword seahub_db | gzip > /home/backup/seahub_db_$(date +%y%m%d).sql.gz
$ tar -zcf /home/backup/backup_$(date +%y%m%d).tar.gz /home/seafile
Разворачиваем бэкап на новом сервере
1
2
3
$ gzip -d /home/backup/ccnet_db_$(date +%y%m%d).sql.gz
$ gzip -d /home/backup/seafile_db_$(date +%y%m%d).sql.gz
$ gzip -d /home/backup/seahub_db_$(date +%y%m%d).sql.gz
Подключаемся к MySQL, создаем новые базы и создаем пользователя
1
2
3
4
5
$ mysql -u root -p
> CREATE DATABASE ccnet_db;
> CREATE DATABASE seafile_db;
> CREATE DATABASE seahub_db;
> create user 'seafile'@'localhost' identified by 'password';
Назначаем и обновляем привилегии и выходим
1
2
3
4
5
> GRANT ALL PRIVILEGES ON ccnet_db.* TO 'seafile'@'localhost';
> GRANT ALL PRIVILEGES ON seafile_db.* TO 'seafile'@'localhost';
> GRANT ALL PRIVILEGES ON seahub_db.* TO 'seafile'@'localhost';
> FLUSH PRIVILEGES;
> exit;
Восстанавливаем базу из dump’а
1
2
3
$ mysql -u seafile -ppassword ccnet_db < /home/backup/ccnet_db_$(date +%y%m%d).sql
$ mysql -u seafile -ppassword seafile_db < /home/backup/seafile_db_$(date +%y%m%d).sql
$ mysql -u seafile -ppassword seahub_db < /home/backup/seahub_db_$(date +%y%m%d).sql
Распаковываем архив с данными
1
$ sudo tar -xvzf /home/backup/backup_$(date +%y%m%d).tar.gz
Переносим распакованный архив в рабочий каталог, например /home/seafile
Дальнейшие действия описаны в статье по установке SeaFile