Come migrare in modo sicuro una cartella dati di Nextcloud su un disco rigido esterno

Spostare una cartella di dati di Nextcloud su un disco rigido esterno più capiente potrebbe sembrare una semplice operazione di copia e modifica. Non lo è. Il dettaglio fondamentale è che Nextcloud identifica la memoria locale tramite il suo percorso assoluto sul disco. Se tale percorso viene modificato per errore, il server può trattare i file come se si trovassero in una posizione di archiviazione diversa, il che può portare a record di file duplicati o orfani, metadati danneggiati o perdita delle relazioni di condivisione.

L'approccio pratico più sicuro per un'installazione esistente è quindi quello di mantenere Nextcloud con lo stesso percorso della directory dei dati , spostando i byte effettivi sul disco esterno. Il manuale di amministrazione di Nextcloud raccomanda esplicitamente di spostare la directory e quindi di creare un collegamento simbolico dal percorso originale alla nuova posizione. Il manuale avverte inoltre che la modifica diretta datadirectoryrichiede modifiche al database e non è un metodo di migrazione supportato. Consultare la guida alla risoluzione dei problemi della directory dei dati di Nextcloud .

Prima di iniziare: cosa è verificato e cosa dipende dalla configurazione?

DomandaRisposta pratica
Posso semplicemente datadirectorymodificarlo config.php?Non è sicuro da solo. Nextcloud documenta che la modifica del percorso assoluto di local storage può interrompere le relazioni del database. È preferibile preservare il percorso originale con un collegamento simbolico.
Ho bisogno di un backup completo?Sì. La documentazione di backup di Nextcloud include la configurazione, la directory dei dati, il database e i dati relativi ad applicazioni/temi personalizzati. Non considerare il vecchio disco come unica copia di ripristino.
L'unità esterna deve necessariamente essere formattata in ext4?Questa procedura non impone l'utilizzo di un filesystem specifico. Gli esempi seguenti utilizzano ext4 perché la gestione standard di proprietà e permessi in Linux è piuttosto semplice. Altri filesystem potrebbero richiedere opzioni di montaggio diverse.
Dovrei correre files:scan --alldopo?Solitamente non è consigliabile utilizzarlo per uno spostamento che preservi il percorso dei file. Usalo quando i file sono effettivamente mancanti dalla cache o quando i file sono stati copiati nella struttura dati al di fuori di Nextcloud e necessitano di una nuova scansione immediata.
Un disco rigido USB è affidabile quanto un disco interno?Dipende dal contenitore, dal cavo, dall'alimentazione, dal file system e dall'host. Un'unità rimovibile che diventa non disponibile rappresenta un rischio per la disponibilità, quindi rendi il mount permanente e verificalo prima di avviare Nextcloud.

1. Montare l'unità esterna su un percorso stabile

Innanzitutto, identifica il dispositivo e il filesystem. Su Linux, comandi come lsblk -fe blkidmostrano l'UUID del filesystem. Evita di creare una configurazione permanente basata su un nome di dispositivo come /dev/sdb1; i nomi dei dispositivi Linux possono cambiare quando viene aggiunto hardware o quando cambia l'ordine di rilevamento. Il manuale di fstab per Linux raccomanda di utilizzare identificatori UUID o LABEL per i mount persistenti.

lsblk -f
sudo blkid /dev/sdb1
sudo mkdir -p /mnt/nextcloud-data-storage

Aggiungi una voce appropriata a /etc/fstab. Sostituisci l'UUID e il tipo di filesystem di esempio con i valori del tuo disco:

UUID=YOUR-FILESYSTEM-UUID  /mnt/nextcloud-data-storage  ext4  defaults  0  2

Quindi, prima di toccare Nextcloud, testa il montaggio:

sudo mount -a
findmnt /mnt/nextcloud-data-storage
df -h /mnt/nextcloud-data-storage
Terminale Linux che mostra lsblk, blkid, una voce UUID di fstab, mount -a e findmnt per l'unità esterna Nextcloud

Prima di spostare qualsiasi file di Nextcloud, verifica l'unità esterna tramite UUID e conferma il punto di montaggio.

Errore comune: una directory con quel nome /mnt/nextcloud-data-storagenon dimostra che il disco sia montato lì. Se l'unità non è presente, la directory del punto di montaggio può comunque esistere sul disco di sistema. Azione: utilizzare findmnto mountpointogni volta che si testa la migrazione e dopo un riavvio.

