Skocz do zawartości

Bash: Skrypt Do Backupu, Problem


morsik

Rekomendowane odpowiedzi

Chce mieć jedno archiwum, prostym kosztem jednego pliku. Zautomatyzowane ;)
??? Dalej nie rozumiem.
#!/bin/bash

INFILE=/home/waldo/tar.in.file
OUTFILE=/home/waldo/backup.`date +%Y%m%d`.tar.gz

cat /dev/null > ${INFILE} # czyszczenie pliku z nazwami plików do backupu
find /etc -maxdepth 1 -type f -name "*" >> ${INFILE}              # tylko zwykłe pliki, bez podkatalogow z /etc
find /etc/yum.repos.d -type f -name "*" >> ${INFILE}              # do tego pliki zwykłe z /etc/yum.repo.d
find /var/log  -maxdepth 1 -type f -name "messages*" >> ${INFILE} # do tego pliki z maską messages* z katalogu /var/log
# itd itd itd mozna sobie dopisać co tam się jeszcze podoba;)

tar -T ${INFILE} -cjvf ${OUTFILE}
rm ${INFILE}

Wydaje mi się, że to jest jeden plik/skrypt odwołujący się do tylko jednego pliku wejściowego i generujący tylko jeden plik wyjściowy. Zawartość pliku wejściowego można dowolnie określić (kwestia zapoznania sie np. z find, zapewno inny sposób też się znajdzie), jest zawsze aktualna, bo na bieżąco tworzona.

Jeśli to nie jest to o co ci chodzi, to ja się poddaje :blink:

 

Odnośnik do komentarza
Udostępnij na innych stronach

@WalDo: chodzi mi o to co napisałeś w skrypcie właśnie, ale to musi być uniwersalne, a nie wdubowane w skrypt.

 

@Adi1981: Tak można i robić, ale wtedy mogę zrobić backup których nie potrzebuję tak bardzo przez co wielkość tarballa się powiekszy, a Twoim sposobem nie da się zrobić maski, czyli gdzieś dać gwiazdkę (np. /mnt/Dane/*.iso)

 

Wiem, wiem. Jest to zagmatwane, no ale nie wiem jak to dokładniej wytłumaczyć ;)

Odnośnik do komentarza
Udostępnij na innych stronach

(...)ale to musi być uniwersalne, a nie wdubowane w skrypt.
Wybór listy plików dla uproszczenia i przejrzystości możesz wydzielić do innego pliku i traktować go tak samo jak plik ze zbiorem ścieżek/masek. Możesz również w takim pliku umieścić właśnie ścieżki wraz z maskami i odczytując kolejne linie tego pliku podawać je jako parametr do polecenia find w skrypcie, bo find sprawuje się chyba całkiem nieźle również w postaci np.
find /var/log/m* -type f
find /var/log/m* -maxdepth 0 -type f

Pierwsza linijka to wyszukanie zwykłych plików z maską m* w /var/log i podkatalogach.

Druga linijka to wyszukanie tylko zwykłych plików o masce m* w /var/log bez schodzenia do podkatalogów.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jednak dalej to jest problemem, ponieważ zależy mi wpisać poprostu:
/etc/*

a mieć wynik ze wszystkimi podkatalogami, a Twój przykład nie daje tej możliwości :|

 

Nie to żebym sie upierał przy mojej wersji ale nie ma znaczeń czy wpiszesz /etc czy też /etc/* tak sobie sprawdziłem na prostych przykładach

 

Pozdr

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...