Opcja przyrostowa tar nie dodaje nowych plików

1

tarWydaje się, że w przyrostowej kopii zapasowej nie można dodawać nowych plików:

$ tar -cvzf test.tar.gz -g test.snar a.txt
a.txt
$ tar -cvzf test2.tar.gz -g test.snar a.txt b.txt

Drugie polecenie nic nie zwraca, a archiwum jest puste. Ale to działa, jeśli podam katalog zamiast plików. Coś tu brakuje?

alex_reader
źródło

Odpowiedzi:

1

Plik migawki zawiera a.txtpierwsze polecenie tar. Na drugiej tarie migawka nie wie o tym b.txt. a.txtnie zmieniło się, więc archiwum przyrostowe jest puste.

Jeśli archiwum przyrostowe znajduje się na poziomie katalogu, wykryje zmianę (b.txt), ponieważ b.txt istnieje w obrębie heirarchii katalogu.

Jeśli plik migawka istnieje, to określa, które pliki są modyfikowane.

Zobacz GNU Tar przyrostowe kopie zapasowe

Opcja „--listed-incremental” instruuje tar, aby działał na inkrementalnym archiwum z dodatkowymi metadanymi przechowywanymi w samodzielnym pliku, zwanym plikiem migawki. Celem tego pliku jest pomoc w określeniu, które pliki zostały zmienione, dodane lub usunięte od ostatniej kopii zapasowej, tak aby następna przyrostowa kopia zapasowa zawierała tylko zmodyfikowane pliki. Nazwa pliku migawki jest podana jako argument opcji:

podejrzenie
źródło
Więc tardziała dobrze tylko w katalogach do tworzenia przyrostowych kopii zapasowych?
alex_reader
Sposób w jaki go używasz - tak. Alternatywnie możesz usunąć plik migawki, jeśli chcesz dodać dodatkowe pliki.
podejrzany
1

Czy zastanawiałeś się nad użyciem tarowania „–listed-incremental”? Pozwoli ci to na stopniowe dodawanie określonych folderów i zapewni, że kompresujesz tylko zmienione pliki od czasu ich ostatniego dodania do tar z opcją --list-incremental.

Bardziej ogólną opcją jest po prostu dodanie nowych plików za pomocą opcji -a lub opcji append, która umieszcza plik na końcu archiwum.

Jeśli jest to sytuacja tworzenia kopii zapasowej, sugeruję, abyś spojrzał na rsync jako opcję bardziej bogatą w funkcje, ale znowu wszystko zależy od tego, co próbujesz zrobić z procedurą tworzenia kopii zapasowej.

eoinbrazil
źródło
W mojej wersji -gjest synonimem --listed-incremental. Moje pytanie dotyczyło raczej tego, dlaczego działa w przypadku katalogów, a nie listy plików.
alex_reader