Mover uma pasta de dados do Nextcloud para um disco rígido externo maior parece uma tarefa simples de copiar e editar. Mas não é. O detalhe importante é que o Nextcloud identifica o armazenamento local pelo seu caminho absoluto no disco. Se esse caminho for alterado sem cuidado, o servidor pode tratar os arquivos como se estivessem em um local de armazenamento diferente, o que pode levar a registros de arquivos duplicados ou órfãos, metadados corrompidos ou perda de relações de compartilhamento.
A abordagem prática mais segura para uma instalação existente é, portanto, manter o Nextcloud acessando o mesmo caminho do diretório de dados enquanto move os bytes para o disco externo. O Manual de Administração atual do Nextcloud recomenda explicitamente mover o diretório e, em seguida, criar um link simbólico do caminho original para o novo local. O manual também alerta que a alteração direta datadirectoryrequer alterações no banco de dados e não é um método de migração suportado. Consulte o guia de solução de problemas do diretório de dados do Nextcloud .
Antes de começar: O que é verificado e o que depende da sua configuração?
| Pergunta | Resposta prática |
Posso simplesmente editar datadirectoryaqui config.php? | Não é seguro fazer isso sozinho. O Nextcloud documenta que alterar o caminho absoluto do armazenamento local pode quebrar os relacionamentos do banco de dados. Prefira preservar o caminho original com um link simbólico. |
| Preciso de um backup completo? | Sim. A documentação de backup do Nextcloud inclui a configuração, o diretório de dados, o banco de dados e os dados relevantes de aplicativos/temas personalizados. Não considere o disco antigo como sua única cópia de restauração. |
| O disco externo precisa ser ext4? | Este procedimento não exige um sistema de arquivos específico. Os exemplos abaixo usam ext4 porque o comportamento normal de propriedade e permissões do Linux é simples. Outros sistemas de arquivos podem exigir opções de montagem diferentes. |
Devo correr files:scan --alldepois? | Geralmente não é indicado para uma movimentação que preserve o caminho original. Use este recurso quando os arquivos estiverem realmente ausentes do cache de arquivos ou quando os arquivos foram copiados para a árvore de dados fora do Nextcloud e precisam de uma nova verificação imediata. |
| Um disco rígido USB é tão confiável quanto um disco interno? | Isso depende do gabinete, do cabo, da alimentação, do sistema de arquivos e do host. A indisponibilidade de uma unidade removível representa um risco de disponibilidade, portanto, torne a montagem persistente e verifique-a antes de iniciar o Nextcloud. |
1. Monte a unidade externa em um local estável.
Primeiro, identifique o dispositivo e o sistema de arquivos. No Linux, comandos como `fstab` lsblk -fe `fstab` blkidmostram o UUID do sistema de arquivos. Evite criar uma configuração permanente em torno de um nome de dispositivo como `/usr/local/bin`; os nomes de dispositivos no Linux podem mudar quando hardware é adicionado ou a ordem de detecção é alterada. O manual do fstab/dev/sdb1 do Linux recomenda identificadores UUID ou LABEL para montagens persistentes.
lsblk -f
sudo blkid /dev/sdb1
sudo mkdir -p /mnt/nextcloud-data-storage
Adicione uma entrada adequada em /etc/fstab. Substitua o UUID e o tipo de sistema de arquivos de exemplo pelos valores do seu próprio disco:
UUID=YOUR-FILESYSTEM-UUID /mnt/nextcloud-data-storage ext4 defaults 0 2
Em seguida, teste a montagem antes de mexer no Nextcloud:
sudo mount -a
findmnt /mnt/nextcloud-data-storage
df -h /mnt/nextcloud-data-storage
Verifique o disco externo pelo UUID e confirme o ponto de montagem antes de mover quaisquer arquivos do Nextcloud.
Conceito errado comum: um diretório com o nome /mnt/nextcloud-data-storagenão prova que o disco está montado nele. Se a unidade estiver ausente, o diretório do ponto de montagem ainda pode existir no disco do sistema. Ação: use `cd` findmntou ` mountpointcd` sempre que testar a migração e após reiniciar o sistema.
2. Faça backup do Nextcloud e interrompa as gravações.
O guia de backup atual do Nextcloud afirma que um backup recuperável inclui o diretório de dados, a configuração, o banco de dados e outros conteúdos específicos da implantação, como aplicativos e temas personalizados. Consulte a documentação oficial de backup do Nextcloud e certifique-se de que o backup esteja armazenado em um local diferente da unidade que você está prestes a reparticionar ou reutilizar.
Em seguida, habilite o modo de manutenção no diretório de instalação do Nextcloud. No Debian e no Ubuntu, a conta do servidor web geralmente é www-data:
cd /var/www/nextcloud
sudo -E -u www-data php occ maintenance:mode --on
As diretrizes de migração também indicam que nenhuma tarefa cron deve ser executada durante a migração e recomendam a interrupção dos servidores web/de aplicativos enquanto os dados estão sendo realocados. A forma de realizar essa interrupção depende da implantação: Apache, Nginx com PHP-FPM, Docker Compose, Snap, AIO e Kubernetes possuem diferentes limites de serviço.
Ação: desative a entrada cron do Nextcloud ou pare o serviço cron relevante e, em seguida, pare o serviço web/aplicativo antes da cópia final. Se o conjunto de dados for muito grande, você pode pré-carregar o disco externo enquanto o site estiver online, entrar no modo de manutenção, interromper os processos de gravação e executar uma rsyncpassagem final para capturar as alterações.
3. Copie todo o diretório de dados, incluindo arquivos ocultos.
Não copie apenas as pastas do usuário. O diretório de dados também contém arquivos ocultos, como .ncdatadados de aplicativos, que pertencem ao armazenamento. O Nextcloud menciona explicitamente arquivos ocultos/com ponto (.htaccess) em seu procedimento de movimentação.
Suponha que o diretório atual seja <diretório_atual> /var/www/nextcloud/datae o disco externo esteja montado em <diretório_externo> /mnt/nextcloud-data-storage. Crie o destino e copie o diretório:
sudo mkdir -p /mnt/nextcloud-data-storage/data
sudo rsync -Aax --info=progress2 /var/www/nextcloud/data/ /mnt/nextcloud-data-storage/data/
A documentação de restauração do Nextcloud usa rsync -Aaxcomo exemplo a preservação da árvore de diretórios e metadados. Para instalações muito grandes, execute uma segunda passagem após a interrupção de todos os processos de gravação e inspecione a saída. As opções exatas necessárias podem variar dependendo se a sua origem utiliza ACLs, atributos estendidos, sistemas de arquivos incomuns ou armazenamento montado em contêineres.
Interrompa as gravações em segundo plano e copie toda a árvore de dados, incluindo os arquivos de metadados ocultos do Nextcloud.
Conceito errado comum: uma cópia concluída significa que a migração terminou. Não significa. O Nextcloud ainda precisa do caminho esperado e o usuário HTTP precisa conseguir acessar e gravar no novo local. Ação: verifique a quantidade de arquivos ou os checksums de amostra antes de alterar os caminhos e mantenha o diretório de origem intacto até que o novo armazenamento seja testado.
4. Preserve o caminho de dados original com um link simbólico.
Esta é a principal medida de segurança. Suponha que o Nextcloud esteja usando atualmente:
'datadirectory' => '/var/www/nextcloud/data',
Não altere esse valor para a migração recomendada que preserva o caminho. Em vez disso, mantenha o diretório antigo como uma cópia de reversão e substitua-o por um link simbólico apontando para a unidade externa:
sudo mv /var/www/nextcloud/data /var/www/nextcloud/data.old
sudo ln -s /mnt/nextcloud-data-storage/data /var/www/nextcloud/data
ls -ld /var/www/nextcloud/data
O Nextcloud documenta esse método de link simbólico porque o armazenamento local é identificado pelo caminho absoluto. Com o link estabelecido, o Nextcloud continua a enxergar /var/www/nextcloud/dataos dados mesmo que eles estejam no disco externo.
Verifique a titularidade antes de fazer alterações amplas nas permissões:
stat -c '%U:%G %a %n' /var/www/nextcloud/data.old
stat -c '%U:%G %a %n' /mnt/nextcloud-data-storage/data
namei -l /mnt/nextcloud-data-storage/data
O usuário HTTP deve ter permissão para navegar pelos diretórios pai e ler/escrever no diretório de dados. O proprietário correto varia de acordo com a distribuição e o método de instalação. A documentação do Nextcloud sobre o usuário occ observa que a conta HTTP é geralmente a mesma www-datano Debian/Ubuntu, apacheno Fedora/CentOS e diferente em outros sistemas.
Mantenha o caminho original do diretório de dados e aponte-o para o disco externo com um link simbólico.
Conceito errôneo comum: executar uma chmod 777correção genérica recursivamente resolve o problema de permissões. Isso pode mascarar o problema real e, ao mesmo tempo, comprometer a segurança. Ação: compare o novo diretório com a propriedade e as permissões originais, preserve as ACLs quando houver e faça apenas a correção mínima necessária para o usuário HTTP.
E se você realmente quiser mudar datadirectory?
O Nextcloud descreve um procedimento sem links simbólicos, mas a mesma documentação o classifica como não suportado e alerta que ele pode danificar o banco de dados. Isso exige tanto a alteração config.phpquanto a atualização da entrada correspondente local::/old-data-dir/na oc_storagestabela.
Isso não é simplesmente uma sintaxe alternativa para a mesma operação; altera o identificador de armazenamento que o Nextcloud registra internamente. Ação: use o método de link simbólico, a menos que você tenha um backup testado, um processo de restauração testado e um motivo operacional específico para remover o caminho antigo. Para uma nova instalação do Nextcloud, escolha o local final dos dados durante a instalação. O Nextcloud afirma explicitamente que isso é mais fácil do que movê-los posteriormente.
5. Reinicie, verifique a montagem e coloque o Nextcloud online novamente.
Antes de iniciar o Nextcloud, verifique se o sistema de arquivos externo está realmente montado e se o link simbólico aponta para ele:
findmnt /mnt/nextcloud-data-storage
readlink -f /var/www/nextcloud/data
sudo -E -u www-data test -r /var/www/nextcloud/data/.ncdata && echo readable
Reinicie o serviço web/aplicativo e reative a tarefa cron do Nextcloud usando o método apropriado para sua implementação. Em seguida, desative o modo de manutenção e verifique o status do servidor.
cd /var/www/nextcloud
sudo -E -u www-data php occ maintenance:mode --off
sudo -E -u www-data php occ status
Faça login e teste várias operações: abra um arquivo existente, carregue um novo arquivo, renomeie-o, exclua-o, restaure-o da Lixeira e confirme se outro cliente consegue sincronizá-lo. Reinicie o host uma vez e repita o processo findmnt; isso detecta uma /etc/fstabentrada inválida antes que ela se torne um problema durante uma interrupção.
Após a troca, verifique a montagem do sistema operacional e as operações normais de arquivos no Nextcloud.
Você precisa de quê occ files:scan --all?
Não automaticamente. A documentação do comando `files` do Nextcloud afirma que files:scanele atualiza o cache de arquivos para arquivos novos ou alterados e pode ser útil após uma cópia manual ou ao investigar inconsistências no cache. Uma movimentação que preserva o caminho, executada corretamente, visa manter os mesmos arquivos e o mesmo caminho lógico de armazenamento local; portanto, uma varredura completa não deve ser a etapa padrão de precaução.
Ação: primeiro, teste a interface do usuário e compare os arquivos esperados. Se arquivos estiverem faltando no Nextcloud, mesmo que estejam presentes no disco, use uma verificação direcionada ou, quando justificado, uma verificação completa files:scan --all. Lembre-se de que uma verificação completa em uma instalação grande pode levar um tempo considerável.
Lista de verificação final para migração
- Existe um banco de dados, configuração e backup de dados atuais fora do disco que está sendo migrado.
- O sistema de arquivos externo possui uma montagem estável configurada por UUID ou LABEL.
findmntConfirma se a unidade externa está realmente instalada.
- As gravações do Nextcloud e as tarefas cron são interrompidas durante a sincronização final.
- O diretório de dados completo, incluindo
.ncdata, foi copiado.
- O
datadirectorycaminho original do arquivo é preservado por meio de um link simbólico.
- O usuário HTTP pode percorrer o caminho de montagem e ler/escrever os dados.
- O Nextcloud inicia sem erros de armazenamento e
occ statusfunciona normalmente.
- Os testes de upload, renomeação, exclusão, restauração, download e sincronização foram concluídos com sucesso.
- O servidor foi reiniciado uma vez para comprovar que a unidade externa é montada corretamente na inicialização.
- O diretório de dados antigo não foi excluído até que a nova configuração fosse testada e um backup separado fosse realizado.
A ideia mais importante é simples: migrar dados do Nextcloud não se resume a copiar o sistema de arquivos. O caminho faz parte da identidade do armazenamento local do Nextcloud. Preserve esse caminho sempre que possível, configure a unidade externa como um ponto de montagem confiável do sistema, interrompa as gravações durante a cópia final e mantenha uma cópia de reversão até que o novo armazenamento tenha passado por testes de aplicação e uma reinicialização.