Amiga DOS cz.7

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