2. Eseguire il backup di Nextcloud e interrompere le operazioni di scrittura.

La guida di backup di Nextcloud attualmente in vigore afferma che un backup recuperabile include la directory dei dati, la configurazione, il database e altri contenuti specifici dell'implementazione, come app e temi personalizzati. Consulta la documentazione ufficiale di Nextcloud relativa al backup e assicurati che il backup sia archiviato in una posizione diversa dall'unità che stai per ripartizionare o riutilizzare.

Successivamente, abilita la modalità di manutenzione dalla directory di installazione di Nextcloud. Su Debian e Ubuntu l'account del server web è generalmente www-data:

cd /var/www/nextcloud
sudo -E -u www-data php occ maintenance:mode --on

Le linee guida per la migrazione specificano inoltre che nessun processo cron dovrebbe essere in esecuzione durante lo spostamento e raccomandano di arrestare i server web/applicativi mentre i dati vengono trasferiti. Le modalità per farlo dipendono dall'implementazione: Apache, Nginx con PHP-FPM, Docker Compose, Snap, AIO e Kubernetes hanno tutti limiti di servizio diversi.

Azione: disabilitare la voce cron di Nextcloud o arrestare il servizio cron pertinente, quindi arrestare il servizio web/app prima della copia finale. Se il set di dati è molto grande, è possibile pre-caricare il disco esterno mentre il sito è online, quindi entrare in modalità di manutenzione, arrestare i processi di scrittura ed eseguire un rsyncpassaggio finale per acquisire le modifiche.

3. Copiare l'intera directory dei dati, inclusi i file nascosti

Non copiare solo le cartelle utente. La directory dei dati contiene anche file nascosti, come .ncdatai dati delle applicazioni, che appartengono allo spazio di archiviazione. Nextcloud menziona esplicitamente i file nascosti/con il punto nella sua procedura di spostamento.

Supponiamo che la directory corrente sia /var/www/nextcloud/datae che il disco esterno sia montato in /mnt/nextcloud-data-storage. Crea la destinazione e copia la directory:

sudo mkdir -p /mnt/nextcloud-data-storage/data
sudo rsync -Aax --info=progress2   /var/www/nextcloud/data/   /mnt/nextcloud-data-storage/data/

La documentazione di ripristino di Nextcloud utilizza rsync -Aaxcome esempio la conservazione della struttura delle directory e dei metadati. Per installazioni molto grandi, eseguire una seconda passata dopo l'arresto di tutti i processi di scrittura e analizzare l'output. Le opzioni esatte necessarie possono variare a seconda che l'origine utilizzi ACL, attributi estesi, filesystem non standard o storage montato su container.

Il terminale mostra la modalità di manutenzione di Nextcloud, cron arrestato e rsync in esecuzione per copiare l'intera directory dei dati, inclusa la cartella .ncdata, su un'unità esterna.

Interrompi le scritture in background e copia l'intera struttura ad albero dei dati, inclusi i file di metadati nascosti di Nextcloud.

Errore comune: una copia completata significa che la migrazione è terminata. Non è così. Nextcloud ha ancora bisogno del percorso previsto e l'utente HTTP deve essere in grado di attraversarlo e scriverci nella nuova posizione. Azione: verificare il numero di file o i checksum dei campioni prima di cambiare percorso e mantenere intatta la directory di origine finché il nuovo spazio di archiviazione non ha superato i test.

4. Preservare il percorso dati originale con un collegamento simbolico

Questa è la misura di sicurezza fondamentale. Supponiamo che Nextcloud utilizzi attualmente:

'datadirectory' => '/var/www/nextcloud/data',

Non modificare quel valore per la migrazione consigliata che preserva il percorso. Mantieni invece la vecchia directory come copia di ripristino e sostituiscila con un collegamento simbolico che punta all'unità esterna:

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

Nextcloud documenta questo metodo di collegamento simbolico perché la memoria locale viene identificata dal percorso assoluto. Grazie al collegamento, Nextcloud continua a visualizzare i dati /var/www/nextcloud/dataanche se i byte risiedono sul disco esterno.

Prima di apportare modifiche generali alle autorizzazioni, verifica la proprietà dei diritti:

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

L'utente HTTP deve essere in grado di attraversare le directory superiori e leggere/scrivere la directory dei dati. Il proprietario corretto varia a seconda della distribuzione e del metodo di installazione. La documentazione occ di Nextcloud indica che l'account HTTP è comunemente presente www-datasu Debian/Ubuntu, apachesu Fedora/CentOS e diverso su altri sistemi.

