Jak bezpiecznie przenieść folder danych Nextcloud na zewnętrzny dysk twardy

Przeniesienie folderu danych Nextcloud na większy zewnętrzny dysk twardy brzmi jak proste kopiowanie i edycja. W rzeczywistości tak nie jest. Ważne jest, że Nextcloud identyfikuje pamięć lokalną na podstawie ścieżki bezwzględnej na dysku. Jeśli ścieżka ta ulegnie nieostrożnej zmianie, serwer może potraktować pliki jako inną lokalizację, co może prowadzić do duplikacji lub osieroconych rekordów plików, uszkodzonych metadanych lub utraty relacji współdzielenia.

Najbezpieczniejszym praktycznym podejściem w przypadku istniejącej instalacji jest zatem pozostawienie Nextcloud w widoku tej samej ścieżki do katalogu danych podczas przenoszenia samych bajtów na dysk zewnętrzny. Aktualny podręcznik administratora Nextcloud wyraźnie zaleca przeniesienie katalogu, a następnie utworzenie dowiązania symbolicznego z oryginalnej ścieżki do nowej lokalizacji. W podręczniku ostrzega się również, że bezpośrednia zmiana datadirectorywymaga zmian w bazie danych i nie jest obsługiwaną metodą migracji. Zapoznaj się z poradnikiem rozwiązywania problemów z katalogiem danych Nextcloud .

Zanim zaczniesz: co jest weryfikowane, co zależy od Twojej konfiguracji?

PytaniePraktyczna odpowiedź
Czy mogę po prostu datadirectoryedytować config.php?Samo w sobie nie jest bezpieczne. NextCloud dokumentuje, że zmiana bezwzględnej ścieżki do pamięci lokalnej może zerwać relacje z bazami danych. Preferowane jest zachowanie oryginalnej ścieżki za pomocą dowiązania symbolicznego.
Czy potrzebuję pełnej kopii zapasowej?Tak. Dokumentacja kopii zapasowej Nextcloud obejmuje konfigurację, katalog danych, bazę danych oraz odpowiednie dane niestandardowej aplikacji/motywu. Nie traktuj starego dysku jako jedynej kopii zapasowej.
Czy dysk zewnętrzny musi być ext4?Ta procedura nie wymaga konkretnego systemu plików. Poniższe przykłady wykorzystują ext4, ponieważ standardowe zasady dotyczące własności i uprawnień w systemie Linux są proste. Inne systemy plików mogą wymagać innych opcji montowania.
Czy powinienem files:scan --allpotem pobiec?Zwykle nie służy do przenoszenia danych z zachowaniem ścieżki. Należy go używać, gdy pliki faktycznie znikają z pamięci podręcznej plików lub gdy pliki zostały skopiowane do drzewa danych poza NextCloud i wymagają natychmiastowego ponownego skanowania.
Czy dysk twardy USB jest tak samo niezawodny jak dysk wewnętrzny?Zależy to od obudowy, kabla, zasilania, systemu plików i hosta. Niedostępność dysku wymiennego stanowi zagrożenie dla dostępności, dlatego należy ustawić stałe montowanie i zweryfikować je przed uruchomieniem NextCloud.

1. Zamontuj dysk zewnętrzny w stabilnej ścieżce

Najpierw zidentyfikuj urządzenie i system plików. W systemie Linux polecenia takie jak lsblk -fi blkidpokazują identyfikator UUID systemu plików. Unikaj budowania trwałej konfiguracji wokół nazwy urządzenia, takiej jak /dev/sdb1; Nazwy urządzeń w systemie Linux mogą ulec zmianie po dodaniu sprzętu lub zmianie kolejności wykrywania. Podręcznik fstab dla systemu Linux zaleca stosowanie identyfikatorów UUID lub LABEL dla trwałych montowań.

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

Dodaj odpowiedni wpis do /etc/fstab. Zastąp przykładowy UUID i typ systemu plików wartościami z własnego dysku:

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

Następnie przetestuj mocowanie przed dotknięciem Nextcloud:

sudo mount -a
findmnt /mnt/nextcloud-data-storage
df -h /mnt/nextcloud-data-storage
Terminal Linux pokazujący lsblk, blkid, wpis UUID fstab, mount -a i findmnt dla zewnętrznego dysku Nextcloud

Przed przeniesieniem jakichkolwiek plików Nextcloud sprawdź dysk zewnętrzny według identyfikatora UUID i potwierdź jego punkt montowania.

