Tim Parker W tym rozdziale: * Po co tworzyć kopie zapasowe * Inwentaryzowanie zapisanych danych * Używanie programu tar do tworzenia kopii zapasowych Trzy podstawowe zasady administratora systemu to: 1) należy wykonywać kopie zapasowe, 2) należy wykonywać kopie zapasowe i 3) należy wykonywać kopie zapasowe. Liczba osób, które utraciły wartościowe dane, nie wspominając o czasie, które spędziły na mozolnym odtwarzaniu plików konfiguracyjnych, jest ogromna. Nawet jeśli nie posiadasz napędu taśmowego czy innego odpowiednio pojemnego nośnika, powinieneś przyzwyczajać się do wykonywania kopii zapasowych swoich danych. Jak to robić dowiesz się w tym rozdziale. Jeżeli z Twojego systemu korzysta wielu użytkowników, jesteś podłączony do sieci, działa poczta itd., to chyba nie masz wątpliwości, że kopie zapasowe powinny być wykonywane nawet codziennie. Jeżeli jednak system służy głównie do zabawy, sprawa ta nie jest aż tak poważna w razie problemów tracisz "tylko" wszystkie pliki konfiguracyjne. Jednak kopie zapasowe należy wykonywać i w tym przypadku, co najwyżej z mniejszą częstotliwością. Po co tworzyć kopie zapasowe Kopia zapasowa może zawierać dane z całego systemu plików lub też jego fragmentu i używana jest po to, aby w razie potrzeby można było odzyskać potrzebne pliki. W większości systemów do przechowywania danych używa się napędów taśmowych, ale nadają się do tego również wyjmowalne dyski twarde czy nawet dyskietki. Źródeł zagrożeń w nowoczesnym systemie komputerowym jest bardzo wiele, od awarii dysku twardego, przez przerwy w zasilaniu do zwykłych pomyłek. Kopia zapasowa okazuje się wówczas wręcz wybawieniem. Choć często trudno jest zmusić się do jej utworzenia, zwykle czas stracony na to zwraca się z nawiązką w przypadku problemów. Można również uprościć sobie pracę używając programu cron. Jednym z zagrożeń w systemie Linux jest sama natura systemu: ponieważ jest to system wielozadaniowy i wielodostępny, równocześnie może być otwartych wiele plików. Przez cały czas odbywa się wymiana danych pomiędzy pamięcią i dyskiem twardym (nawet wtedy, gdy nie jest zalogowany żaden użytkownik i nie działa żaden program uruchomiony przez użytkownika). Wiele informacji o systemie plików jest również przechowywanych w pamięci. Choć są one często zapisywane na dysku, to jednak nie następuje to natychmiast, w efekcie czego przerwanie tego procesu może prowadzić do utraty zawartości plików systemowych. Pliki na dysku mogą pozostać w stanie przejściowym, nie odpowiadającym rzeczywistemu stanowi systemu plików. Choć uszkodzenie systemu plików może być spowodowane przez najróżniejsze czynniki z których nie wszystkie są zależne od administratora systemu
zadaniem administratora jest nie dopuścić do utraty ważnych danych niezależnie od okoliczności i w razie problemów odtworzyć cały system plików w możliwie krótkim czasie. Ważną kwestią jest również zdecydowanie, gdzie będą przechowywane nośniki zawierające kopie zapasowe systemu. Większość administratorów (głównie używających systemu linuxowego w domu) wykonuje kopie systemu na takich nośnikach, jak taśmy czy dyskietki, i przechowuje je w tym samym miejscu, w którym znajduje się system. Należy upewnić się, że nie występują tam silne pola magnetyczne (występujące w pobliżu różnych urządzeń, na przykład głośników, monitorów, modemów czy telewizorów), nie jest za ciepło itd. Warto jednak rozważyć przechowywanie nośników gdzieś zupełnie indziej takie rozwiązanie pozwala im przetrwać również poważniejsze (ale i o wiele rzadsze) katastrofy, takie jak na przykład pożar, który może zniszczyć zarówno system, jak i kopie danych. Nośniki Nośnikiem używanym najczęściej do tworzenia kopii zapasowych jest taśma. Jest ona popularna ze względu na stosunkowo niską cenę, niewygórowane wymagania co do warunków przechowywania i rozsądną prędkość transmisji danych. Proces zapisu i odczytu danych jest pewny, a taśmy są przenośne pomiędzy systemami. Niestety, aby używać taśm, trzeba posiadać napęd taśmowy. Jeśli nie dysponujesz napędem taśmowym, musisz rozważyć inne rozwiązania. Jedną z alternatyw są dyski wyjmowalne różnych typów, takie jak Iomega Bernoulli czy ZIP. Dyski z danymi, zwykle zapakowane w specjalne pojemniki, mogą być wyjmowane i przechowywane z dala od systemu. Niektóre z tych dysków, podobnie jak taśmy, pozwalają na zapis cykliczny. Inna możliwość to po prostu użycie dodatkowego dysku twardego ceny tych urządzeń stale spadają. Można więc do Twojego komputera (lub dowolnego innego komputera w sieci) podłączyć dysk przeznaczony wyłącznie do przechowywania kopii zapasowych i zapisywać na nim pełną kopię systemu. Nagrywarki dysków CD-ROM i WORM również dobrze nadają się do tworzenia kopii zapasowych. Dyskietki to ostatnia deska ratunku w większych systemach. Nie są jednak złym rozwiązaniem do przechowywania niewielkich plików. Choć pojawiło się kilka napędów o większej gęstości zapisu, brak sterowników dla systemu Linux nie zachęca do ich użycia. Harmonogram tworzenia kopii zapasowych Jednym z najważniejszych aspektów tworzenia kopii zapasowych jest regularność. Jest to szczególnie ważne w systemach, z których korzysta wielu użytkowników, i w których zawartość systemu plików zmienia się bardzo intensywnie. Jeśli tylko Ty używasz systemu, możesz tworzyć kopie wtedy, kiedy uznasz to za stosowne. Dla większości systemów wykorzystywanych przez kilku użytkowników, stale komunikujących się z Internetem i dokonujących rutynowych operacji w systemie plików, konieczne jest codzienne tworzenie kopii zapasowych. Niekoniecznie pełnych wystarczy, że zapiszesz tylko te pliki, które uległy zmianie od utworzenia ostatniej kopii (jest to tzw. system przyrostowy, ang. incremental backup). Większość administratorów wykonuje kopie zapasowe w nocy lub wcześnie rano, ponieważ wtedy system jest stosunkowo najmniej obciążony (zarówno w sensie obciążenia procesora, jak i liczby otwartych plików). Proces ten można zautomatyzować poleceniem cron lub at (patrz rozdział 46. "cron i at"), co zwalnia operatora od konieczności jego ręcznej obsługi i umożliwia wybranie najdogodniejszej z punktu widzenia systemu pory. Po wykonaniu operacji wystarczy tylko sprawdzić, czy wszystko poszło dobrze, zanotować dane o nowej kopii i wymienić nośnik. W systemach mało obciążonych i takich, z których korzysta jedna osoba, kopie można wykonywać w dowolnym momencie, ale nadal warto zautomatyzować ten proces, o ile system pracuje nieprzerwanie. Jeśli Twój komputer jest włączony tylko wtedy, gdy go używasz, powinieneś przyzwyczaić się do tworzenia kopii zapasowych w czasie, gdy robisz coś innego. Byli użytkownicy systemów DOS i Windows często podchodzą do problemu tworzenia kopii zapasowych w ten sposób, że każdorazowo zapisują nowe dane na tym samym nośniku. Praktyka ta nie ma większego sensu posiadanie jednej tylko kopii danych bardzo często okazuje się niewystarczające, nie pozwala bowiem wrócić do poprzednich wersji plików. Przypuśćmy, że usunąłeś przed tygodniem jakiś plik, zapisując go wcześniej dla bezpieczeństwa na taśmie. Teraz orientujesz się, że był to błąd, ale nie masz już żadnych szans odzyskania pliku, ponieważ na taśmie zapisane są wczorajsze dane (takie postępowanie zabezpiecza tylko przed awarią, a biorąc pod uwagę złośliwość rzeczy martwych, jeśli już zdarzy się awaria, to pewno okaże się, że taśma również uległa uszkodzeniu przyp. tłum.). W idealnym przypadku kopie powinny być przechowywane przez kilka dni - lub nawet tygodni - przed ponownym użyciem nośnika. Jest to szczególnie ważne w systemach wykorzystywanych przez wielu użytkowników, zdarza się bowiem, że ktoś przypomina sobie, że dwa miesiące temu usunął plik, bez którego nie może żyć
a Ty właśnie dwie minuty temu skończyłeś zapisywać na tej taśmie dzisiejszy stan systemu. Istnieją metody na zabezpieczenie się przed takimi przypadkami
omówimy je za chwilę. To, jaki system tworzenia kopii powinieneś zastosować, zależy od przeznaczenia systemu, ale generalnie powinna to być co najmniej jedna pełna kopia co tydzień, uzupełniona codziennymi kopiami przyrostowymi, przy czym kopie powinny być przechowywane na co najmniej dwa tygodnie wstecz. Wykonanie pełnej kopii systemu sprowadza się do utworzenia obrazu całej zawartości systemu plików i wymaga nośnika o pojemności odpowiadającej wielkości tego ostatniego. W celu zmniejszenia wymaganej objętości nośnika można użyć kompresji danych, jednak możliwość ta nie zawsze jest dostępna. Inną alternatywą jest użycie kilku jednostek nośnika (taśm). Ponieważ jednak program cron nie jest w stanie zmieniać ich automatycznie, przy tworzeniu kopii w takim systemie niezbędna jest obecność administratora. Nietrudno się domyślić, że wykonanie pełnej kopii zapasowej na wielu nośnikach o małej pojemności jednostkowej (na przykład na dyskietkach) jest procesem żmudnym i długotrwałym. Kopie przyrostowe (czasem również zwane różnicowymi, ang. differential backup) zawierają jedynie te pliki, które zmieniły się od momentu utworzenia poprzedniej kopii. Nie we wszystkich systemach pliki posiadają atrybut pozwalający to łatwo stwierdzić (atrybut taki nie występuje również w najpowszechniej używanym w Linuxie systemie plików ext2), ale wtedy z pomocą może przyjść data ostatniej modyfikacji pliku. Utworzenie kopii przyrostowej w Linuxie nie jest rzeczą łatwą, chyba że ograniczysz się do części systemu plików, w której dokonywanych jest najwięcej modyfikacji, na przykład /home. Takie rozwiązanie to tzw. kopia częściowa (ang. partial backup). Zauważ, że w dowolnym systemie można tworzyć kopie przyrostowe za pomocą procesu działającego cały czas w tle i rejestrującego wszystkie zmiany w systemie w pliku, a następnie zapisującego pliki, które się zmieniły. Opłacalność takiego rozwiązania jest jednak dyskusyjna. Jak często należy robić kopie zapasowe? Najprostsza reguła jest taka, że nie powinieneś dopuścić do utraty informacji. Dla wielu oznacza to kopiowanie codzienne. Załóżmy, że pracując nad dokumentem lub programem tracisz wszystkie dane wprowadzone od czasu zapisania ostatniej kopii zapasowej. Ile czasu zajmie Ci ich odtworzenie? Jeśli więcej, niż zajęłoby zrobienie kopii zapasowej, zrób kopię. W pozostałej części tego rozdziału przyjmiemy, że nośnikiem jest taśma magnetyczna, ale nasze rozważania odnoszą się również do innych mediów. Jaki jest zatem najwydajniejszy system tworzenia kopii zapasowych, zakładając, że konieczne jest ich regularne tworzenie? Dla średniej wielkości systemów (obsługujących kilku użytkowników nie generujących nadmiernego "ruchu" w systemie plików) warto zalecić codzienne tworzenie kopii, co wymaga od 10 do 14 taśm, zależnie od tego, czy kopie będą tworzone również w weekendy. Każdą taśmę należy opisać zgodnie z jej przeznaczeniem, np. "Dzień 1", "Dzień 2" itd. Taśm tych używaj cyklicznie, dzięki czemu będziesz mógł zawsze wrócić do stanu sprzed dwóch tygodni (przy założeniu, że kopie nie są tworzone w weekendy). Jeśli posiadasz więcej taśm, możesz wydłużyć cykl tworzenia kopii. Metoda taka jest używana w wielu dużych organizacjach, ponieważ charakteryzuje się dobrym wyważeniem pomiędzy kosztami, szybkością i bezpieczeństwem oraz możliwościami odzyskania danych. Zależnie od potrzeb można wykonywać kopie pełne lub częściowe. Dobrym rozwiązaniem jest tworzenie jednej pełnej kopii systemu po utworzeniu około pięciu kopii częściowych. Można na przykład robić pełne kopie systemu w poniedziałki, w pozostałe dni tygodnia ograniczając się do wykonywania kopii katalogu /home. Wyjątki powinieneś robić wówczas, gdy wprowadzasz jakieś zmiany do konfiguracji systemu wtedy należy zrobić jego pełną kopię. Warto również prowadzić dokładną dokumentację tworzonych kopii zapasowych ten temat omówimy za chwilę. Rozszerzeniem przedstawionego wyżej harmonogramu wykonywania kopii zapasowych może być dodanie oprócz cyklu dziennego również cyklu dwutygodniowego. Posiadane nośniki należy podzielić wówczas na dwie grupy. Jeśli na przykład posiadasz czternaście taśm, możesz używać dziesięciu z nich do codziennego tworzenia kopii zapasowych, dokładnie tak samo, jak w poprzednim przykładzie. Opisz je na przykład "Dzień 1" "Dzień 10". Pozostałe cztery taśmy zostaną wykorzystane do utworzenia cyklu dwutygodniowego można je opisać "Tydzień 1" "Tydzień 4". Używając tak zmodyfikowanego harmonogramu wykonywania kopii zapasowych, należy wykonywać codzienne kopie tak samo, jak w poprzednim przykładzie, ale po dojściu do końca cyklu codziennego (czyli po zapisaniu kopii na taśmę z etykietą "Dzień 10") należy wykonać kopię zapasową na kolejnym nośniku wchodzącym w skład cyklu dwutygodniowego. Pełny cykl powinien wtedy wyglądać tak: "Dzień 1" "Dzień 10" "Tydzień 1" "Dzień 1" "Dzień 10" "Tydzień 2" "Dzień 1" itd. Taki harmonogram ma dość znaczną przewagę nad omówionym wcześniej codziennym cyklicznym wykonywaniem kopii zapasowych. Po zakończeniu całego cyklu, posiadasz dziesięć wykonywanych codziennie kopii, pozwalających wrócić do stanu systemu sprzed dwóch tygodni. Posiadasz również taśmy, których używałeś co dwa tygodnie, dzięki którym masz również szansę na odzyskanie pliku usuniętego osiem tygodni wcześniej. Daje to możliwość odzyskania plików, których uszkodzenie czy usunięcie nie zostało wykryte od razu. Dołączając następne taśmy można wydłużyć cykl dwutygodniowy albo dodać cykl 40-dniowy. Inwentaryzowanie zapisanych danych Wielu administratorów zaczyna swoją karierę robiąc grzecznie kopie zapasowe, ale gdy przychodzi im odzyskać jakiś konkretny plik, nie mają pojęcia, gdzie go szukać. Niektórzy radzą sobie z tym w ten sposób, że naklejają na taśmy kartki, na których zapisana jest data wykonania kopii i jej zawartość. Oznacza to jednak, że szukając konkretnego pliku musisz przerzucić cały stos taśm, co może być dość męczące, szczególnie jeśli taśm jest dużo. Z tego powodu dobrze jest przechowywać gdzieś dokładny spis tego, co na której taśmie się znajduje (odnosi się to do wszystkich kopii zapasowych, zarówno wykonywanych w systemie Linux, jak i DOS czy Windows). Wykonanie każdej kopii zapasowej powinno wiązać się z uaktualnieniem takiego spisu. Nie musi on być szczególnie złożony ani długi. Wystarczy kilka kolumn danych w notesie czy też przechowywanych w postaci pliku tekstowego na dysku twardym (taki plik należy oczywiście regularnie drukować). Minimalny zestaw informacji, które musisz posiadać, to: * data utworzenia kopii; * nazwa taśmy, na której kopia się znajduje (na przykład "Dzień 1"); * nazwa systemu plików, który został skopiowany; * informacja o tym, czy kopia jest kopią pełną, przyrostową czy częściową, i ewentualnie nazwy katalogów, z których pochodziły archiwizowane dane. Zapisanie tych informacji trwa tylko kilka sekund, a może zaoszczędzić naprawdę sporo czasu. W większych systemach należy również zanotować: * kto wykonał kopię; * czy kopia była wykonana automatycznie, czy ręcznie; * miejsce, w którym przechowywana jest taśma. Dzięki zapisywaniu dat można z łatwością przywrócić określoną wersję pliku
jeśli na przykład użytkownik wie, że usunął plik tydzień temu, na podstawie daty możesz ustalić, na której z taśm znajduje się ostatnia wersja tego pliku. Zapisane informacje o kopiach zapasowych powinny być dla wygody przechowywane w pobliżu systemu, ale niektórzy administratorzy wolą, by znajdowały się one tam, gdzie przechowywane są nośniki. Czasem również na wypadek katastrofy
administratorzy przechowują kopię danych o taśmach gdzieś indziej. Używanie programu tar do tworzenia kopii zapasowych Do tworzenia kopii zapasowych zwykle używa się programu tar (ang. tape archiver). Potrafi on utworzyć pojedynczy, duży plik, zawierający dane z wszystkich archiwizowanych plików, wraz z danymi o ich położeniu, prawach dostępu itd. (podobnie jak robi to program PKZIP w systemie DOS). Potrafi obsłużyć tylko ten typ archiwów, który sam tworzy. Używanie tego polecenia jest dość uciążliwe ze względu na dużą liczbę opcji, ale na szczęście w codziennej pracy trzeba używać tylko kilku ich kombinacji. Ogólnie rzecz biorąc, składnia polecenia tar ma postać:
tar czynność opcje pliki Argument pliki określa nazwy plików lub katalogów, które należy zarchiwizować lub odtworzyć. Zwykle jest to cały podsystem plików (jak np. /home) lub też pojedynczy plik (np. /home/reksio/wazny_plik). Pole czynność określa działanie programu tar i może przyjmować jedną z następujących wartości: c utworzenie nowego archiwum, r dołączenie informacji do istniejącego archiwum, t wyświetlenie listy plików zapisanych w archiwum, u dodanie plików do archiwum, o ile nie są już zarchiwizowane, x przywracanie plików zapisanych w archiwum. opcje pozwalają kontrolować w pewnym zakresie sposób postępowania z archiwum. Dostępne wartości to: A zapobiega zapisywaniu bezwzględnych ścieżek dostępu do plików; b pozwala podać wielkość bloku (1 20); e zapobiega dzieleniu archiwów na kilka nośników; f pozwala podać nazwę pliku lub urządzenia, na którym zostanie zapisane archiwum; F pozwala podać nazwę pliku zawierającego inne opcje; k pozwala podać wielkość archiwum (w kilobajtach); l wyświetla komunikaty o błędach w razie znalezienia "wiszących" dowiązań (nie prowadzących do żadnych istniejących plików ani katalogów); m nie przywraca czasu modyfikacji; n oznacza, że archiwum nie zapisane jest na taśmie; p przywraca pliki wraz z informacjami o prawach dostępu; v wyświetla komunikaty o aktualnie przetwarzanych plikach; w wymaga potwierdzenia przed podjęciem akcji. Program tar w większości przypadków używa bezwzględnych ścieżek dostępu do plików (chyba że zostanie podana opcja A). Kilka przykładów pomoże Ci zrozumieć użycie tego programu i jego opcji. Jeśli używasz urządzenia /dev/tape i chcesz sporządzić pełną kopię zapasową systemu na nośniku o pojemności większej niż rozmiar systemu plików, możesz wydać polecenie:
tar cf /dev/tape / Utworzone zostanie nowe archiwum (opcja c) na nośniku w urządzeniu /dev/tape (opcja f). Dotychczasowa zawartość nośnika zostanie usunięta i to bez żadnego ostrzeżenia, więc upewnij się, że nie usuwasz przez przypadek jakichś ważnych danych. Jeśli dodatkowo podana zostanie opcja v, program tar będzie wyświetlał nazwę i rozmiar pliku, który jest aktualnie zapisywany. Jeśli chcesz przywrócić pliki zapisane za pomocą polecenia przedstawionego w poprzednim przykładzie, wydaj polecenie:
tar xf /dev/tape Spowoduje ono przywrócenie wszystkich zapisanych plików, ponieważ nie został wyszczególniony żaden specyficzny katalog ani plik. Jeśli chciałbyś odzyskać tylko pojedynczy plik, wydaj polecenie:
tar xf /def/tape /home/reksio/duzy_plik które spowoduje odtworzenie tylko jednego pliku, o nazwie /home/reksio/duzy_plik. Czasem potrzebna jest lista wszystkich plików zapisanych w danym archiwum. Możesz ją otrzymać wydając polecenie:
tar tvf /dev/tape Polecenie to wykorzystuje opcję v, powodującą wyświetlanie nazw przetwarzanych plików. Ponieważ otrzymana lista może być dość długa, wygodnie jest skierować ją do pliku. Teraz, kiedy zapoznałeś się już z podstawowymi możliwościami programu tar, pora na kilka bardziej praktycznych przykładów. Większość napędów taśmowych wymaga przy zapisie danych określenia wielkości bloku (przy odczycie parametr ten ustawiany jest automatycznie; oznacza on ilość danych, jaką można jednorazowo przesłać do urządzenia). Parametr ten określany jest za pomocą opcji b. Przykładowe polecenie:
tar cvfb /dev/tape 20 /home tworzy nowe archiwum zapisane na nośniku w urządzeniu /dev/tape, przy czym wielkość bloku zapisywanych danych wynosi 20. Jest to wartość prawidłowa dla większości napędów taśmowych, dlatego można przyjąć ją jako wartość domyślną, chyba że akurat Twój napęd wymaga podania innej wartości. W przypadku użycia dyskietek i dysków twardych również należy podać odpowiednią wartość. Zauważ, że argumenty występujące po opcjach muszą pojawić się w takiej samej kolejności, jak odpowiadające im opcje: ponieważ opcja f wystąpiła przed b, nazwa urządzenia musi wystąpić przed wielkością bloku. Często zdarza się, że nośnik nie może pomieścić całego systemu plików w takim przypadku do utworzenia kopii potrzebna będzie więcej niż jedna taśma. Aby poinformować program tar o pojemności kasety, należy użyć opcji k. Jej argumentem jest właśnie wielkość nośnika w kilobajtach. Polecenie
tar cvbfk 20 /dev/tape 122880 /usr mówi programowi tar, że powinien zapisać dane (w blokach o wielkości 20) na nośnik w urządzeniu /dev/tape, który może pomieścić 122880 kB danych. Po przekroczeniu tego rozmiaru zostaniesz poproszony o wymianę nośnika. Tu również można zauważyć, że porządek parametrów musi odpowiadać porządkowi opcji. Użycie dyskietek jako nośnika danych nieco komplikuje problem, ponieważ wymagana wielkość bloku danych jest zwykle inna. Tworzone archiwa przeważnie nie mieszczą się w całości na dyskietce, dlatego należy użyć opcji k i podać pojemność nośnika. Przykładowo, jeśli chcesz wykonać kopię zapasową zawartości katalogu /home/reksio na dyskietkach o pojemności 1.2 MB, powinieneś wydać polecenie:
tar cnfk /def/fd0 1200 /home/reksio Podczas tworzenia archiwów na dyskietkach warto podać opcję n, która informuje program tar, że nie współpracuje aktualnie z napędem taśmowym przyspiesza to nieco jego działanie. Podsumowanie W tym rozdziale przedstawiliśmy tylko najbardziej podstawowe zagadnienia dotyczące tworzenia kopii zapasowych. Jeśli chcesz, aby wyniki Twojej pracy były bezpieczne, musisz wykonywać kopie regularnie i notować, co znalazło się na której taśmie. Choć program tar jest na początku nieco nieprzyjemny w użyciu, dość łatwo nauczyć się jego obsługi (można również napisać kilka skryptów pozwalających na wykonanie najczęstszych czynności przyp. tłum.). Obecnie powstaje wiele skryptów i programów obsługiwanych za pomocą menu, ułatwiających dość znacząco tworzenie kopii zapasowych. Nie są one dołączane do dystrybucji Linuxa, ale są dostępne w każdym z węzłów FTP czy BBS oferujących oprogramowanie dla tego systemu. Automatyzowanie tworzenia kopii zapasowych i innych codziennych zadań omówione jest w rozdziale 46. "cron i at". W rozdziale 47. "Konfigurowanie węzła internetowego" omawiamy podstawowe problemy związane z konfiguracją sieci i oprogramowania tak, byś mógł stać się pełnoprawnym członkiem Internetu. O aplikacjach, których można używać w systemie Linux, przeczytać możesz w rozdziałach od 62. "Adabas-D i inne bazy danych" do 64., "Program Lone Tar".