Terminale che mostra i controlli di proprietà e un collegamento simbolico dal percorso dati originale di Nextcloud all'unità esterna

Mantieni il percorso originale della directory dei dati e puntalo al disco esterno tramite un collegamento simbolico.

Errore comune: l'esecuzione ricorsiva di un comando generico chmod 777corregge i permessi. Questo potrebbe nascondere il problema reale e indebolire la sicurezza. Soluzione: confrontare la nuova directory con la proprietà e i permessi originali, preservare gli ACL laddove utilizzati ed effettuare solo le correzioni minime necessarie per l'utente HTTP.

E se volessi davvero cambiare datadirectory?

Nextcloud descrive una procedura senza symlink, ma la stessa documentazione la etichetta come non supportata e avverte che può danneggiare il database. Richiede sia la modifica config.phpche l'aggiornamento della local::/old-data-dir/voce corrispondente nella oc_storagestabella.

Non si tratta semplicemente di una sintassi alternativa per la stessa operazione; modifica l'identificativo di archiviazione che Nextcloud registra internamente. Azione: utilizzare il metodo del collegamento simbolico a meno che non si disponga di un backup testato, di una procedura di ripristino testata e di una specifica ragione operativa per rimuovere il vecchio percorso. Per una nuova installazione di Nextcloud, scegliere invece la posizione finale dei dati durante l'installazione. Nextcloud afferma esplicitamente che è più semplice rispetto a spostarli in seguito.

5. Riavvia, verifica il montaggio e rimetti Nextcloud online.

Prima di avviare Nextcloud, verifica che il filesystem esterno sia effettivamente montato e che il collegamento simbolico punti ad esso:

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

Riavvia il servizio web/applicativo e riattiva il cron job di Nextcloud utilizzando il metodo appropriato per la tua implementazione. Quindi disattiva la modalità di manutenzione e verifica lo stato del server:

cd /var/www/nextcloud
sudo -E -u www-data php occ maintenance:mode --off
sudo -E -u www-data php occ status

Accedi e prova diverse operazioni: apri un file esistente, carica un nuovo file, rinominalo, eliminalo, ripristinalo dal Cestino e verifica che un altro client possa sincronizzarlo. Riavvia l'host una volta e ripeti la procedura findmnt; in questo modo è possibile individuare una voce non valida /etc/fstabprima che diventi un problema durante un'interruzione del servizio.

Terminale che verifica lo stato di Nextcloud e il montaggio del filesystem esterno insieme all'interfaccia Nextcloud Files

Dopo il passaggio, verifica sia il montaggio del sistema operativo che il normale funzionamento dei file in Nextcloud.

Di cosa hai bisogno occ files:scan --all?

Non automaticamente. La documentazione del comando `files` di Nextcloud afferma che files:scanaggiorna la cache dei file per i file nuovi o modificati e può essere utile dopo una copia manuale o quando si indagano incoerenze nella cache. Uno spostamento che preserva il percorso, se eseguito correttamente, ha lo scopo di mantenere gli stessi file e lo stesso percorso logico di archiviazione locale, quindi una scansione completa non dovrebbe essere la procedura predefinita "per sicurezza".

Azione: innanzitutto testare l'interfaccia utente e confrontare i file previsti. Se i file risultano mancanti in Nextcloud pur essendo presenti sul disco, utilizzare una scansione mirata o, se giustificato, files:scan --all. Tenere presente che una scansione completa su un'installazione di grandi dimensioni può richiedere molto tempo.

Lista di controllo finale per la migrazione

  • Il database, la configurazione e il backup dei dati aggiornati esistono al di fuori del disco che viene migrato.
  • Il filesystem esterno ha un punto di montaggio stabile configurato tramite UUID o ETICHETTA.
  • findmntconferma che l'unità esterna è effettivamente montata.
  • Le operazioni di scrittura di Nextcloud e i processi cron vengono interrotti durante la sincronizzazione finale.
  • L'intera directory dei dati, incluso .ncdata, è stata copiata.
  • Il percorso originale datadirectoryviene conservato tramite un collegamento simbolico.
  • L'utente HTTP può attraversare il percorso di montaggio e leggere/scrivere i dati.
  • Nextcloud si avvia senza errori di archiviazione e occ statusfunziona normalmente.
  • I test di caricamento, ridenominazione, eliminazione, ripristino, download e sincronizzazione sono andati a buon fine.
  • Il server è stato riavviato una volta per verificare che l'unità esterna venga montata correttamente all'avvio.
  • La vecchia directory dei dati non è stata eliminata finché la nuova configurazione non è stata testata e non ne è stato effettuato un backup separato.

Il concetto fondamentale è semplice: la migrazione dei dati di Nextcloud non si limita alla copia del file system. Il percorso fa parte dell'identità di archiviazione locale di Nextcloud. Quando possibile, preservate tale percorso, rendete l'unità esterna un mount di sistema affidabile, interrompete le scritture durante la copia finale e conservate una copia di ripristino finché la nuova archiviazione non abbia superato sia i test dell'applicazione che un riavvio.

Lascia un commento

10 migliori strumenti di ping sweep per individuare i dispositivi sulla tua rete

10 migliori strumenti di ping sweep per individuare i dispositivi sulla tua rete

Confronta 10 strumenti di scansione ping per una rapida individuazione della rete LAN, la scansione multipiattaforma e la gestione degli indirizzi IP. Scopri cosa può (e non può) rivelarti una scansione.

6 migliori strumenti di gestione della rete per il monitoraggio delle prestazioni

6 migliori strumenti di gestione della rete per il monitoraggio delle prestazioni

Confronta sei strumenti di gestione della rete per il monitoraggio delle prestazioni, tra cui copertura SNMP, mappatura, avvisi, modelli di implementazione e compromessi in termini di costi.

Ping Monitor: 7 strumenti gratuiti e open-source per la disponibilità della rete

Ping Monitor: 7 strumenti gratuiti e open-source per la disponibilità della rete

Confronta sette monitor di ping gratuiti e open-source, da suite di rete complete a strumenti specifici per la misurazione della latenza, e scegli quello più adatto alle tue esigenze in termini di disponibilità, perdita di pacchetti e cronologia.

I migliori analizzatori Wi-Fi per Windows, iOS e Android

I migliori analizzatori Wi-Fi per Windows, iOS e Android

Confronta le migliori app di analisi Wi-Fi per Windows, iPhone e Android, inclusi strumenti per l'analisi della congestione dei canali, la copertura del segnale, le mappe di calore e la risoluzione dei problemi di rete.

QoS nelle reti: cos'è la qualità del servizio e come funziona

QoS nelle reti: cos'è la qualità del servizio e come funziona

Scopri cosa significa QoS nelle reti, come le marcature DSCP e le code di traffico danno priorità alle applicazioni voce, video e aziendali e cosa il QoS non può risolvere.

Il miglior software server SFTP per trasferimenti di file sicuri

Il miglior software server SFTP per trasferimenti di file sicuri

Confronta software server SFTP affidabili per Windows e Linux, tra cui OpenSSH, Bitvise, SolarWinds e SFTPGo. Trova la soluzione più adatta alle tue esigenze di sicurezza e trasferimento file.

I 7 migliori strumenti di gestione degli indirizzi IP per i team di rete

I 7 migliori strumenti di gestione degli indirizzi IP per i team di rete

Confronta sette strumenti di gestione degli indirizzi IP per la scoperta di sottoreti, il coordinamento di DNS e DHCP, l'inventario di rete e la gestione degli indirizzi IP open source.

Procedure ottimali per il monitoraggio della rete: cosa monitorare e quali strumenti utilizzare

Procedure ottimali per il monitoraggio della rete: cosa monitorare e quali strumenti utilizzare

Realizza un sistema di monitoraggio di rete efficace con una chiara copertura dei dispositivi, metriche di prestazioni utili, avvisi tempestivi e un confronto tra SolarWinds NPM, PRTG e OpManager.

I 10 migliori strumenti di scansione di rete per scoprire dispositivi e indirizzi IP

I 10 migliori strumenti di scansione di rete per scoprire dispositivi e indirizzi IP

Confronta gli strumenti di scansione di rete per la rapida individuazione dei dispositivi, le scansioni IP multipiattaforma e la gestione degli accessi IP (IPAM) aziendale, con indicazioni su come scegliere l'opzione più adatta alla tua rete.

Come utilizzare Nmap per il traceroute e leggere il percorso di rete

Come utilizzare Nmap per il traceroute e leggere il percorso di rete

Utilizza l'opzione --traceroute di Nmap per mappare gli hop a un host autorizzato, comprendere l'output di hop e RTT e risolvere i problemi relativi alle risposte mancanti senza eseguire scansioni eccessive.