Powszechne nieporozumienie: nazwa katalogu /mnt/nextcloud-data-storagenie dowodzi, że dysk jest tam zamontowany. Jeśli dysk jest nieobecny, katalog punktu montowania może nadal istnieć na dysku systemowym. Działanie: użyj findmntlub mountpointza każdym razem, gdy testujesz migrację i po ponownym uruchomieniu.

2. Utwórz kopię zapasową NextCloud i zatrzymaj zapis

Aktualny poradnik tworzenia kopii zapasowych Nextcloud mówi, że odzyskiwalna kopia zapasowa obejmuje katalog danych, konfigurację, bazę danych i inne treści specyficzne dla danego wdrożenia, takie jak aplikacje niestandardowe i motywy. Zapoznaj się z oficjalną dokumentacją tworzenia kopii zapasowych Nextcloud i upewnij się, że kopia zapasowa jest przechowywana w innym miejscu niż dysk, który zamierzasz ponownie partycjonować lub wykorzystać.

Następnie włącz tryb konserwacji w katalogu instalacyjnym Nextcloud. W systemach Debian i Ubuntu konto serwera WWW to zazwyczaj www-data:

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

Wskazówki dotyczące migracji mówią również, że podczas przenoszenia danych nie powinno być uruchamiane żadne zadanie cron i zalecają zatrzymanie serwerów webowych/aplikacyjnych na czas przenoszenia danych. Sposób wykonania tej czynności zależy od wdrożenia: Apache, Nginx, PHP-FPM, Docker Compose, Snap, AIO i Kubernetes mają różne granice usług.

Działanie: wyłącz wpis cron w Nextcloud lub zatrzymaj odpowiednią usługę cron, a następnie zatrzymaj usługę internetową/aplikacyjną przed wykonaniem ostatecznej kopii. Jeśli zestaw danych jest bardzo duży, możesz wstępnie załadować dane na dysk zewnętrzny, gdy witryna jest online, a następnie przejść do trybu konserwacji, zatrzymać procesy zapisywania i uruchomić ostateczny rsyncprzebieg w celu przechwycenia zmian.

3. Skopiuj cały katalog danych, łącznie z plikami ukrytymi

Nie kopiuj tylko folderów użytkownika. Katalog danych zawiera również pliki ukryte, takie jak .ncdatadane aplikacji, które należą do magazynu. Nextcloud jawnie wywołuje pliki ukryte/dot w swojej procedurze przenoszenia.

Załóżmy, że bieżący katalog to /var/www/nextcloud/data, a dysk zewnętrzny jest zamontowany w /mnt/nextcloud-data-storage. Utwórz katalog docelowy i skopiuj go:

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

Dokumentacja przywracania danych w Nextcloud służy rsync -Aaxjako przykład zachowania drzewa katalogów i metadanych. W przypadku bardzo dużych instalacji należy uruchomić drugi przebieg po zatrzymaniu wszystkich modułów zapisujących i sprawdzić dane wyjściowe. Dokładne opcje mogą się różnić, jeśli źródło korzysta z list kontroli dostępu (ACL), rozszerzonych atrybutów, nietypowych systemów plików lub pamięci masowej montowanej w kontenerze.

Terminal pokazujący tryb konserwacji Nextcloud, zatrzymany cron i rsync kopiujący cały katalog danych, w tym .ncdata, na dysk zewnętrzny

Zatrzymaj zapis w tle i skopiuj całe drzewo danych, łącznie z ukrytymi plikami metadanych Nextcloud.

Powszechne błędne przekonanie: ukończona kopia oznacza zakończenie migracji. Tak nie jest. Nextcloud nadal potrzebuje oczekiwanej ścieżki, a użytkownik HTTP musi mieć możliwość przejścia i zapisania nowej lokalizacji. Działanie: sprawdź liczbę plików lub przykładowe sumy kontrolne przed zmianą ścieżek i zachowaj katalog źródłowy w stanie nienaruszonym do czasu, aż nowy magazyn danych przejdzie testy.

4. Zachowaj oryginalną ścieżkę danych za pomocą łącza symbolicznego

To kluczowy środek bezpieczeństwa. Załóżmy, że NextCloud obecnie korzysta z:

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

Nie zmieniaj tej wartości w przypadku zalecanej migracji z zachowaniem ścieżki. Zamiast tego zachowaj stary katalog jako kopię zapasową i zastąp go dowiązaniem symbolicznym wskazującym na dysk zewnętrzny:

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 dokumentuje tę metodę dowiązania symbolicznego, ponieważ pamięć lokalna jest identyfikowana przez ścieżkę bezwzględną. Po utworzeniu dowiązania Nextcloud nadal widzi dane, /var/www/nextcloud/datamimo że bajty znajdują się na dysku zewnętrznym.

