Migrer une instance Nextcloud vers un autre serveur

Sauvegarde

  • Mettre le serveur en mode maintenance et arrêter le serveur web :
sudo -u www-data php occ maintenance:mode --on
sudo systemctl stop apache2
  • Sauvegarder le dossier Nextcloud vers le nouveau serveur :
rsync -Aavx /var/www/nextcloud/ root@ip_new_server:/var/www/nextcloud-dirbkp_`date +"%Y%m%d"`/
  • Sauvegarder la base de données vers le nouveau serveur :
mysqldump --single-transaction --default-character-set=utf8mb4 -h localhost -u root -pfourchettetraindifference nextcloud_db > /root/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
rsync -Aavx /root/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak root@ip_new_server:/root/

Restauration

  • Créer la base de données :
mysql -h localhost -u root -pfourchettetraindifference -e "DROP DATABASE nextcloud_db"
mysql -h localhost -u root -pfourchettetraindifference -e "CREATE DATABASE nextcloud_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"
  • Restaurer la base de données :
mysql -h localhost -u root -pfourchettetraindifference nextcloud_db < nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
  • Sortir du mode maintenance :
sudo -u www-data php occ maintenance:mode --off

Sources

https://docs.nextcloud.com/server/latest/admin_manual/maintenance/migrating.html

https://docs.nextcloud.com/server/latest/admin_manual/maintenance/backup.html

https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html