官方链接:Backup — Nextcloud latest Administration Manual latest documentation

维护模式

操作之前首先进入维护模式,主要目的是防止文件被客户端更新导致不一致

进入nextcloud安装目录cd /var/www/html/nextcloud执行

sudo -E -u www-data php occ maintenance:mode --on

或者编辑文件 config/config.php "maintenance" => false改为true

迁移完成之后,再关闭维护模式

备份数据库

我使用的是mysql数据库备份命令:

mysqldump --single-transaction --default-character-set=utf8mb4 -h localhost -u root -p nextcloud > nextcloud-sqlbkp_`date +
"%Y%m%d"`.bak

--default-character-set=utf8mb4 表示开启了4-byte支持符号emoji

备份文件夹

安装目录和数据目录是分开的,所以得分开备份

备份安装目录

进入安装目录 cd /var/www/html/nextcloud

rsync -Aavx nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/

-Aavx:保留原目录的权限,创建时间和用户

备份数据目录

进入数据目录 cd /var/www/html/nextcloud

rsync -Aavx nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/

恢复到旧版本

查找旧版本,如果升级过版本,旧版本查找目录/sata-data/nextcloud/data/updater-oc6ndg14ub2h/backups

里边包含了以前的版本的所有配置信息,比如找到 nextcloud-31.0.10.2-1763542985

将这个版本复制到 /var/www/html/nextcloud,替换旧版本

关闭维护模式 sudo -E -u www-data php occ maintenance:mode --off

降级成功!

如果数据库不兼容,则修复数据库

sudo -u www-data php /var/www/nextcloud/occ maintenance:repair

迁移当前版本到新服务器

将上面的备份复制到新服务器

  1. 恢复配置和数据文件夹 rsync -Aax nextcloud-dirbkp/ nextcloud/

  2. 恢复数据库

创建数据库,支持emjo

mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud"
mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"

恢复数据库数据

mysql -h localhost -u root -p nextcloud < nextcloud-sqlbkp.bak

春风花气馥,秋月寒江湛