[+] tworzenie archiwum w okre

Ogólne pytania dotyczące systemu
snuff
Posty: 10
Rejestracja: 13 czerwca 2009, 14:52

[+] tworzenie archiwum w określonej lokalizacji - tar, find

Post autor: snuff »

Witam.
Niezbyt wiem jak za to się zabrać ale zmontowałem coś takiego:

Kod: Zaznacz cały

#!/bin/sh
tar cvf test_$(date +%F).tar $(find -name 'screenlog.0')
Znajduje i pakuje mi archiwum z datą ale...

Pakuje wszystko do 1 pliku i do głównego katalogu, w którym znajduję się plik z wyżej wymienioną komendą.
A chciał bym żeby znalazło plik o nazwie ,,screenlog.0'' i stworzyło archiwum w folderze, w którym go znalazło i przeszło do następnego znalezionego pliku o nazwie ,,screenlog.0'' i zapisało go w folderze, w którym go znalazł i tak w kółko.
beel
Beginner
Posty: 340
Rejestracja: 28 marca 2007, 07:06

Post autor: beel »

Jeśli znajdziesz lokalizację pliku, możesz zapisać ją do zmiennej, przykładowo:

Kod: Zaznacz cały

CO=/home/user/inne/poszukiwany.O
W innej zapisać ścieżkę o poziom mniej (utnij w łańcuchu od końca wszystko do pierwszego wystąpienia znaku /):

Kod: Zaznacz cały

GDZIE=/home/user/inne/
I w komendzie to wykorzystać jako gdzie pakuj i co pakuj:

Kod: Zaznacz cały

tar cvf GDZIE/test_$(date +%F).tar CO
To tylko pseudokod dla pojedynczego przypadku. Może coś pomoże.
snuff
Posty: 10
Rejestracja: 13 czerwca 2009, 14:52

Post autor: snuff »

Tylko jest jeden problem.
Nie bez powodu użyłem opcji find gdyż ścieżki do katalogów są takie:

Przykład:
/home/1001/screenlog.0
/home/1002/screenlog.0
/home/1003/screenlog.0
itp

i chciałbym żeby screenlog.0 było zapisane np w /home/1001/test_12_16_2009.tar
beel
Beginner
Posty: 340
Rejestracja: 28 marca 2007, 07:06

Post autor: beel »

Ja ci wcale nie zabroniłem używania polecenie find, Wynik jak zwróci możesz zapisać do zmiennej. Również napisałem, że to co podaję jest dla jednego wystąpienia pliku. Więc pewnie wchodziłyby w grę dla większej ilości jakieś pętelki.
snuff
Posty: 10
Rejestracja: 13 czerwca 2009, 14:52

Post autor: snuff »

Tylko, że napisałeś abym użył ścieżki względnej, czyli miałbym zrobić dla każdego pliku osobny skrypt z podaną do niego lokalizacją.
I nie napisałem, że ,,zabroniłeś'' mi używania find.
beel
Beginner
Posty: 340
Rejestracja: 28 marca 2007, 07:06

Post autor: beel »

snuff pisze:Tylko że napisałeś żebym użył ścieżki względnej czyli miał bym zrobić dla każdego pliku osobny skrypt z podaną do niego lokalizacją.
Absolutnie.

Chodzi o to, że ułatwieniem byłoby posiadanie listy ścieżek wystąpień takiego pliku. Jak to zrealizujesz to twój wybór. Tak przy okazji, chyba macie podobny problem http://debian.linux.pl/viewtopic.php?p=113541#113541
snuff
Posty: 10
Rejestracja: 13 czerwca 2009, 14:52

Post autor: snuff »

Ale Ty mnie nie rozumiesz albo ja Ciebie.

Chodzi mi o to by "skrypt" znajdował pliki i pakował je w folderze które je znalazł a nie w folderze w którym jest wykonywany "skrypt".
winnetou

Post autor: winnetou »

Dziękuje...
snuff
Posty: 10
Rejestracja: 13 czerwca 2009, 14:52

Post autor: snuff »

Wielkie dzięki
Skrypt działa poprawnie.
Dodałem jeszcze usuwanie spakowanych plików.
ODPOWIEDZ