Chcemy wykonać kopię zapasową wszystkiego na naszym serwerze Debian, który działa zdalnie po drugiej stronie świata (hostowany przez Linode), bez wyłączania go.
W tym systemie działa powłoka, poczta e-mail, XMPP / prosody i sieć, z kilkoma prostymi ustawieniami nginx.
Chcemy tworzyć kopie zapasowe plików związanych z tymi rzeczami, aby były bezpieczne. Na przykład pliki przechowywane przez użytkowników w katalogach domowych.
Nie musimy dokładnie kopiować istniejącego pliku wrt każdego pliku / etc; zamiast tego powodem, dla którego nawet wykonujemy kopię zapasową, jest przeniesienie jej do nowej konfiguracji (nowsza wersja Debiana wciąż na Linode).
Widzę, że Linode oferuje usługę tworzenia kopii zapasowych. Ale w dłuższej perspektywie potrzebujemy również własnych kopii zapasowych, na wypadek, gdyby uległy one awarii lub wydarzy się coś dziwnego.
Powodem tego pytania jest to, że kiedy próbowałem tworzyć kopie zapasowe w przeszłości, popełniłem jeden z tych dwóch błędów:
- Poszedłem „OK, po prostu skopiuję
/
i wszystko pod nim”, a następnie utknąłem w jakiejś dziwnej nieskończonej pętli albo z powodu napędu, na który kopiowałem, został zamontowany pod / media / backup i kopiował się rekurencyjnie [obv ten konkretny problem nie dotyczy tutaj, ponieważ będziemy tworzyć kopie zapasowe na rsync lub podobnym] lub utknął, próbując skopiować niektóre „żywe” rzeczy do / proc lub / var lub cokolwiek innego, na przykład próbując nadążać za ciągle zmieniającymi się logami, lub - Poszedłem: „OK, po prostu wezmę absolutne minimum tego, czego potrzebujemy… hmm, katalogi domowe wszystkich i nasze katalogi serwerów sieciowych (wszystkie poniżej
/var
), a następnie przejrzyjmy kopię/etc
wszystkich starych wiadomości w / var / vmail ”, a potem niezmiennie spieprzyłem uprawnienia do plików lub znaczniki czasu (upewnię się, że tym razem nie utworzę kopii zapasowej plików unixowych na dysku FAT) lub o czymś zapomniałem („ o, strzelaj, miałem kilka niestandardowych skryptów w / usr / local / bin, którego nigdzie indziej nie zapisałem, zapomniałem je zdobyć, zgadnij, że już ich nie ma ”).
Tak więc obv kopiowanie całego dysku prosto prowadzi do pułapek, a selektywne kopiowanie katalogów prowadzi do pułapek. Chcę wiedzieć, jak to zrobić dobrze.
Pytanie o awarię serwera Czego potrzeba do pełnego systemu tworzenia kopii zapasowych? obejmuje filozofię i dobre praktyki, ale szukam tych bardziej szczegółowych szczegółów:
- Które katalogi muszę skopiować, a które wykluczyć (biorąc pod uwagę, że jest to system, który obecnie działa i obsługuje wiki, czat XMPP, e-mail - z nowymi wiadomościami przychodzącymi podczas pracy kopiowania)
- Jakie atrybuty pliku, takie jak znaczniki czasu oraz właściciel i grupa, muszę przedstawić i jak to zrobić? ← Myślę, że sam mogę odpowiedzieć na tę połowę pytania, na przykład… hmm…
rsync -HXaz
Myślę, że to dla nas dobra opcja?-z
Obv naprawdę nie wiąże się z pytaniem, które jest „co mam zachować”
Wiele porad dotyczących tworzenia kopii zapasowych, które widzę, na przykład za pomocą dd
, wydaje się zakładać, że dysk jest odmontowany i nie jest używany. Ale ja nie powinien wykluczać „żywe” jak katalogi / proc, a niektóre z podkatalogów w / var (Jednak niektóre rzeczy z katalogu / var wiem na pewno zrobić potrzebę utrzymania) i / zamontować? O czym jeszcze muszę pomyśleć w tej sytuacji? Później chyba po prostu mogę zrobić to za pomocą rsync i użyć kilku --exclude
flag.
Czy są lepsze pomysły, szczególnie przyjazne dla FOSS?
cp -r -a
że zachowuje jak najwięcej atrybutów plików podczas kopiowania plików (w oparciu o obsługę docelowego systemu plików). -a
Flag nakazuje cp
zachować atrybuty. Kopiowanie przez sieć lub system plików, który nie obsługuje wymaganych atrybutów, tar -c
zawsze działało dla mnie, chociaż uważam, że istnieją pewne przypadki brzegowe, których nie obejmuje, a w szczególności tar
domyślnie zależą od dopasowania nazw użytkowników na oba systemy. To powiedziawszy, skopiowałem cały (odmontowany) system Linux tar
bez żadnych widocznych problemów.