Home
» Come fare
»
Spostare i dati di Nextcloud su un'unità esterna senza interrompere lo storage
Spostare i dati di Nextcloud su un'unità esterna senza interrompere lo storage
Per un'installazione Linux convenzionale, monta l'unità esterna in modo permanente, copia l'intera directory dei dati mentre Nextcloud è offline, quindi crea un collegamento simbolico dal percorso originale alla nuova posizione. Non modificare semplicemente datadirectoryil percorso config.php: Nextcloud tiene traccia dello storage locale tramite percorso assoluto, quindi una modifica diretta del percorso può causare la perdita di file e condivisioni.
Questo esempio presuppone un'installazione tramite pacchetto o archivio. Le installazioni Docker, Snap e appliance mappano i percorsi in modo diverso; adatta il punto di montaggio a tale distribuzione anziché copiare ciecamente questi percorsi host.
Cosa è confermato e cosa dipende dal tuo server
Punto
Cosa fare
Verificato: Nextcloud utilizza il percorso assoluto per identificare lo storage locale. Uno spostamento errato può causare la perdita di file o condivisioni.
Mantieni stabile il percorso configurato con un collegamento simbolico; conserva tutti i contenuti, incluso .ncdata.
A seconda della configurazione: il percorso dei dati, l'utente HTTP, il file system e i nomi dei servizi possono variare.
Verifica la configurazione effettiva e conferma che il disco mantenga la proprietà e i permessi Linux richiesti.
Dipendente dal disco: non è possibile dare per scontato un montaggio di avvio e un'alimentazione affidabili.
Montalo tramite UUID, verifica il montaggio dopo il riavvio e impedisci l'avvio di Nextcloud in assenza del disco dati.
La funzione di montaggio su memoria esterna dell'app File aggiunge una posizione secondaria; non sposta la directory dati principale. Utilizzala per una cartella o una condivisione aggiuntiva e migra la directory dati quando i file e i metadati del server devono risiedere sull'unità.
1. Esegui il backup di Nextcloud e identifica il percorso di origine
Esegui il backup del database, config/della directory dei dati, delle app personalizzate e dei temi. Verifica che il backup del database sia ripristinabile; la semplice copia dei file non costituisce un ripristino completo.
Trova il percorso dei dati in config/config.phpo con occ config:system:get datadirectory, quindi identifica l'utente HTTP. Gli esempi utilizzano www-datae /var/www/nextcloud/data; sostituisci i valori effettivi con i tuoi. Non formattare un'unità contenente file di cui hai bisogno.
Illustrazione: una visualizzazione di Utility Disco mostra i dettagli dell'unità esterna e del file system per consentirne la verifica prima del montaggio per Nextcloud.
2. Montare l'unità su un percorso stabile
Esegui il comando lsblk -fe annota l'UUID del filesystem della partizione. I nomi, come ad esempio, /dev/sdb1possono cambiare, quindi utilizza l'UUID nella configurazione del mount.
Per un server Linux che utilizza ext4, crea un punto di mount e aggiungi una riga simile a questa al file /etc/fstab, sostituendo l'UUID di esempio con quello effettivo:
Utilizza il tipo di file già presente sulla partizione; questa riga non la formatta. Verifica che il filesystem mantenga la proprietà e le autorizzazioni necessarie a Nextcloud.
Montalo e verificalo prima di inserirvi qualsiasi dato:
sudo mkdir -p /srv/nextcloud-disk
sudo mount /srv/nextcloud-disk
findmnt /srv/nextcloud-disk
Conferma che l'output identifichi la partizione esterna. Se utilizzi nofail, blocca anche i servizi web/PHP sul mount; altrimenti un disco mancante potrebbe lasciare una directory del punto di mount vuota che riceve scritture. Un componente aggiuntivo di systemd può utilizzare RequiresMountsFor=/srv/nextcloud-disk. Mantieni l'unità collegata mentre Nextcloud è in esecuzione.
Illustrazione: una voce UUID nella tabella del filesystem rappresenta una configurazione di montaggio persistente anziché un collegamento al nome del dispositivo.
3. Metti Nextcloud in modalità di manutenzione e copia i dati
La modalità di manutenzione blocca gli accessi ma non interrompe tutte le attività pianificate. Metti in pausa il cron di Nextcloud o il suo timer systemd, arresta i client di sincronizzazione e interrompi i servizi web/PHP prima di copiare i file, in modo che nessuna richiesta possa modificarli durante lo spostamento.
Con lo scheduler disabilitato e i servizi web/PHP arrestati, copiare la directory dei dati come utente root per preservare la proprietà, i permessi, gli ACL e i file nascosti:
La barra finale copia il contenuto della directory. Conserva la vecchia copia; controlla rsyncla presenza di errori e verifica .ncdatache sia presente al livello superiore della nuova directory.
Illustrazione: la visualizzazione della copia nel terminale rappresenta il trasferimento dell'intera directory dei dati mentre Nextcloud è arrestato.
4. Conserva il vecchio percorso con un collegamento simbolico
Il manuale di risoluzione dei problemi di Nextcloud consiglia di creare un collegamento al percorso originale nella nuova directory. Dopo aver verificato la copia, rinominare la vecchia directory per il ripristino e creare il collegamento:
Verificare che il percorso si risolva in /srv/nextcloud-disk/data. L'utente web deve attraversare le directory padre e leggere .ncdatae scrivere nella destinazione:
sudo -u www-data test -r /var/www/nextcloud/data/.ncdata
sudo -u www-data test -w /var/www/nextcloud/data
Se un controllo fallisce, correggi la proprietà o i permessi padre per il tuo utente web; non rendere la directory scrivibile da tutti. Alcuni server web richiedono che i collegamenti simbolici siano consentiti. Se ciò non è possibile, non modificare oc_storagesmanualmente: Nextcloud considera questo metodo non supportato e avverte che potrebbe danneggiare il database.
Illustrazione: la visualizzazione del terminale mostra il percorso dati originale collegato alla directory dell'unità esterna.
5. Riavviare e verificare prima di rimuovere la copia di ripristino.
Avvia web/PHP e riattiva lo scheduler. Conferma il montaggio e il collegamento simbolico, quindi disattiva la modalità di manutenzione:
Accedi, apri file e cartelle condivise esistenti e carica/scarica un file di piccole dimensioni. Controlla i log di Nextcloud e del server web, quindi riavvia il sistema durante una finestra di manutenzione per verificare che il disco venga montato correttamente prima dell'avvio di Nextcloud.
Conservare data.pre-moveil backup del database fino al riavvio e alla corretta sincronizzazione. Se lo spostamento non riesce, abilitare la modalità di manutenzione, arrestare l'applicazione e ripristinare la directory e lo stato del servizio originali. Un'applicazione generica files:scannon può correggere un montaggio errato.
Verifica
Verifica che il disco venga montato all'avvio, che il percorso originale sia risolvibile, che l'utente web possa leggere e scrivere e che i file esistenti, incluso un piccolo caricamento, funzionino correttamente. Se Nextcloud segnala la mancanza di file dopo il riavvio, arresta l'applicazione e controlla il montaggio prima di consentire le scritture.