Sprawdź własność przed wprowadzeniem ogólnych zmian uprawnień:

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

Użytkownik HTTP musi mieć możliwość poruszania się po katalogach nadrzędnych oraz odczytu/zapisu w katalogu danych. Prawidłowy właściciel różni się w zależności od dystrybucji i metody instalacji. Dokumentacja occ Nextcloud informuje, że konto HTTP jest zazwyczaj używane www-dataw systemach Debian/Ubuntu, apacheFedora/CentOS i różni się w zależności od innych systemów.

Terminal pokazujący sprawdzanie własności i symboliczny link z oryginalnej ścieżki danych Nextcloud do dysku zewnętrznego

Zachowaj oryginalną ścieżkę dostępu do katalogu danych i wskaż dysk zewnętrzny za pomocą łącza symbolicznego.

Powszechne nieporozumienie: rekurencyjne uruchamianie generycznych chmod 777uprawnień naprawia problem. Może to ukryć prawdziwy problem, jednocześnie osłabiając bezpieczeństwo. Działanie: porównaj nowy katalog z pierwotnym właścicielem i uprawnieniami, zachowaj listy kontroli dostępu (ACL) tam, gdzie były używane, i wprowadź jedynie minimalną korektę wymaganą dla użytkownika HTTP.

A co jeśli naprawdę chcesz coś zmienić datadirectory?

Nextcloud opisuje procedurę bez dowiązań symbolicznych, ale ta sama dokumentacja określa ją jako nieobsługiwaną i ostrzega, że ​​może ona uszkodzić bazę danych. Wymaga ona zarówno zmiany, config.phpjak i aktualizacji odpowiedniego local::/old-data-dir/wpisu w oc_storagestabeli.

To nie jest po prostu alternatywna składnia dla tej samej operacji; zmienia ona identyfikator magazynu, który Nextcloud rejestruje wewnętrznie. Działanie: użyj metody symlink, chyba że masz przetestowaną kopię zapasową, przetestowany proces przywracania i konkretny powód operacyjny, aby usunąć starą ścieżkę. W przypadku nowej instalacji Nextcloud, wybierz ostateczną lokalizację danych podczas instalacji. Nextcloud wyraźnie zaznacza, że ​​jest to łatwiejsze niż późniejsze przenoszenie.

5. Uruchom ponownie, sprawdź mocowanie i ponownie uruchom NextCloud

Przed uruchomieniem Nextcloud sprawdź, czy zewnętrzny system plików jest rzeczywiście zamontowany i czy dowiązanie symboliczne prowadzi do niego:

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

Uruchom ponownie usługę internetową/aplikacyjną i ponownie włącz zadanie cron Nextcloud, używając metody odpowiedniej dla wdrożenia. Następnie wyłącz tryb konserwacji i sprawdź stan serwera:

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

Zaloguj się i przetestuj kilka operacji: otwórz istniejący plik, prześlij nowy, zmień jego nazwę, usuń go, przywróć z Kosza i sprawdź, czy inny klient może go zsynchronizować. Zrestartuj hosta raz i powtórz findmnt; to wychwyci nieprawidłowy /etc/fstabwpis, zanim stanie się niespodzianką podczas awarii.

Terminal weryfikujący status Nextcloud i montowanie zewnętrznego systemu plików obok interfejsu plików Nextcloud

Po przełączeniu sprawdź zarówno montowanie systemu operacyjnego, jak i normalne operacje plików w Nextcloud.

Czy potrzebujesz occ files:scan --all?

Nie automatycznie. Dokumentacja poleceń plików w Nextcloud informuje, że files:scanaktualizuje pamięć podręczną plików dla nowych lub zmienionych plików i może być przydatna po ręcznym kopiowaniu lub podczas badania niespójności w pamięci podręcznej. Poprawnie wykonany ruch z zachowaniem ścieżki ma na celu zachowanie tych samych plików i tej samej logicznej ścieżki pamięci lokalnej, więc pełne skanowanie nie powinno być domyślnym krokiem „na wszelki wypadek”.

Działanie: najpierw przetestuj interfejs użytkownika i porównaj oczekiwane pliki. Jeśli plików brakuje w NextCloud, mimo że są obecne na dysku, należy użyć skanowania ukierunkowanego lub, w uzasadnionych przypadkach, files:scan --all. Należy pamiętać, że pełne skanowanie dużej instalacji może zająć dużo czasu.

