Co skonfigurujesz
BackupZit czyta dzierżawę Microsoft 365 przez Microsoft Graph za pomocą rejestracji aplikacji, która ma tylko uprawnienia do odczytu: w dzierżawie nic nie jest zmieniane ani usuwane. Dowolny agent BackupZit z dostępem do internetu pobiera dane — na przykład agent na maszynie z konsolą — i zapisuje je jak każdą inną kopię: deduplikowane, szyfrowane, z przechowywaniem, zadaniami kopiowania i testami przywracania. BackupZit jest darmowy i open source (AGPLv3), bez licencji na użytkownika.
Dlaczego osobna kopia Microsoft 365?
Microsoft dba o działanie usługi, ale za dane w niej odpowiadasz ty: skrzynka usunięta przez pomyłkę, pliki zaszyfrowane przez zsynchronizowany OneDrive albo konto usunięte, gdy ktoś odchodzi z firmy. Kosze i ustawienia przechowywania są w tej samej dzierżawie i wygasają. Kopia na twoim magazynie to niezależna kopia pod twoją kontrolą, poza dzierżawą i jej kontami administratorów.
Microsoft i inni dostawcy sprzedają kopie Microsoft 365 także jako usługę w chmurze, zwykle rozliczaną za użytkownika lub za gigabajt. BackupZit to opcja na własnym serwerze: dane trafiają na twój NAS, serwer lub zasobnik S3, a jedynym kosztem jest magazyn.
Czego potrzebujesz
- Konsoli BackupZit — mała VM z Linuksem (2 vCPU, 2–4 GB RAM, dysk 16–20 GB) z gotowego obrazu ze strony pobierania albo skrypt instalacyjny na istniejącym serwerze Debian, Ubuntu, AlmaLinux lub Rocky Linux.
- Agenta, który pobiera dane: Windows lub Linux, z dostępem HTTPS do
login.microsoftonline.com,graph.microsoft.comi — dla plików OneDrive i SharePoint —*.sharepoint.com. Wystarczy agent na maszynie z konsolą. - Magazynu na kopie: SFTP, udział SMB, zasobnik zgodny z S3, Azure Blob Storage albo wzmocnione repozytorium BackupZit.
- Administratora globalnego dzierżawy, jednorazowo, do zarejestrowania aplikacji i udzielenia zgody.
Krok 1 — Zarejestruj aplikację w Microsoft Entra ID
Raz na dzierżawę, w centrum administracyjnym Microsoft Entra:
- App registrations → New registration: nadaj nazwę, np.
BackupZit, wybierz Accounts in this organizational directory only, bez URI przekierowania. Zapisz Application (client) ID i Directory (tenant) ID ze strony przeglądu. - Certificates & secrets → New client secret: wybierz okres ważności (np. 24 miesiące) i od razu skopiuj Value sekretu — jest pokazywana tylko raz. Secret ID to nie sekret.
- API permissions → Add a permission → Microsoft Graph → Application permissions (nie delegowane):
Kopia Uprawnienia Poczta i OneDrive User.Read.All,Mail.Read,Files.Read.AllKalendarze i kontakty dodatkowo Calendars.Read,Contacts.ReadWitryny SharePoint dodatkowo Sites.Read.All - Kliknij Grant admin consent for …. Do tego czasu status pokazuje Not granted i kopie są odrzucane.
To wyłącznie uprawnienia do odczytu. Aby ograniczyć aplikację do wybranych skrzynek, administrator Exchange może dodać zasady dostępu aplikacji albo zakres RBAC for Applications; konta spoza niego są wtedy zgłaszane jako nieczytelne.
Krok 2 — Dodaj miejsce docelowe
W konsoli otwórz Magazyn i dodaj miejsce docelowe — na przykład udział SMB na NAS dla pierwszej kopii i zasobnik S3 z Object Lock dla kopii poza siedzibą. Pozostaw włączone Szyfruj kopie (AES-256) (domyślnie): poczta i pliki są szyfrowane AES-256 na agencie, zanim go opuszczą. Klucz odzyskiwania pokazany przez konsolę przechowuj z dala od kopii, np. wydrukowany lub w menedżerze haseł.
Krok 3 — Utwórz zadanie Microsoft 365
- W Zadania kopii utwórz zadanie typu Microsoft 365 i wybierz agenta, który pobiera dane.
- Wpisz Directory (tenant) ID, Application (client) ID i Client secret z kroku 1. Sekret jest przechowywany zaszyfrowany.
- Wybierz, co kopiować: Poczta, OneDrive, Kalendarze i kontakty, Witryny SharePoint — w dowolnym połączeniu.
- Wybierz konta: Wszystkie konta ze skrzynką pocztową lub OneDrive (konta dodane później są dołączane automatycznie; wyjątki w polu Z wyjątkiem, po jednym w wierszu) albo Tylko te konta. Konta bez licencji są pomijane. Dla SharePoint ten sam wybór dotyczy witryn: wszystkie witryny z wyjątkami albo tylko podane adresy, np.
https://contoso.sharepoint.com/sites/sales. - Zamiast wpisywać adresy, kliknij Wybierz z listy: konsola odczyta konta i witryny dzierżawy przez wpisaną właśnie aplikację i pozwoli je zaznaczyć.
- Wybierz miejsce docelowe, harmonogram (np. co noc) i przechowywanie.
Przy zapisie konsola loguje się jako aplikacja i sprawdza uprawnienia, konta i witryny, więc błędny sekret lub brak zgody administratora widać od razu.
Pierwsza kopia pobiera wszystko. Każda kolejna ponownie listuje foldery, ale pobiera tylko nowe lub zmienione wiadomości i pliki (przeczytane, oflagowane, przeniesione lub edytowane wiadomości liczą się jako zmienione); niezmienione dane są brane z poprzedniej kopii. Microsoft ogranicza tempo odczytu przez aplikację — BackupZit czeka, gdy Microsoft o to prosi, i kontynuuje, więc pierwsza kopia dużych skrzynek może trwać godzinami.
Co jest kopiowane
| Dane | Zapisywane jako |
|---|---|
| Poczta | Wszystkie foldery i podfoldery; każda wiadomość w całości z załącznikami jako plik .eml nazwany datą i tematem. Otwiera go Outlook, Thunderbird i większość programów pocztowych. |
| OneDrive | Wszystkie pliki i foldery z datą modyfikacji. |
| Kalendarze | Każdy kalendarz; każde wydarzenie jako plik iCalendar (.ics) z czasem, miejscem, uczestnikami, przypomnieniem i cyklem. Importuje go Outlook, Kalendarz Google i Thunderbird. |
| Kontakty | Kontakty i foldery kontaktów jako vCard (.vcf). |
| SharePoint | Każda biblioteka dokumentów każdej witryny, ze wszystkimi folderami i plikami. Pliki Teams są w SharePoint i trafiają do kopii. |
Kopia zawiera jeden folder na konto — ana@contoso.com/Mail/Inbox/…, …/OneDrive/…, …/Calendar/…, …/Contacts/… — oraz SharePoint/<witryna>/<biblioteka>/…. Ponieważ to standardowe formaty, pliki pozostają czytelne także bez BackupZit.
Krok 4 — Kopia poza siedzibą (3-2-1)
Dodaj zadanie typu Kopia kopii zapasowej ze źródłem w zadaniu Microsoft 365 i drugim miejscem docelowym w innej lokalizacji — zasobnik S3 z Object Lock lub wzmocnione repozytorium czynią tę kopię niezmienną. Wysyłane są tylko dane, których jeszcze nie ma w miejscu docelowym, a kopia ma własne przechowywanie. Automatyczne testy przywracania (domyślnie co tydzień, w Ustawienia → Testy przywracania) przywracają losową próbkę z najnowszej kopii i sprawdzają każdy bajt z zapisanymi sumami kontrolnymi.
Przywracanie
- Przeglądanie i pobieranie: w uruchomieniu kopii otwórz foldery poczty, OneDrive, kalendarze lub kontakty konta albo witrynę SharePoint; zaznacz wiadomości, wydarzenia, pliki lub foldery i pobierz je — jeden plik bez zmian, kilka jako ZIP. Otwórz pliki
.emlw Outlooku albo przeciągnij je do skrzynki. - Przywróć do folderu na dowolnym agencie: wiadomości jako
.eml, wydarzenia jako.ics, kontakty jako.vcf, pliki OneDrive i SharePoint w oryginalnej postaci, w<folder>/<konto>/…i<folder>/SharePoint/….
Ograniczenia
- Przywracania bezpośrednio do skrzynki lub OneDrive jeszcze nie ma (jest planowane; będzie zapisywać tylko do nowego folderu i nigdy nie nadpisze). Na razie pobierasz lub przywracasz do folderu.
- Nie są kopiowane: czaty i wiadomości kanałów Teams, listy i strony SharePoint (tylko biblioteki dokumentów), załączniki wydarzeń, zdjęcia kontaktów, pojedynczo zmienione wystąpienia serii i skrzynki udostępnione bez konta użytkownika.
- Godziny wydarzeń są zapisywane w UTC.
Rozwiązywanie problemów
- AADSTS7000215 / invalid client secret: skopiowano ID sekretu zamiast jego Value albo sekret wygasł — utwórz nowy i wpisz go w zadaniu.
- Missing application permissions / Authorization_RequestDenied: dodaj uprawnienia jako uprawnienia aplikacji i kliknij Grant admin consent.
- The account has no Exchange Online mailbox: konto nie ma licencji Exchange (lub jest kontaktem); usuń je z zadania.
- Uruchomienie z ostrzeżeniami wymienia wiadomości lub pliki, których nie udało się odczytać (np. notes OneNote); reszta kopii jest kompletna.
Co dalej
Pobierz BackupZit, zobacz wszystkie funkcje dla Microsoft 365 albo przeczytaj rozdział o Microsoft 365 w podręczniku w konsoli. Ta sama konsola tworzy też kopie serwerów i maszyn wirtualnych — zobacz poradniki dla Proxmox VE i Hyper-V. Pytania mile widziane w GitHub Discussions. Firmy mogą skorzystać z płatnego wsparcia MaxZit (tylko po angielsku).