BRU jest programem do archiwizowania zbiorów z twardego dysku na dyskietkach oraz do "odzyskania" tak zarchiwizowanych zbiorów. Działa podobnie jak inne programy archiwizujące.
BRU (Backup Restore Utility - program do archiwizacji i dearchiwizacji)
Składnia dla systemów 2.0, 2.1, 3.0 : BRU >C | D | E | G | H | I | T | X< [cnt] [sel] [lista]
Gdzie : C, D, E, H, I, T i X - to opcje rozkazu opisane poniżej (uwaga - każdy symbol opcji MUSI być poprzedzony minusem, na przykład: -e), cnt - są to opcje kontrolne, sel - opcje wyboru zbiorów, lista - zaś to nazwa (lub nazwy) zbiorów, których dotyczy rozkaz. Polecenie nie występuje dla systemów 1.2, 1.3 oraz dla systemu 3.1
Dane podczas archiwizacji są kompresowane i zapisywane na dyskietce. Dyskietki, na których będziemy zapisywali zbiory archiwalne, nie muszą być sformatowane. Opcjami rozkazu są :
- c - powoduje utworzenie zbioru archiwalnego ze zbiorów znajdujących się na liście;
- d - jeśli na liście znajduje się zbiór o nazwie takiej samej, jaką ma zbiór zarchiwizowany wcześniej (do tego samego zbioru archiwalnego), parametr "d" sprawdza różnicę pomiędzy tymi zbiorami;
- e - określa (szacunkowo) liczbę dyskietek potrzebnych do utworzenia zbioru archiwalnego ze zbiorów na liście;
- g - podaje informacje z nagłówka zbioru archiwalnego;
- h - wyświetla "ściągę" dotyczącą BRU;
- i - sprawdza sumę kontrolną zbioru archiwalnego (a zatem bada, czy archiwizacja przebiegła poprawnie);
- t - wypisuje zawartość zbioru archiwalnego;
- x - pozwala na "odzyskanie" zbioru lub zbiorów, których nazwy znajdują się na liście ze zbioru archiwalnego.
Opcje kontrolne (podobnie jak opcje rozkazu) muszą być poprzedzone znakiem minus :
- # tekst - pozwala kontrolować debugging za pomocą łańcucha kontrolnego "tekst";
- a - wyłącza resetowanie czasu dostępu do zbioru po odczytaniu tego zbioru (opcja ustawiona jest w systemie 3.0 jako domyślna, w systemie 2.1 natomiast należy ją wpisać "z ręki").
- A flaga - ustawia znaczniki (flagi). Jako Parametr "flaga" mogą wystąpić następujące znaczniki :
- c - zamazuje bit archiwizacji zbioru po zakończeniu działania rozkazu;
- f - przekazuje sygnały do portu ipc;
- i - ignoruje bit archiwacji przy wybieraniu zbiorów;
- r - odrzuca z listy zbiory, które mają ustawiony bit archiwizacji;
- s - ustawia archiwizowanym zbiorom bit archiwizacji;
- b xxxx - definiuje bufor archiwizacji o wielkości xxxx bajtów;
- B - rozkaz działa w tle bez możliwości kontroli przez użytkownika;
- C - włącza przekazywanie danych o zbiorach archiwalnych poprzez graficzny interfejs użytkownika;
- D - jeśli Twój system jest "wyposażony" w tzw. double buffering, wówczas możesz za pomocą tego parametru przyśpieszyć proces archiwizacji;
- f nazwa - parametr "nazwa" określa nazwę zbioru archiwalnego;
- F - włącza szybki tryb archiwizacji (jednak w takim wypadku nie jest sprawdzana suma kontrolna dla zbioru archiwizowanego);
- I nazwa - włącza opcje pozwalające na interwencję użytkownika. Parametr "nazwa" może być następujący :
- i, >ścieżka< - zapisuje komentarz na ścieżce;
- q, >PIPE< - zapisuje czynności użytkownika do urządzenia PIPE;
- r, >PIPE< - odczytuje czynności użytkownika zapisane w urządzeniu PIPE;
- I - wyłącza komunikaty o błędach;
- L text - nadaje zbiorowi archiwalnemu etykietę podaną tekstem; etykieta razem ze spacjami może liczyć maksimum 63 znaki;
- m - pozwala na archiwizację wyłącznie katalogów znajdujących się na zamontowanych urządzeniach;
- N xxxx - tworzy bufor o wielkości xxxx bajtów. Bufor ten jest używany po to, aby zadziałał algorytm kompresji o nazwie LZW (algorytm ten włączamy opcją kontrolną Z;
- p - przy dopisywaniu do zbioru archiwalnego jest on po użyciu tego parametru za każdym razem wczytywany, a nie przeszukiwany;
- P nazwa - pozwala na korzystanie z opcji obsługi ścieżki. Parametr "nazwa" może być następujący :
- e - wyłącza wczytywanie podkatalogów;
- E - włącza wczytywanie podkatalogów;
- f - wyłącza tworzenie "drzewa katalogów";
- F - włącza tworzenie "drzewa katalogów";
- p - wyłącza automatyczną archiwizację powiązań katalogów (parent);
- f nazwa - włącza automatyczną archiwizację powiązań katalogów (parent);
- R - usuwa z listy archiwizacji zbiory znajdujące się na urządzeniach zamontowanych jako "obce" (odnosi się to tylko do urządzeń typu NFS i RFS)
- s xxxx - definiuje wielkość dyskietki (w bajtach), na jakiej będziemy archiwizować (na razie mogą z tego korzystać tylko użytkownicy Amig ze stacjami dyskietek 1,76 MB);
- S xxxx - tworzy bufor o wielkości xxxx bajtów, który będzie służył do archiwizacji zbiorów "rozsypanych" (na przykład pojedynczych zbiorów z różnych podkatalogów) i włącza procedurę pozwalającą na optymalizację procesu zbierania takich "rozsypanych" danych do archiwizacji;
- v - włącza tryb verbose (informujący użytkownika o wykonywanych czynnościach);
- vv - włącza rozszerzony tryb verbose z ograniczeniem zakresu;
- vvv - włącza rozszerzony tryb verbose w pełnym zakresie;
- w - wyświetla opis działania, które ma być wykonane jako następne, i czeka na potwierdzenie przez użytkownika;
- Z - włącza algorytm kompresji LZW (jest to odmiana kompresji Lha);
UWAGA: Wszystkie wielkości podajemy w bajtach. Jeśli chcemy użyć innych jednostek, należy odpowiednio dodać literki M (dla megabajtów), K (dla kilobajtów) lub B (jeśli chcemy, aby jednostką były bloki pamięci, czyli 512 bajtów).
Opcje wyboru zbiorów (także muszą być poprzedzone znakiem minus) :
- n data - do archiwizacji wybrane są zbiory z listy o dacie wcześniejszej niż podana;
- o nazwa - do archiwizacji wybrane są z listy zbiory określone identyfikatorem (parametr "nazwa"); może to być symbol lub identyfikator cyfrowy użytkownika, albo nazwa zbioru, do którego ma dostęp tylko dany użytkownik (ten parametr jest ukłonem w stronę operatorów BBS-ów);
- u nazwa - do archiwizacji zostają wybrane z listy zbiory określone przez parametr "nazwa", bez względu na to, jakie parametry zostały ustawione wcześniej; przy tej opcji można użyć jednego lub więcej parametrów jednocześnie; parametr "nazwa" może być następujący :
- a - wszystkie zbiory (zastępuje podanie wszystkich pozostałych parametrów jednocześnie),
- b - zbiory określone przez wielkość (w blokach pamięci),
- c - zbiory określone wzorcem nazwy (to znaczy, w których nazwie występują określone znaki)
- d - wszystkie zbiory z katalogu o nazwie znajdującej się na liście,
- f (lub r) - tylko zbiory nie zawierające błędów,
- l - zbiory "połączone" ze zbiorami z listy (na przykład: jeśli na liście znajduje się program do rysowania, to zostanie zarchiwizowany zarówno on, jak i wszystkie wykonane nim rysunki, znajdujące się w archiwizowanym katalogu),
- p - zbiory wykorzystujące urządzenie PIPE.
Rozkaz BRU ma domyślnie ustawione następujące wartości : dysk, na którym archiwizujemy - DF0: ,wielkość dyskietki 880 KB, kompresja 12-Bitowa. BRU otwiera własne okno konsoli o parametrach : CON:10/15/620/80 i o nazwie "BRU Interaction Window".
BRU pozwala na archiwizację także na urządzeniu o nazwie "tape" (streamer) oraz na innych stacjach dyskietek niż DF0: Aby uaktywnić te urządzenia, należy skorzystać ze zbioru BRU.tab, znajdującego się w katalogu S: Sposób, w jaki się to robi, zostanie opisany przy okazji omawiania sekwencji startowej. W tej chwili powiem tylko nieco o parametrach, jakie występują w BRU.tab :
- size - wielkość dyskietki, na której zapisujemy zbiór archiwalny (dla urządzenia "fikcyjnego", jakim jest TAPE: - mamy tutaj 0),
- seek - wielkość modułu przeszukiwania (dla dyskietki jest to jeden blok pamięci),
- bufsize - wielkość bufora przy kompresji LZH,
- noreopen - uniemożliwia ponowne otwarcie zbioru o tej samej nazwie na tej samej dyskietce,
- norewind - uniemożliwia programowe przewijanie taśmy,
- drugi wiersz - określa wielkości kodów zwrotnych, generowanych podczas wystąpienia błędów (prerr - błąd odczytu, pwerr - błąd zapisu, zrerr - błąd kompresji przy odczycie, zwerr - błąd kompresji przy zapisie, frerr - błąd przy odczycie zbioru archiwalnego, fwerr - błąd przy zapisie zbioru archiwalnego, wperr - błąd polegający na tym, że dyskietka jest zabezpieczona przed zapisem),
- ostatnia linijka - określa nazwę sterownika danego urządzenia, na którym archiwizujemy, i numer jednostki (unit).
Teraz nieco przykładów :
UWAGA : Każdorazowo, przed użyciem BRU należy użyć rozkazu STACK, zwiększającego pamięć stosu (im więcej, tym lepiej - zalecana wielkość to co najmniej 30000 bajtów). W przeciwnym razie wystąpi błąd przepełnienia stosu ("stack overflow").
stack 50000 CD DH0: BRU -e -A r -n 23-Feb-94, 03:36:00
Do archiwizacji zostaną wybrane zbiory z katalogu głównego na dysku df0: które nie mają ustawionego bitu archiwizacji i które zostały zapisane na dysku do dnia 23 lutego 1994r. do godziny 3:35 rano (taka jest właśnie pora, gdy piszę te słowa). Jednocześnie komputer napisze nam, ile dyskietek na to potrzebujemy. Na marginesie: szacunek ten to zdecydowanie najsłabsza strona BRU. Nie dość, że podczas archiwizacji okazuje się, że potrzebujemy innej liczby dyskietek, to na dodatek błąd w procedurze powoduje nieciekawe "przygody". Załóżmy, że do archiwizacji wybraliśmy zbiory, które przy domyślnej kompresji 12-bajtowej zajmą 3,5 dyskietki. BRU będzie się od nas domagał pięciu dyskietek! Dlaczego nie czterech? Na skutek wspomnianego błędu w procedurze konieczne do "odzyskiwania" informacje zapisywane są ZAWSZE na nowym dysku. A to, że zbiór taki zajmujący od 3 do 10 KB zmniejsza nasz stan posiadania o całą dyskietkę, Szanownych Autorów rozkazu już nie obchodzi. Nie możemy natomiast sformatować tej "niepotrzebnej" dyskietki, gdyż wówczas nie odzyskamy zbioru archiwalnego.
stack 50000 BRU -c -f rysunki -u d dh1:pictures
W zbiorze archiwalnym o nazwie "rysunki" zostaną zapisane wszystkie zbiory z katalogu pictures znajdującego się na twardym dysku dh1:
stack 50000 CD DH2: BRU -x -u a DF0:Kopia
Na dysku DH2 zostaną zapisane (w postaci DOS-owskiej) wszystkie zbiory zarchiwizowane wcześniej w zbiorze archiwalnym o nazwie kopia. Podczas "odzysku" należy kierować się wskazówkami, jakie są wyświetlane na ekranie komputera.
Kolejny przykład: Wspomnianą wcześniej ściągę (opis BRU w języku angielskim) możemy sobie zapisać na dysku, na przykład w taki sposób :
stack 50000 BRU >RAM:Help -h COPY RAM:Help DF0:Sciaga
Rozkaz BRU znajduje się w katalogu Tools, natomiast w katalogu S: znajduje się program pomocniczy o nazwie BRUTab. Ponieważ, mimo że autorem BRU jest sam Fred Fish, rozkaz ten jest beznadziejny. Najlepszym dowodem jest to, że firma Commodore zrezygnowała z umieszczenia BRU w systemie 3.1 Zdecydowanie bardziej polecam do archiwizacji twardych dysków programy public domain czy shareware typu ABackup. I jeszcze jedno. Bez względu na to, czym będziesz archiwizował dyskietki, dobrze jest napisać na każdej z nich kolejny numer archiwalny (nie każdy bowiem archiwizer, na przykład BRU, numeruje te dyski i potem mogą być problemy ze znalezieniem właściwego dysku przy "odzyskiwaniu").
Marek Pampuch
Magazyn Amiga, Lipiec 1994r