Delprosjekt:
Speiling av Al Mashriq

Ansvarlig:

Thomas Gundersen (thomas.m.gundersen@hiof.no)

Innledning

Fem uker hvert semester drar Børre Ludvigsen ned til Beirut, Libanon. Med seg i bagasjen tar han med seg en kopi av Al Mashriq slik at serveren ved det Amereikanske Universitetet kan bli oppdatert.

For å gjøre dette så enkelt som mulig, er det ønskelig å kopiere Al Mashriq (Uten DDC) til disk. Det er også ønskelig at alle linker som peker til "almashriq.hiof.no" skal erstattes med en link til "root" av webserveren.

Mål med delprosjektet

To mål i delprosjektet er blitt definert:

  • Lage et script som retter opp alle linker som peker til "http://almashriq.hiof.no/".
  • Speile Al Mashriq slik at Børre Ludvigsen kan få med seg en oppdatert utgave til Libanon. Dato for avreise er 25 mars og delprosjekter må være avlsuttet før denne datoen.

    Utredning

    Serveren består av 25.000 html filer. Med andre ord er det mange dokumenter som må letes gjennom. Den mest effekitve måten å løse en slik oppgave på, er å lage et script som utfører denne oppgaven for oss.

    Scriptet må kunne traversere rekursivt gjennom filtreet på serveren, samt skjekke om det er en fil av den typen som vi skal lete gjennom. Hvis fil stemmer over ens med hva vi er på utkikk etter, skal scriptet lete gjennom fila etter teksten som skal endres. Hvis scriptet finner tekst som skal endres, utføres dette automatisk av scriptet.

    Etter at linkene har blitt rettet opp, er det meningen at serveren skal speiles til en harddisk. Hvis harddisk ikke er tilgjengelig må vi finne andre medier å legge speilingen på.

    Gjennomføring

    Fase 1. Oppretting av linkfeil

    Selve konstruksjonen av scriptet ble utført gjennom flere steg.

    Første skritt var å lage ett script som klarte å traversere gjennom filstrukturen. Når dette var gjort, ble det lagt inn test på filnavn. Dette førte til at vi nå kun fikk tak i filnavn som inneholdt html.

    Andre skrittet var å legge inn en test som sa i fra om filene inneholdt "href="http://almashriq.hiof.no". Resultatet ble sendt direkte til skjerm slik at resultatet kunne omdirigeres videre til hva brukeren selv måtte ønske. Utskriften inneholdt full path for fila, samt de linjer som inneholdt feil nummerert.

    Neste skritt var å få scriptet til å rette opp feil i filen selv. Den første implementeringen av dette, leste hele filen inn i en buffer for derretter å skrive hele filen på nytt igjen. Hvis scriptet skulle ha gått gjennom hele harddisken med denne løsningen, ville hele prosessen tatt alt for lang tid.

    For å få økt hstigheten på scriptet, skrev vi om subrutinen for feilretting i filene. Den nye versjonen skriver kun defilene som inneholder feil på nytt til disken.

    Implementeringen av dette førte til et par løsninger som senere har blitt brukt i script som skjekker om det finnes "bilder uten sider".

    Fase 2. Speiling av Al Mashriq

    Etter at alle linker var blitt rettet opp, var det på tide å få speilet Al Mashriq slik at Børre Ludvigsen kunne få med seg kopien nedover til Beirut. I og med at dette var noe som vi viste kom til å ta tid, ble Tomas Olai informert om situasjonen. Men det skulle vise seg at Børre Ludvigsen tok disken beregnet for dette formålet i bruk på andre områder.

    Da dette ble klart for oss på mandagen før avreise, måtte vi se om det fantes andre medier tilgjengelig på skolen. Dat-tape var mediet vi valgte å benytte oss av av, da AUB satt med utstyr som kunne lese tapeformatet. Tomas Olai var ikke til stede, så Nils O. Brekken måtte stå for selve speilingen. Nye taper ble skaffet til veie for annledningen og speiling ble igangsatt.

    Etter en dag med kopiering av data fra disk til tape skulle det vise seg at tapestreameren hadde "tatt kvelden", og at vi ikke ville rekke å få kopiert noe data i tide til Børres avreise. Resultatet ble da at Nils ettersendte en tape med posten.

    Resultat

    Etter en ukes tid hadde tapen dukket opp i Beirut, men tollvesnet var veldig interesert i hva som lå på selve tapen og ville ikke videresende tapen. Marwan Badran måtte personlig ta kontakt med tollvesnet og forklare hva som lå på tapen.

    Når så tapen ble prøvd brukte Marwan to dager på å få lest innholdsfortegnelsen, samt at han ikke fikk lest ut noen fornuftige data i det hele tatt. Ved Børre Ludvigsens gjemkomst i slutten av mai, ble vi informert om akkurat hva som hadde skjedd. Jeg ble da bedt om å ta kontakt med Marwan for å høre hva som hadde skjedd samt finne ut av hvordan det hele kunne løses i fremtiden.

    I sammråd med Mawran og Nils kom vi frem til at CD'er er det medie som lettes kan fungere som "transportmiddel" for dataene. Ut i fra dette har jeg satt sammen en liste over fordeling av data, slik at backup kan fordeles ut over flere cder på en fornuftig måte. Fordelingen er noe som kan og mest sansynlig vil forandre seg med tiden.

    For å finne frem til diskforbruket har jeg benyttet meg av unix-kommandoen df med opsjonene -s og -c. Oversikten gir forbruket pr. 3/6-1999 og er derfor estimert.

    Under er det beskrevet et eksempel på hvordan backupcd'er kan settes sammen.

    CD 1

    Settes sammen med å ta alle filer fra /www/almashriq/htdocs/ og eksludere katalogene /admin/, ddc, lebanon og /turkey/.

        8479    /base/
        104216  /egypt/
        97039   /general/
        9       index.html
        5981    /iraq/
        275     /israel/
        2705    /jordan/
        32      /kuwait/
        20986   /palestine/
        166039  /picturebox/
        710     /references/
        80334   /scl/
        998     /sys/
        56134   /syria/
       
        543937  bytes total
        
    CD 2

    Settes sammen med å ta alle filer fra /www/almashriq/htdocs/lebanon/ og eksludere katalogene /lebanon/700/ og /900/ samt å legge til katalogen /turkey/.

      
        112721  /turkey/
        24931   /lebanon/000/
        3       /lebanon/100/
        39      /lebanon/200/
        228018  /lebanon/300/
        8573    /lebanon/400/
        44      /lebanon/413357.jpg
        5       /lebanon/413357s.jpg
        1816    /lebanon/500/
        4579    /lebanon/600/
        54      /lebanon/800/
        2       /lebanon/index.html
      
        380785  bytes total
        
    CD 3

    Settes sammen med å ta alle filer fra /www/almashriq/htdocs/lebanon/700/.

        506904  /lebanon/700/
      
        506904  bytes total
        
    CD 4

    Settes sammen med å ta alle filer fra /www/almashriq/htdocs/lebanon/900/.

        539321  /lebanon/900/
      
        539321  bytes total
        

    Konklusjon

    Etter å ha gjennomgått dette delprosjektet har vi innsett at skal Al Mashriq speiles, bør dette planlegges god tid i forveien. Når vi mener god tid er det snakk om flere uker i forveien.

    Oversikt over delprosjekt

    Lokalisering av filer
    • Script som leter seg gjennom et filtre og skriver ut filnavn og linjenr på søkt tekst. ()
    • Script som i tillegg til overstående funksjoner endrer på ønsket tekst. ()
    • Speiling av Al Mashriq er lokalisert ()

    Tidsestimering

    • Thomas Gundersen
      • Script for endring av linker 46 timer
      • Speiling av Al Mashriq 9 timer
    • Morten Gustavsen
      • Script for endring av linker

    Verktøy

    • Emacs
    • Perl
    • Generelle unixverktøy