

   Dokumentation zu Version 1.1
   ============================


   SDBackup           Version 1.1
   Von Steve Drew   September '87


Alle Bemerkungen bitte an:

       ENET:    CGFSV1::DREW
       ARPA:    drew%cfgsv1.dec.com@decwrl.dec.com
       USENET:  {decvax!decwrl}!cgfsv1.dec.com!drew

Alle Spenden bitte an:

       Steve Drew
       52 Castledale Cres. N.E.
       Calgary, Alberta
       Canada
       T3J 1X4


--------------------------------------------------------------------------


   Inhalt:
   =======

I.   Aufgaben
II.  Befehlsformat
III. Was für den Programmablauf notwendig ist
IV.  Fehlerbehandlung
V.   Grenzen
VI.  Beispiele
VII. Zukünftige Verbesserungen


--------------------------------------------------------------------------


I.   Aufgaben:
--------------

Dieses Programm deint dazu, von einem bestimmten Gerät (Festplatte) eine
Sicherungskopie auf Disketten anzufertigen und diese auch wieder rückzu-
sichern. Dabei wird die Lempel-Ziv-Methode zum Datenkomprimieren benutzt,
um Disketten zu sparen. Die Routine wurde durch den Gebrauch von 16-Bit-
Integer-Zahlen in Aztec C beschleunigt.


--------------------------------------------------------------------------


II.  Befehlsformat
------------------

Es gibt drei Betriebsarten für SDBackup: Sichern, Rückspeichern und Daten-
Pflege.


SICHERN:
--------
       SDBackup [Argumente] Quelle Name_n:[Pfad]

"Quelle" bezeichnet eine Datei oder das Gerät, von dem eine Sicherung
vorgenommen werden soll. Dabei handelt es sich entweder um ein Gerät
(z.B. DH0:), ein Verzeichnis (z.B. DH0:Tools) oder eine Datei (z.B.
DH0:Tools/Shell).

Bei Name_n: handelt es sich um den Namen der ersten Diskette, auf die
gesichert werden soll. Ein gültiger Name wäre z.B. Sicherung_1:.
In diesem Falle solltest Du genügend formatierte Disketten mit fortlaufenden
namen von Sicherung_1: bis Sicherung_n: bereithalten. "n" ist bei einer
(vollen) 20MB-Platte ungefähr gleich 15; eine Komprimierung von 35%
vorausgesetzt.

** Hast Du nicht genug Disketten formatiert und klickst bei der Mount-
Abfrage "CANCEL", dann erhältst Du die Möglichkeit, eine Diskette auto-
matisch als nächste Diskette formatieren zu lassen und fortzufahren.

Argumente (zu Backup)
---------------------

      -q
         "Quiet"-Betrieb; die Namen der Dateien werden bei Sicherung
         nicht automatisch an das Standard-Ausgabegerät weitergegeben.

      -l
         Eine Liste aller gesicherten Dateien wird in RAM:Backup.log
         erzeugt. Damit kann man später feststellen, auf welcher Diskette
         eine bestimmte Datei gesichert wurde, indem man aufruft:
            search backup.log Dateiname

      -i
         Ohne Komprimieren. Die Dateien werden 1:1 kopiert.

      -s TT-MMM-JJ[:SS:MM] | LAST

         Das Sichern wird entweder mittels des Datums oder des Schlüssel-
         wortes "LAST" gesteuert. LAST verursacht, daß alle noch nicht
         gesicherten Dateien abgespeichert werden. Dabei macht das
         Programm Gebrauch von dem ab DOS 1.2 vorgesehenen "Archive bit".
         Beide Methoden ermöglichen effektives Bestimmen der zu sichernden
         Dateien.
         Wurde also z.B. die Festplatte letzte Woche komplett gesichert,
         mußt Du nur das Datum der letzten Sicherung oder das Schlüssel-
         wort LAST angeben, und es werden nur die seitdem geänderten Dateien
         gesichert. Diese Dateien sollten auf separate Disketten abge-
         speichert werden (versuche bloß nicht, auf bereits volle
         Sicherheitskopien abzuspeichern, sondern benutze lieber eine
         neue Diskettenserie). Umfaßt die komplette Sicherung die Disketten-
         serie Kopie_1 bis Kopie_13, dann fängst Du am besten mit Kopie_14
         wieder an. Mußt Du dann irgendwann einmal die Dateien zurück-
         kopieren, dann kopierst Du zuerst die Disketten Kopie_1 bis
         Kopie_13 und anschließend die Disketten ab Kopie_14 (Nach Kopie_14
         verlangt das Programm sowieso, da nirgendwo verzeichnet ist,
         wieviel Disketten die komplette Sicherung umfaßt).

      -n
         Die Dateien im angegebenen Quellverzeichnis werden in das
         angegebene Zielverzeichnis kopiert, ohne daß der übergeordnete
         Verzeichnispfad mit kopiert wird.
         Die Eingabe
             SDBackup -n DH0:Mist Kopie_1:AlterMist
         sichert z.B. die im Verzeichnis DH0:Mist enthaltenen Dateien auf
         der Diskette Kopie_1: im Verzeichnis AlterMist.
         Auch die in "Mist" enthaltenen Unterverzeichnisse werden nach
         "Kopie_1:AlterMist" kopiert.

         (Ohne Angabe von -n würden die Dateien im oben aufgeführten
         Beispiel von DH0:Mist nach Kopie_1:AlterMist/Mist kopiert).


      -f
         Nur Dateien kopieren. Wirkt wie -n mit dem Unterschied, daß alle
         Dateien aus jeder Verzeichnisebene nur im angegebenen Verzeichnis
         abgelegt werden. Es werden keine Unterverzeichnisse erzeugt.

         Achtung: -f und -n können nicht gleichzeitig gewählt werden.


Anmerkungen zum Sichern
-----------------------
o Alle komprimierten Dateien erhalten ein ".Z" an den Dateinamen der
  Sicherungskopie angehängt. Dieses ".Z" wird beim Zurückschreiben auf
  die Festplatte wieder entfernt.
o Alle Dateien mit der Endung ".arc", ".ARC" oder ".Z" werden beim Sichern
  nicht komprimiert. Das Komprimieren einer komprimierten Datei erzeugt nur
  eine längere Datei.
o Wurde nicht die Einstellung "Quiet" gewählt, erscheinen während des
  Sicherungsvorganges folgende Meldungen:

  Gerät:Pfad../Datei.ext ==> Kopie_n:Pfad../Datei.ext.Z [Compressed n.n%]
oder, falls kein Komprimieren gewünscht wurde:
  Gerät:Pfad../Datei.ext ==> Kopie_n:Pfad../Datei.ext   [Copied]



ZURÜCKSCHREIBEN
---------------

SDBackup -r [Argumente] Kopie_n:[Pfad][Datei] Zielpfad

Kopie_n:
Ab der genannten Diskette wird zurückgespeichert.
Wenn Du nur ein bestimmtes Verzeichnis wiederherstellen möchtest und weißt,
ab welcher Diskette es abgespeichert wurde, gibst Du den Namen dieser
Diskette als Startdiskette an. Oder Du gibst den Namen der ersten Diskette
an und legst solange die Disketten ein, bis das gewünschte Verzeichnis oder
diue gewünschte Datei gefunden wurde.

Zielpfad
Wo die Dateien hin sollen. Es muß immer ein Verzeichnis angegeben werden
und keine Datei. Dabei handelt es sich normalerweise um das Quellverzeich-
nis, aus dem Du die Daten vorher gesichert hast (z.B. DH0:). Es kann sich
aber auch um ein anderes Verzeichnis handeln (siehe -n).

