|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.ars.ars.backup.plugins.FileSystemBackup
de.bsvrz.ars.ars.backup.plugins.DVDBackup
public class DVDBackup
Diese Klasse ist fuer die Sicherung von Containern auf einer DVD verantwortlich. Die Sicherung funktioniert derzeit nur auf Linux-Systemen. Fuer die
vorbereitende Erstellung der zu brennenden Verzeichnisstruktur wird das FileSystemBackup
verwendet.
Field Summary | |
---|---|
private String[] |
currentScsiBus
|
private String[] |
currentSerialID
|
private int |
EXITCODE_LAST_EXEC
|
private static int |
MAX_MEDIUM_SIZE_KB
|
private static String |
MEDIAPATH_POSTFIX
|
protected static String |
MEDIAPATH_PREFIX
|
private static String |
PROP_BACKUP_DIR
|
private static String |
PROP_BACKUP_SERIALS
|
private static String |
SCSIUSBDirPath
|
private String[] |
serialNumbers
|
Fields inherited from class de.bsvrz.ars.ars.backup.plugins.FileSystemBackup |
---|
backupBasePath, currentBackupPath, currentSpaceOccupiedByContainerFiles, currentSpaceOccupiedByZipfiles, logger, MAX_CONTAINERS_PER_DIR |
Fields inherited from interface de.bsvrz.ars.ars.backup.BackupModul |
---|
PROP_BACKUP_CONTAINER_PER_ZIP, PROP_BACKUP_MEDIUMSIZE |
Constructor Summary | |
---|---|
DVDBackup()
|
Method Summary | |
---|---|
private boolean |
amIRunningOnLinux()
|
void |
backupContainer(int mediumID,
long contID,
File contFile)
Mit dieser Methode wird festgelegt, dass ein Container auf dem angegebenen und vorher geöffneten Medium zu speichern ist. |
void |
closeMediumAfterBackup(int mediumID,
File indexFile)
Sobald auf einem Medium keine Kapazität für weitere Container mehr vorhanden ist, wird der aktuelle Backup-Lauf auf diesem Medium mit dieser Methode abgeschlossen. |
boolean |
containsData(String serialID)
Ermittelt, ob es in dem angegebenen Verzeichnis Daten gibt. |
private boolean |
containsErrorMessage(String input)
Prüft, ob in input das Wort 'Fehler' oder 'Error' vorkommt, unabhängig von Groß/Kleinschreibung. |
private String |
exec(String command)
Fuehrt ein Kommando aus und liefert den Output als String zurueck. Der Output ist auf 100000 Zeichen limitiert. |
private void |
findEmptyDVD(int mediumID)
Sucht nach leeren Laufwerk (leer = keine DVD oder leere DVD!) |
private void |
findReadableDVD(int mediumID)
|
private String |
getDirContent(String serialId)
|
(package private) String |
getDVDMediaPath(String serialId)
|
(package private) String |
getScsiBus(String serialID)
Da der SCSI-Bus eines USB-Devices vom Betriebssystem dynamisch vergeben wird (d.h. |
boolean |
hasMediumCapacity(int mediumID,
long containerSize,
int mediumIndexSize)
Liefert true, falls die noch zur Verfügung stehende Kapazität des angegebenen Mediums ausreicht, um einen Container der Größe fileSize und den
Medienindex mit der momentanen Größe |
void |
initialize(Properties props)
Diese Methode dient dem Initialisieren des BackupModuls. |
private boolean |
isReadable(String serialId)
|
void |
openMediumBeforeBackup(int mediumID,
String backupRunID)
Diese Methode wird aufgerufen, bevor der erste Container auf dem Medium gesichert wird. |
InputStream |
restoreContainer(int mediumID,
String contFileName)
Mit dieser Methode wird ein InputStream der Containerdaten des Containers mit Namen contFile auf dem Medium mediumID
erzeugt. |
String |
toString()
|
Methods inherited from class de.bsvrz.ars.ars.backup.plugins.FileSystemBackup |
---|
getAllContFileNames |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface de.bsvrz.ars.ars.backup.BackupModul |
---|
getAllContFileNames |
Field Detail |
---|
private static final String PROP_BACKUP_DIR
private static final String PROP_BACKUP_SERIALS
private static int MAX_MEDIUM_SIZE_KB
private static final String SCSIUSBDirPath
protected static final String MEDIAPATH_PREFIX
private static final String MEDIAPATH_POSTFIX
private String[] serialNumbers
private String[] currentScsiBus
private String[] currentSerialID
private int EXITCODE_LAST_EXEC
Constructor Detail |
---|
public DVDBackup()
Method Detail |
---|
public void initialize(Properties props) throws Exception
BackupModul
initialize
in interface BackupModul
initialize
in class FileSystemBackup
Exception
BackupModul.initialize(java.util.Properties)
public void backupContainer(int mediumID, long contID, File contFile) throws BackupException
BackupModul
BackupModul
kann den Parameter containerID
verwenden, um z.B. die Container-Dateien zu
sortieren oder um Hilfsdatenstrukturen für einen schnellen Zugriff anzulegen.
backupContainer
in interface BackupModul
backupContainer
in class FileSystemBackup
BackupException
BackupModul.backupContainer(int,long,java.io.File)
public void closeMediumAfterBackup(int mediumID, File indexFile) throws BackupException
BackupModul
ContainerID
s enthält, die im aktuellen Backup-Lauf auf diesem Medium gesichert
wurden. Diese Datei wird auf dem Medium gespeichert. Die weiteren Aufgaben, die einzelne Implementierungen der BackupModule-Schnittstelle hier zu erfüllen
haben, sind unterschiedlich. Module, die sofort auf ein Medium schreiben können (Wechselplatten) erfordern keine weiteren Schritte. Für Medien wie DVDs wird
in dieser Methode aus den gesammelten Containern ein Image erstellt und auf die DVD gebrannt; bei Keydox wird ein Logout ausgeführt.
closeMediumAfterBackup
in interface BackupModul
closeMediumAfterBackup
in class FileSystemBackup
BackupException
BackupModul.closeMediumAfterBackup(int,java.io.File)
public boolean hasMediumCapacity(int mediumID, long containerSize, int mediumIndexSize) throws BackupException
BackupModul
fileSize und den
Medienindex mit der momentanen Größe indexSize
zu speichern. Falls die Gesamtkapazität nicht durch den Medientyp eindeutig festgelegt ist,
liefert das Backup-Modul einen sinnvollen Wert. Beispiel: 1 GB pro Aktenschrank in Keydox, jedoch keinesfalls die Größe der gesamten Festplatte. Ist das
gewünschte Medium nicht im Zugriff, wird eine entsprechende Ausnahme ausgelöst.
- Specified by:
hasMediumCapacity
in interface BackupModul
- Overrides:
hasMediumCapacity
in class FileSystemBackup
- Returns:
- boolean
- Throws:
BackupException
- See Also:
BackupModul.hasMediumCapacity(int,long,int)
public void openMediumBeforeBackup(int mediumID, String backupRunID) throws BackupException
BackupModul
[TanfArS]
kann es im Regelfall nicht auftreten, dass ein Container
mehrmals auf demselben Medium abgelegt ist, weil bereits gesicherte Container kein zweitesmal gesichert werden. Es ist dennoch notwendig ein Verhalten für
diesen Fall vorzugeben. Beim Wiederherstellen eines Containers wird daher der Container des Mediums verwendet, der unter der alphabetisch größten
backupRunID abgelegt wurde.
openMediumBeforeBackup
in interface BackupModul
openMediumBeforeBackup
in class FileSystemBackup
mediumID
- ID des MediumsbackupRunID
- Zur Identifizierung des Sicherungslaufs falls mehrere Sicherungslaeufe auf einem Medium sind. Bei der Wiederherstellung eines Containers
werden die Sicherungslaeufe von der alphabetisch letzten backupRunID beginnend bis zur alphabetisch ersten backupRunID nach dem
angeforderten Container durchsucht.
BackupException
BackupModul.openMediumBeforeBackup(int,java.lang.String)
public InputStream restoreContainer(int mediumID, String contFileName) throws BackupException
BackupModul
InputStream
der Containerdaten des Containers mit Namen contFile
auf dem Medium mediumID
erzeugt. Der BackupManager kopiert die Daten je nach Vorgang ganz oder teilweise in das Archivsystem oder in ein temporäres Verzeichnis. Diese Methode wird
zum Wiederherstellen eines Containers, zum Abgleich/Wiederherstellung der Verwaltungsinformation und zur Verifikation verwendet.
restoreContainer
in interface BackupModul
restoreContainer
in class FileSystemBackup
BackupException
BackupModul.restoreContainer(int,java.lang.String)
private void findEmptyDVD(int mediumID) throws Exception
mediumID
-
Exception
private void findReadableDVD(int mediumID) throws Exception
Exception
private boolean isReadable(String serialId) throws Exception
Exception
private boolean amIRunningOnLinux()
private String getDirContent(String serialId) throws Exception
Exception
public boolean containsData(String serialID) throws Exception
serialID
-
Exception
String getScsiBus(String serialID) throws IOException
serialID
-
IOException
String getDVDMediaPath(String serialId)
private String exec(String command) throws IOException
command
-
IOException
private boolean containsErrorMessage(String input)
input
- Input String
public String toString()
toString
in class FileSystemBackup
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |