Opublikowano 2 września 2026 · 4 min czytania
Kopia zapasowa ważyła 945 GB. Kodu moich aplikacji nie było w niej wcale
Kopia zapasowa działała codziennie od maja. Zielony status, 41 kopii w historii, ani jednego błędu. Wyglądała na zdrową.
Zajrzałem do niej nie z powodu awarii, tylko dlatego, że kończyło mi się miejsce na dysku. Przy okazji zobaczyłem, że kopia waży 945 GB przy limicie 1,15 TB. Dysk, który kopiowała, miał wtedy zajęte 537 GB.
Kopia była grubsza od tego, co kopiowała. To był pierwszy sygnał.
Co się właściwie stało
Sprawdziłem, co zajmuje miejsce w katalogu domowym:
113 GB modele Ollama
55 GB modele LM Studio
38 GB modele generatora obrazów
18 GB modele ComfyUI
19 GB symulatory iOS
Ponad 220 GB modeli językowych i graficznych. Plików, które pobiera się jednym poleceniem i które w kopii zapasowej nie mają żadnej wartości — po awarii ściągnąłbym je z internetu szybciej, niż odtworzyłbym z sieciowego dysku.
Potem sprawdziłem, co jest z kopii wykluczone. Odpowiedź: praktycznie tylko systemowy katalog cache. Wszystko inne szło do kopii każdego dnia.
Przyczyna
Projekty trzymam na osobnym dysku zewnętrznym. Sprawdziłem jego status:
[Excluded] /Volumes/<dysk_z_projektami>
Wykluczony. Nie przez pomyłkę — system domyślnie pomija dyski zewnętrzne, a ja tego nigdy nie zmieniłem.
Sprawdziłem, co to znaczy dla trzech aplikacji, nad którymi pracuję:
| Projekt | Zdalne repozytorium | Niezacommitowane |
|---|---|---|
| A | tak | 0 plików |
| B | brak | 13 plików |
| C | brak | 20 plików |
Projekty B i C istniały w jednej kopii, na jednym dysku. W projekcie C poza gitem był cały silnik aplikacji — modele, kontrolery, widoki, testy. Jedyny commit nazywał się „Initial Commit" i miał półtora miesiąca.
Nie zaprojektowałem tej kopii. Ona narosła. Włączyłem backup, wskazałem dysk sieciowy, kliknąłem „dalej" — a potem przez cztery miesiące instalowałem narzędzia, z których każde odkładało dziesiątki gigabajtów. Kopia posłusznie zabierała wszystko, bo nikt jej nie powiedział, żeby tego nie robiła.
Czego nie zrobiłem
Najprostszym wyjściem było podniesienie limitu. Miejsca na dysku sieciowym zostawało 2,4 TB, więc jedno pole w ustawieniach rozwiązywało problem „kopia się nie mieści" w piętnaście sekund.
Nie zrobiłem tego, bo to nie był ten problem. Kopia nie była za duża — była wypełniona niewłaściwymi danymi. Podniesienie limitu sprawiłoby, że objaw zniknie, a przyczyna zostanie: kod dalej byłby poza kopią, modele dalej w środku, a za pół roku ta sama rozmowa przy większych liczbach.
Naprawa
Najpierw kod, bo to było jedyne nieodwracalne ryzyko. Zacommitowałem wiszące zmiany, założyłem prywatne repozytoria dla B i C, wypchnąłem. Potem usunąłem dysk z projektami z wykluczeń — razem z nim do kopii weszło dwadzieścia jeden pozostałych projektów, które repozytoriów nie mają.
Potem wykluczenia. Siedemnaście ścieżek, około 286 GB: modele, cache menedżerów pakietów, symulatory, obrazy kontenerów, symbole debugowania.
Tu trafiłem na rzecz, której nie przewidziałem: wykluczenie nie działa wstecz. Mówi „od teraz tego nie kopiuj", nie „usuń to, co skopiowałeś". Modele siedziały w kopiach z maja, czerwca i lipca i miały tam zostać jeszcze miesiącami.
Skoro przez cztery miesiące ani razu nie sięgnąłem po starą wersję pliku, a kopia miała mnie chronić przed awarią sprzętu, nie przed własną pomyłką sprzed kwartału — odstawiłem starą historię na bok jako archiwum i zbudowałem kopię od zera.
Liczby
| Przed | Po | |
|---|---|---|
| Rozmiar kopii | 945 GB | 157 GB |
| Wykorzystanie limitu | 82% | 16% |
| Kod bez zabezpieczenia | 2 projekty | 0 |
Sześciokrotna redukcja przy tych samych danych. Pełna kopia od zera zajęła trzydzieści minut.
Potem otworzyłem gotową kopię i policzyłem w niej pliki źródłowe: 127, 44 i 44. Zgadzało się z dyskiem po odjęciu plików, które powstają przy kompilacji.
Co z tego wynika poza moim dyskiem
Kopia, która działa, i kopia, która chroni, to dwa różne pytania. Mój backup przez cztery miesiące nie zgłosił ani jednego błędu i przez cały ten czas nie zabezpieczał kodu. Zielony status odpowiada na pytanie „czy się wykonał", nie „czy jest w nim to, co trzeba".
Domyślne ustawienia mają swoje zdanie na temat Twoich danych. Dyski zewnętrzne są domyślnie poza kopią. To rozsądne założenie producenta — i błędne w każdej konfiguracji, w której na dysku zewnętrznym trzyma się pracę.
Backup, którego się nie zaprojektowało, projektuje się sam. Bez decyzji, co ma być w środku, w kopii ląduje wszystko, co zainstalowałeś w ostatnim kwartale. Piętnaście minut nad listą wykluczeń jest warte więcej niż każde kolejne zwiększenie limitu.
Liczby pochodzą z diagnozy i przebudowy przeprowadzonej 16 sierpnia 2026. Rozmiary kopii odczytane z konfiguracji systemu backupu przed zmianą i po pierwszej pełnej kopii na nowej konfiguracji.

Patryk Piecyk
Warszawa · junior konsultant wdrożeniowy · dostępny od zaraz
Przez 7,5 roku pracowałem w niemieckiej firmie, pięć lat prowadząc jej biuro: zamówienia, faktury, reklamacje, ERP. Od czerwca 2026 buduję własne narzędzia do tej samej roboty — nie jestem programistą z wykształcenia, kod powstaje w parze z asystentem AI, a projekt, decyzje i testy są moje. Te notatki opisują, co się w tych systemach zepsuło i co z tego wyszło.
Masz pytanie do tego tekstu?
Napisz do mnie →