Zabezpieczenie ważnych danych za pomocą automatycznej kopii zapasowej

Rozdzielmy kopie zapasowe plików na kilka płyt DVD za pomocą naszego skryptu VB »backupFolder.vbs« (na płycie CD/DVD dołączonej do numeru 6/2008). Odbędzie się to szybko, a przy okazji zaoszczędzimy miejsce na płytach. Ten malutki program jednocześnie pilnuje, aby wszystkie pliki rzeczywiście zostały zabezpieczone.

Skrypt po uruchomieniu natychmiast zakłada folder tymczasowy »C:\BurningDisc«. Jeżeli folder już istnieje, usuwa go, uprzednio pytając nas o zgodę. Następnie skrypt pyta nas o folder źródłowy, który chcemy zarchiwizować, po czym przeszukuje go i kopiuje wszystkie pliki łącznie z ścieżkami dostępu do folderu »C:\BurningDisc«.

Po przekroczeniu przez skopiowane pliki rozmiaru 4,4 GB skrypt zażąda od nas zabezpieczenia folderu »C:\BurningDisc«. Pod Windows XP lub Vistą możemy nagrać płytę DVD za pomocą dołączonych do systemu narzędzi. Oczywiście możemy również wykorzystać aplikację typu Nero czy Burning Studio. Skrypt będzie oczekiwał końca zapisywania plików z otwartym oknem dialogowym. Potwierdzamy wykonanie zadania dopiero po zakończeniu nagrywania płyty. W tym momencie skrypt opróżni folder tymczasowy i będzie kontynuował proces kopiowania plików aż do chwili, gdy folder znów będzie gotowy do zgrania.

Gdy już wszystkie wyznaczone przez nas do zabezpieczenia pliki zostaną skopiowane do folderu zgrywania, skrypt po raz ostatni zażąda od nas zapisania płyty. Na koniec usunie tymczasowy folder i sam zakończy swoją pracę.

Wskazówka:

Umieszczona w skrypcie stała »constTempFolder« przechowuje ścieżkę dostępu do docelowego folderu tymczasowego. Natomiast rozmiar dla pustych płyt został zapisany w stałej »constMediumSpace«. Informację tę podajemy w kilobajtach, czyli »4700000000« dla nośnika danych o rozmiarze 4,4 GB.

Programistom objaśnimy jeszcze działanie skryptu: obiekt »gobjIE« oznacza Internet Explorera, który jest wykorzystywany do komunikacji z użytkownikiem. Komunikaty są wyświetlane również z użyciem funkcji »saySomething()«. Procedura »delFolder()« służy wyłącznie do usunięcia zapisanego wewnątrz skryptu »backupFolder.vbs« folderu określonego w stałej »constTempFolder«. Przed usunięciem pliku zostaje przy tym wyeliminowana ewentualna ochrona przed zapisem. W tym celu za pomocą »var Attributes = objFile.Attributes« są wczytywane atrybuty pliku. Warunek »If (varAttributes and 1) <> 0« sprawdza, czy plik nie jest chroniony przed zapisem i usuwa ewentualne zabezpieczenie, wykorzystując »objFile.Attributes = varAttributes and not 1«.

Procedura »copyFiles()« służy do kopiowania wszystkich plików i podfolderów z katalogu źródłowego do tymczasowego. W tym celu wykorzystywana jest między innymi procedura »copyFolderStructure()«, która w tymczasowym folderze tworzy odpowiednią strukturę folderów, natomiast »copyFile()« rzeczywiście kopiuje pliki. Ponadto procedura »copyFiles()« kontroluje za pośrednictwem zmiennej »gint Space« rozmiar tymczasowego folderu, żąda od użytkownika – za pomocą »burnDisc()« – w odpowiednim momencie nagrania płyty i na zakończenie usuwa folder. Funkcja »selectFolder()« służy do wybrania folderu źródłowego.