Argumente (beim Zurückschreiben möglich)

      -r
      Dieser Parameter teilt SDBackup mit, daß gesicherte Dateien zurück-
      geschrieben werden. Alle Dateien mit dem Anhängsel ".Z" werden gleich-
      zeitig dekomprimiert.

      -q
      Die Namen der zurückgespeicherten dateien werden nicht auf dem Bild-
      schirm ausgegeben.

      -s
      Beim Zurückspeichern nicht notwendig, aber es funktioniert trotzdem.
      Das Schlüsselwort -s LAST funktioniert dagegen hier nicht. Siehe oben.

      -i
      Beim Zurückschreiben wird nicht dekomprimiert.

      -n
      Wie -n beim Dateisichern. Siehe oben.

      -f
      Wie -f beim Dateisichern. Siehe oben.


Anmerkungen zum Zurückschreiben
-------------------------------
o Wurden die Dateien beim Abspeichern komprimiert, erhalten sie das Anhäng-
  sel ".Z" an ihren Dateinamen. Möchtest Du also eine einzelne Datei
  zurückschreiben, die komrimiert wurde, mußt Du das Anhängsel mit angeben.

o Beim Zurückschreiben vom Hauptverzeichnis einer Diskette (z.B. Kopie_1:)
  bemerkt es SDBackup nicht, wann das Zurückschreiben beendet ist. Wurde
  also die letzte Diskette zurückgeschrieben, mußt Du die Anfrage
  nach der nächsten Diskette durch einen Klick auf "CANCEL" beantworten.
  Nach dem Rückspeichern einer Einzeldatei oder eines Unterverzeichnisses
  erkennt es SDBackup, wenn die letzte Datei zurückgespeichert wurde.


ÜBERBLICK-FUNKTION
------------------

       SDBackup [-s last] -V [-M | -C]  Pfad

Die Überblickfunktion ermöglicht es, die Dateien anzeigen zu lassen, die
entsprechend der Parameter gesichert würden. Außerdem können die "Archive
bits" der angezeigten Dateien beliebig eingestellt werden.

      - s last
      Es werden nur Dateien mit gesetztem "Archive bit" angezeigt.

      -V
      Durchsichtsbetrieb. Es ist möglich, sich den Inhalt der dargestellten
      Dateien anzeigen zu lassen. Bei zusätzlicher Angabe von -D oder -C
      werden jeweils nur die Dateien gezeigt, deren "Archive bit" gesetzt
      oder ungesetzt ist (-C = ungesetzt).

      -M
      Das Archive Bit einer Datei wird gesetzt und die Datei damit als
      gesichert gekennzeichnet.

      -C
      Das Archive Bit einer Datei wird gelöscht und die Datei damit als
      ungesichert gekennzeichnet.


Anmerkung:
Im Überblick-Betrieb werden alle anderen Parameter ignoriert.

Beispiele zum Überblicksbetrieb:

SDBackup -C dh0:         ! Die Archive bits aller Dateien werden gelöscht.

SDBackup -M dh0:TMPdir   ! Die Archive bits aller Dateien im Verzeichnis
                           TMPdir werden gesetzt.

SDBackup -s last -V dh0: ! Auflistung aller Dateien mit gelöschtem
                           Archive bit (= noch ungesichert).

SDbackup -V -M dh0:      ! Archive bit aller dateien setzen und die Datei-
                           inhalte dabei anzeigen.


--------------------------------------------------------------------------


III. Was für den Programmablauf notwendig ist
---------------------------------------------

o Alle für den dateibetrieb notwendigen Systemdateien.
  Das Programm arbeitet geräteunabhängig, so daß sogar das Sichern von
  Diskettendateien möglich ist.

o Der Formatierbefehl.
  Da der Formatierbefehl auf Wunsch aufgerufen wird, muß er sich in einem
  von AmigaDOS zu findenden Verzeichnispfad aufhalten.
  Der Formatbefehl ist normalerweise im Verzeichnis SYS:System/ zu finden.
  Wenn nötig, mußt Du also in die Startup-Sequence den Befehl
  "path SYS:system add" einfügen.


--------------------------------------------------------------------------


IV.  Fehlerbehandlung
---------------------

Mögliche Fehler                         Abhilfe
---------------                         -------

Lesefehler auf Quelldiskette            Datei überspringen, fortfahren.
Schreibfehler auf Zieldiskette          Datei überspringen, fortfahren.
Nächste Backup-Disk nicht aufzufinden   Neue Diskette formatieren lassen,
                                        fortfahren.
Fehler beim Verzeichniserzeugen         Ganzes Verzeichnis überspringen,
                                        fortfahren.

Schreibfehler können Schwierigkeiten verursachen, falls das DOS der Ansicht
ist, die Diskette wäre deshalb unlesbar. Und falls Du einen Schreibfehler
auf einer bestimmten Sicherungsdiskette entdeckst, wurden die vorher auf
dieser Diskette gespeicherten, aber jetzt nicht mehr zugänglichen Dateien
als bereits gesichert gekennzeichnet.

Ist Dir beim Sichern das System abgestürzt, kannst Du die Option -s LAST
benutzen. In diesem Falle werden alle vorher gesicherten Dateien über-
sprungen und dort mit der Sicherung fortgefahren, wo Du sie unfreiwillig
abbrechen mußtest. Vor einer Gesamtsicherung der Festplatte ist es am
sinnvolsten, vorher im Überblickmodus sämtliche Archive bits zu löschen.
Wenn Du also beim Sichern unterbrochen wirst, hast Du so die Gewißheit,
daß Du an derselben Stelle später fortfahren kannst.


--------------------------------------------------------------------------


V.   Grenzen
------------

Die vorliegende Version von SDBackup kann nur vom CLI aus gestartet werden.


--------------------------------------------------------------------------


VI.  Beispiele
--------------

   1. Vollständige Kopie der Festplatte DH0: auf Diskette, angefangen mit
      dem Diskettennamen Backup_1:; Erstellung einer Log-Datei aller Dateien

          SDBackup -l dh0: Backup_1:

      Zurückschreiben:

          SDBackup -r Backup_1: dh0:


   2. Sichern aller seit dem 25. August 1987, 17:00 Uhr geänderten Dateien
      von DH0:

          SDBackup -s 25-aug-87:17:00 dh0: Backup_incr_1:

      Zurückschreiben auf DH0: (vorausgesetzt, DH0: ist leer):

          SDBackup -r Backup_1: dh0:
      anschließend SDBackup -r Backup_incr_1: dh0:


   3. Das Sichern der Einzeldatei DH0:source/FooBar.c in das Verzeichnis
      Back_9:OLD ohne Komprimieren

          SDBackup -fi dh0:source/FooBar.c Back_9:OLD

      Zurückspeichern in das Verzeichnis DH0:source

          SDBackup -f -r Back_9:OLD/FooBar.c dh0:source


   4. Das Sichern des Verzeichnisses DH0:Sonix auf Diskette, angefangen
      im Diskettenverzeichnis Back_1:Music/Sonix_V1

          SDBackup -n dh0:Sonix Back_1:Music/Sonix_V1

      Rückspeichern nach DH0:Music/Sonix_V1

          SDBackup -r Back_1:Music/Sonix_V1 dh0:


   5. Sichern der Datei DH0:Tools/ls ins Verzeichnis Back_11:Tools

      SDBackup -f dh0:tools/ls Back_11:Tools

          Rückspeichern

      SDBackup -rf Back_11:Tools/ls.Z dh0:


--------------------------------------------------------------------------


VII. Zukünftige Verbesserungen
------------------------------

o Einbau des Arguments -o, mit dem bestimmt werden kann, daß beim Zurück-
  speichern nur dann die existierende Datei auf der Festplatte überschrie-
  ben wird, wenn deren Erstellungsdatum älter ist als das der gesicherten
  Datei.

o Was man mir vorschlägt.