Ostateczna lista kontrolna migracji

  • Aktualna baza danych, konfiguracja i kopia zapasowa danych znajdują się poza dyskiem poddawanym migracji.
  • Zewnętrzny system plików ma stabilne mocowanie skonfigurowane za pomocą UUID lub LABEL.
  • findmntpotwierdza, że ​​dysk zewnętrzny jest rzeczywiście zamontowany.
  • Podczas końcowej synchronizacji zapisy i zadania cron w Nextcloud są zatrzymywane.
  • Został skopiowany cały katalog danych, łącznie z .ncdata.
  • Oryginalna datadirectorynazwa ścieżki jest zachowywana za pomocą dowiązania symbolicznego.
  • Użytkownik HTTP może przejść przez ścieżkę montowania i odczytać/zapisać dane.
  • Nextcloud uruchamia się bez błędów pamięci masowej i occ statusdziała prawidłowo.
  • Testy przesyłania, zmiany nazwy, usuwania, przywracania, pobierania i synchronizowania zakończyły się powodzeniem.
  • Serwer został uruchomiony ponownie jeden raz w celu sprawdzenia, czy dysk zewnętrzny montuje się niezawodnie podczas uruchamiania.
  • Stary katalog danych nie zostanie usunięty, dopóki nowa konfiguracja nie zostanie przetestowana i nie zostanie wykonana oddzielna kopia zapasowa.

Najważniejsza idea jest prosta: migracja danych z Nextcloud to nie tylko kopia systemu plików. Ścieżka jest częścią tożsamości lokalnej pamięci masowej Nextcloud. Zachowaj tę ścieżkę, gdy tylko jest to możliwe, zapewnij niezawodne montowanie dysku zewnętrznego, zatrzymaj zapisy podczas tworzenia kopii końcowej i zachowaj kopię zapasową do momentu, aż nowa pamięć masowa przetrwa zarówno testy aplikacji, jak i ponowne uruchomienie.

Zostaw komentarz

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

Porównaj 10 narzędzi do pingowania, które umożliwiają szybkie wykrywanie sieci LAN, skanowanie międzyplatformowe i zarządzanie adresami IP. Dowiedz się, co narzędzie pingujące może Ci powiedzieć, a czego nie.

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

Porównaj sześć narzędzi do zarządzania siecią służących do monitorowania wydajności, obejmujących zasięg SNMP, mapowanie, alerty, modele wdrażania i kompromisy kosztów.

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Porównaj siedem darmowych i otwartych monitorów pingów — od kompletnych pakietów sieciowych po ukierunkowane sondy opóźnień — i wybierz odpowiedni monitor pod kątem dostępności, utraty pakietów i historii.

QoS w sieciach: czym jest jakość usług i jak działa

QoS w sieciach: czym jest jakość usług i jak działa

Dowiedz się, co oznacza QoS w sieciach, w jaki sposób oznaczenia DSCP i kolejki ruchu nadają priorytet aplikacjom głosowym, wideo i biznesowym oraz czego QoS nie jest w stanie naprawić.

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Porównaj niezawodne oprogramowanie serwera SFTP dla systemów Windows i Linux, w tym OpenSSH, Bitvise, SolarWinds i SFTPGo. Znajdź rozwiązanie odpowiednie dla swoich potrzeb w zakresie bezpieczeństwa i transferu plików.

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

Porównaj siedem narzędzi do zarządzania adresami IP służących do wykrywania podsieci, koordynacji DNS i DHCP, inwentaryzacji sieci i otwartego oprogramowania IPAM.

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

Porównaj sześć narzędzi do monitorowania systemu Windows Server pod kątem zbierania danych systemu Windows, widoczności aplikacji, modelu wdrażania i licencjonowania, aby znaleźć odpowiednie rozwiązanie.

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

Porównaj narzędzia do skanowania sieciowego umożliwiające szybkie wykrywanie urządzeń, skanowanie adresów IP na wielu platformach oraz zarządzanie IPAM w przedsiębiorstwie. Znajdziesz tu wskazówki dotyczące dopasowania każdej opcji do swojej sieci.

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Zbuduj praktyczny monitoring sieci z przejrzystym zakresem urządzeń, przydatnymi wskaźnikami wydajności, przydatnymi alertami oraz porównaniem SolarWinds NPM, PRTG i OpManager.

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Użyj opcji --traceroute programu Nmap, aby mapować przeskoki do autoryzowanego hosta, zrozumieć dane wyjściowe dotyczące przeskoków i czasu RTT oraz rozwiązywać problemy z brakującymi odpowiedziami bez nadmiernego skanowania.