Jak kopiować/archiwizować z wykluczeniem?

Witam.

Potrzebuję robić codzienne kopie całego serwera jednej z gier. Bez problemów zrobiłem skrypt, automatycznie wyłączający serwer, kopiujący folder z serwerem, i zapisanie go jako tar.gz z nazwą data-godzina, a po wszystkim uruchomienie serwera, no i oczywiście wszystko zautomatyzowane w cronie.

Jednak mapa gry się rozwija (Minecraft, wiadomo) i kopie robią się coraz większe i coraz dłużej. Rozmiar znacząco powiększa jeden folder - plugin mapy. I tu jest problem, bo nie chcę go kopiować.

Aktualnie kopiuję folder z całym serwerem. Powiedzmy, że jest w lokalizacji /a/b/minecraft/*. Ja natomiast potrzebuję wykluczyć folder /a/b/minecraft/plugins/pluginxyz/*. “Ręczne” sposoby kopiowania (w sensie każdy katalog/plik po kolei (lub ileś o tej samej nazwie)) raczej nie wchodzą w grę, bo zawartość innych katalogów może się znacząco różnić.

Do sedna.

Istnieje coś takiego, jak wykluczenie przy komendzie tar lub przy kopiowaniu? Jakiekolwiek rozwiązanie?

Szukałem w sieci, ale nie natknąłem się na nic, co mogłoby mi pomóc.

System to Debian 6, VPS,

Pierwsze rozwiązanie, które wpadło mi do głowy na szybkiego, to wylistowanie wszystkich plików (pod)katalogów, wykluczenie tych pasujących do Twojego wzorca, a reszta idzie do archiwum.

A tak jeszcze chociaż ± jak to zrobić? Bo nie mam pojęcia, jak się za to zabrać :expressionless:

Oczywiście, że istnieje, słabo szukałeś :wink:

tar -cvjf archiwum.tar.bz2 /a/b/minecraft/ --exclude=pluginxyz

w tym przypadku pluginxyz to wzorzec, wszelkie pliki i katalogi odpowiadające temu wzorcowi będą wykluczane. Katalogów nie musisz kopiować, możesz je od razu archwizować i pakować jednocześnie.

Pozdrawiam!

Dzięki za nakierowanie!

Powyższe polecenie nie działa, jednak po poszukaniu informacji o exclude z tar-a zadziałało takie coś:

tar -cvjf nazwa.tar.bz2 /a/b/minecraft/ --exclude /a/b/minecraft/plugins/pluginxyz

(bez znaku równości nie musi być wzorca, który w moim przypadku nie chciał działać i go nie potrzebuję, po prostu wystarczy mi ominięcie jednego katalogu)

Temat można zamknąć ^^

Prędzej by zadziałało

tar -cvjf archiwum.tar.bz2 /a/b/minecraft/ --exclude="*/pluginxyz/*"

Dziwne, u mnie działa :slight_smile: Jeśli wystarczy jeden katalog, to tak, w przypadku wielu plików o tej samej nazwie w wielu katalogach, lepiej sprawdza się wzorzec.

Pozdrawiam!