sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #65524
Hjælp til håndtering af backup via filstruktur
Hej,
Jeg er ved at gen-tænke mit fil-hieraki for at overveje en ny måde at
håndtere backup på. I den forbindelse vil jeg gerne høre om der er nogen der
har idéer til udformningen af et par scripts jeg mener der bliver relevante.
Evt. hints om hvilke værktøjer/linux-kommandoer det ville være mest oplagte
at basere logikken på ville også være dejligt.
Idéen jeg forestiller mig, er at køre to seperate biblioteksstrukturer, én
hvor indholdet er delt op i små "bidder", hver "bid" svarende til et
backup-medie (hvilket i øjeblikket vil sige 650mb), og én hvor alle bidderne
er samlet sammen og præsenteres som et hele.
Dvs:
**** Biblioteksstruktur 1: (Den opdelte) ****
/storage/static/cd0001/mydocs/pics/pic1.jpg
/storage/static/cd0001/mydocs/pics/pic2.jpg
/storage/static/cd0001/mydocs/worddocs/1.doc
/storage/static/cd0001/mydocs/worddocs/2.doc
-- idéen er, at cd0001 biblioteket fylder ca. 650mb
/storage/static/cd0002/mydocs/pics/pic3.jpg
/storage/static/cd0002/mydocs/pics/pic4.jpg
/storage/static/cd0002/mydocs/worddocs/7.doc
/storage/static/cd0002/mydocs/worddocs/8.doc
-- og lige så med cd2 (de 650mb) og så fremdeles ..
**** Biblioteksstruktur 2: (Den konkatenerede) ****
/storage/dynamic/mydocs/pics/pic1.jpg
/storage/dynamic/mydocs/pics/pic2.jpg
/storage/dynamic/mydocs/pics/pic3.jpg
/storage/dynamic/mydocs/pics/pic4.jpg
/storage/dynamic/mydocs/worddocs/1.doc
/storage/dynamic/mydocs/worddocs/2.doc
/storage/dynamic/mydocs/worddocs/7.doc
/storage/dynamic/mydocs/worddocs/8.doc
-- idéen er her, at det er denne struktur der bliver præsenteret (via samba
til windows-klienter), den statiske struktur 1 er gemt af vejen. I
biblioteksstruktur 2 findes således kun links der peger ind i struktur 1.
**** Script A) - "mirror_structure":
Det der indtil videre er brug for, er et script, der kan løbe cd0001..cdxxxx
igennem, og for hver cd lave links til "static" strukturen, ovre fra
"dynamic" strukturen. Det er iøvrigt kun filer der skal laves som links,
eventuelle biblioteker skal også skabes som reelle biblioteker i "dynamic"
strukturen - så de filer der ligger i dem kan blive linket hver for sig.
Støder scriptet på en fil hvis navn allerede findes som et link, skal det
overskrives med et nyt link (dvs at linket altid vil pege på det højeste
cd-nummer, hvorpå filen findes).
Med script A) i hånden skulle det være muligt at klare sig et stykke.
Tilføjelser til strukturen kan klares ved at lægge filerne i cdxxxx (den man
er igang med at fylde op), evt. slette dynamic strukturen og så køre
scriptet igen, så de nye tilføjelser dukker op.
*-*-*-*
Men mér vil jo have mer - nu er vi ude over must-have's. Næste punkt må
være, at man i stedet for at skulle lægge tilføjelser i #cd-ved-at-fylde-op,
kan lægge filerne direkte i den dynamiske struktur, som det vil virke logisk
at gøre (via samba), efterhånden som man finder på nye filer. Det kræver som
jeg lige ser det, et par scripts mere, for at tingene bliver smarte.
Efter tilføjelserne er dukket op i den dynamiske struktur, ser den nu måske
sådan ud:
**** Biblioteksstruktur 2: (Den konkatenerede) ****
/storage/dynamic/mydocs/pics/pic1.jpg (link)
/storage/dynamic/mydocs/pics/pic2.jpg (link)
/storage/dynamic/mydocs/pics/pic3.jpg (link)
/storage/dynamic/mydocs/pics/pic4.jpg (link)
/storage/dynamic/mydocs/pics/pic5.jpg (fil)
/storage/dynamic/java/project1/project1.ipr (fil)
/storage/dynamic/mydocs/worddocs/1.doc (link)
/storage/dynamic/mydocs/worddocs/2.doc (link)
/storage/dynamic/mydocs/worddocs/7.doc (link)
/storage/dynamic/mydocs/worddocs/8.doc (link)
/storage/dynamic/mydocs/worddocs/letter/1.doc (fil)
Dvs. der begynder at dukke nye filer og foldere op inde midt mellem alle
links'ene. For så ind imellem at få flyttet alle de nye filer over i den
statiske struktur, så man kan tage noget backup, kunne det være rart med et
script der fjerner alle de overflødige biblioteker og links.
**** Script B1) - "cleanup_links":
Når dette script er kørt, er det eneste der findes i "dynamic", de filer der
er blevet lagt der siden sidst, og de foldere de findes i. Alle andre
foldere, kun indeholdende links er blevet slettet. Nu skulle det så være
meget nemt at tage den resterede dynamic struktur og hælde direkte over i en
ny cd i static, og køre script A igen, så en ny runde kan begynde, med en
"rene links" struktur igen i dynamic.
Når B1 er kørt, skulle der være følgende tilbage:
**** Biblioteksstruktur 2: (Den konkatenerede) ****
/storage/dynamic/mydocs/pics/pic5.jpg
/storage/dynamic/java/project1/project1.ipr
/storage/dynamic/mydocs/worddocs/letter/1.doc
**** Script B2) - "count_not_backuped_megabytes":
For at understøtte processen omkring script B1 kunne det være ok at have et
script B2 der kunne holde øje med hvor mange megabytes der var kommet til i
dynamic strukturen. Dvs løbe strukturen igennem, ignorere links'ene, og så
lægge størrelsen sammen for de "ægte" filer den støder på.
*-*-*-*
Tilbage er der jo så kun, at ind imellem vil der være nogle af de gamle
filer (der allerede findes sikkerhedskopieret i den statiske struktur), der
bliver opdateret af windows-klienterne. Her skal nok også laves noget med at
få dem "skubbet" frem til den aktuelle cd der bliver tilføjet på, så linket
bliver opdateret ved næste kørsel af A).
**** Script C) - "discover_updated_files":
Skal løbe den statiske struktur igennem, og se x antal dage tilbage i tiden,
og rapportere tilbage om filer der er ændret efter da, så disse nemt kan
kopieres til cdxxxx i den statiske struktur for at blive "genoptaget".
*-*-*-*
Nu er der nok nogen der tænker at det virker omstændeligt, og dem kan jeg
sådan set godt følge. Lige nu synes jeg bare det må være den "mindst
omstændelige" vej igennem at holde sit fil-hieraki i sync med sin off-line
kopi. Det skal siges at opdateringer af "gamle" filer er sjældne, mens
tilføjelser er ofte forekommende. Sletninger er naturligvis et ukendt begreb
i den struktur der bliver dannet her, med mindre naturligvis at man
"gen-backup'er" den berørte cd i den statiske struktur efter sletningen af
filerne i den. Ligeså må man (som jeg lige ser det) afholde sig fra at
flytte filerne (der jo er links) rundt i strukturen via samba, det fører
vist kun til mærkværdigheder. Det kan jeg godt leve med.
Det drejer sig om mange 100'er CD'er efterhånden, og alternativet for mig
har indtil videre været at skrive hele striben af CD'er ud fra ende til
anden når jeg har syntes at det var på tide med en backup. Men på den
beskrevne måde skulle jeg kunne nøjes med en helt anderledes
arbejdsbelastning, efterhånden som strukturen udvides - det var i hvert
tilfælde håbet.
Jeg håber der er nogen af jer der har nogle gode indledende besværgelser jeg
kan lægge fra land på :-)
mvh Steffen