{"id":838,"date":"2010-10-14T16:04:36","date_gmt":"2010-10-14T14:04:36","guid":{"rendered":"http:\/\/www.bytopia.dk\/blog\/?p=838"},"modified":"2010-10-14T16:04:36","modified_gmt":"2010-10-14T14:04:36","slug":"crashplan","status":"publish","type":"post","link":"https:\/\/www.bytopia.dk\/blog\/2010\/10\/14\/crashplan\/","title":{"rendered":"CrashPlan"},"content":{"rendered":"<p>Jeg ved det, og det g\u00f8r vi nok allesammen&#8230; det er en god id\u00e9 at have en backup af de data man har p\u00e5 ens computer. Indtil videre har jeg gjort dette ved at have en ekstern harddisk som jeg (alt for sj\u00e6ldent) koblede til min computer, og s\u00e5 k\u00f8rte et script der kopierede alle \u00e6ndrede filer over p\u00e5 den. Det virkede, men blev ikke gjort ret ofte, s\u00e5 min backup kunne godt risikere at v\u00e6re flere m\u00e5neder gammel.<\/p>\n<p>Da jeg har en <a href=\"http:\/\/www.qnap.com\/pro_detail_feature.asp?p_id=122\">QNAP TS-219P<\/a> NAS st\u00e5ende, var det jo n\u00e6rliggende at bruge den til backup, men s\u00e5 var problemet at finde noget passende software. Jeg \u00f8nskede noget hvor jeg ikke skulle g\u00f8re noget aktivt efter at det var sat op, s\u00e5 det var ikke en l\u00f8sning at forts\u00e6tte med mit eget script. Efter megen s\u00f8gen og l\u00e6sen af anmeldelser, s\u00e5 endte jeg med at installere programmet <a href=\"http:\/\/crashplan.com\">CrashPlan<\/a>. Programmet virker ved at k\u00f8re en tjeneste i baggrunden der holder \u00f8je med de filer der \u00e6ndres p\u00e5 din harddisk, og s\u00e5 laver den med j\u00e6vne mellemrum (konfigurerbart for den betalte version, en gang om dagen for gratisversionen) en kopi af disse. Det er ogs\u00e5 muligt at g\u00e5 tilbage i tiden og hente en fil man fx lige er kommet til at slette.<\/p>\n<p>Installationen er simpel, men ops\u00e6tningen tog lidt tid, og det er egentlig prim\u00e6rt det som dette blogindl\u00e6g handler om. Man kan k\u00f8be diskplads hos CrashPlan til ganske rimelige priser, men s\u00e5 er jeg begr\u00e6nset af min internethastighed n\u00e5r jeg skal uploade data til dem. Derfor foretr\u00e6kker jeg at bruge min NAS server, men CrashPlan kan ikke umiddelbart gemme data til den. CrashPlan kan dog tage backup til en folder, s\u00e5 jeg mappede straks en folder fra min NAS til Z: drevet p\u00e5 min maskine for at tage backup til den. Stor var min overraskelse da jeg s\u00e5 at det ikke var muligt at v\u00e6lge Z: drevet inde fra CrashPlan.<\/p>\n<p>Forklaringen er at backuplokationen v\u00e6lges af den CrashPlan tjeneste der k\u00f8rer i baggrunden, og den k\u00f8rer ikke som din egen bruger, men som brugeren SYSTEM. Denne bruger har dog ikke adgang til de drev du selv har mappet, og derfor kan CrashPlan ikke se Z: drevet. L\u00f8sningen var jo ligetil&#8230; jeg m\u00e5tte mappe drevet som SYSTEM brugeren. Det kan g\u00f8res ved at k\u00f8re en kommando via Windows&#8217; Task Scheduler (eller Opgavestyring som den vist hedder i en dansk Windows). Her kan man v\u00e6lge at starte en opgave n\u00e5r brugeren logger p\u00e5, og samtidigt sige at den opgave skal k\u00f8re under brugeren SYSTEM.<\/p>\n<p>S\u00e5 opst\u00e5r der bare et lille problem. Det er ikke altid at netv\u00e6rket er klart lige efter man logger p\u00e5, og s\u00e5 fejler denne kommando. Man kan l\u00f8se dette ved at forsinke den fx 30 sekunder, men er det for lidt\/meget? Jeg gider heller ikke have at den skal fors\u00f8ge hvis den ikke er p\u00e5 mit netv\u00e6rk. Jeg inds\u00e5 derfor at jeg m\u00e5tte lave et lille script til at mappe dette drev som nogenlunde g\u00f8r f\u00f8lgende:<\/p>\n<p>Den identificerer mit netv\u00e6rk ud fra hvilket standard gateway der er valgt. Hvis der ikke er valgt en endnu, s\u00e5 pr\u00f8ver den igen i et minuts tid f\u00f8r den giver op og erkender at der nok bare ikke er netv\u00e6rksadgang. S\u00e5fremt den finder den rigtige default gateway, s\u00e5 pr\u00f8ver den at pinge en bestemt IP adresse (hos mig er det min NAS boks). F\u00f8rst hvis dette lykkes, s\u00e5 vil den mappe det valgte drev. Det er ikke ufejlbarligt, men det virker i langt de fleste situationer, og endnu bedre er at det virker uden at jeg skal g\u00f8re noget som helst n\u00e5r f\u00f8rst det er sat op, hvilket jo ogs\u00e5 var et af m\u00e5lene med at installere CrashPlan.<\/p>\n<p>I tilf\u00e6lde af at du st\u00e5r med samme problem, s\u00e5 er scriptet som f\u00f8lger:<\/p>\n<p><code lang=\"vb\"><br \/>\nRequiredGateway = \"10.6.6.1\"<br \/>\nServerIP = \"10.6.6.2\"<br \/>\nUsername = \"\"<br \/>\nPassword = \"\"<br \/>\nShareName = \"\"<\/p>\n<p>Timeout = 60<br \/>\nPingRetries = 5<\/p>\n<p>i = 0<br \/>\nDo<br \/>\n    i = i + 1<br \/>\n    Set objWMIService = GetObject(\"winmgmts:\" _<br \/>\n        & \"{impersonationLevel=impersonate}!\\\\.\\root\\cimv2\")<\/p>\n<p>    Set IPConfigSet = objWMIService.ExecQuery _<br \/>\n        (\"Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE\")<\/p>\n<p>    For Each IPConfig in IPConfigSet<br \/>\n        If Not IsNull(IPConfig.DefaultIPGateway) Then<br \/>\n            For j=LBound(IPConfig.DefaultIPGateway) to UBound(IPConfig.DefaultIPGateway)<br \/>\n                DefaultGateway = IPConfig.DefaultIPGateway(j)<br \/>\n                if StrComp(DefaultGateway,RequiredGateway,1) = 0 Then<br \/>\n                    Set Shell = wscript.createObject(\"wscript.shell\")<br \/>\n                    strCommand = \"ping -n 1 -w 300 \" & ServerIP<br \/>\n                    k = 0<br \/>\n                    Do<br \/>\n                        k = k + 1<br \/>\n                        ReturnCode = Shell.Run(strCommand, 0, True)<br \/>\n                        If ReturnCode = 0 Then<br \/>\n                            strCommand = \"net use Z: \\\\\" & ServerIP & \"\\\" & ShareName & \" \/PERSISTENT:NO \/USER:\" & Username & \" \" & Password<br \/>\n                            ReturnCode = Shell.Run(strCommand, 0, True)<br \/>\n                            Exit Do<br \/>\n                        Else<br \/>\n                            WScript.Sleep 1000<br \/>\n                        End If<br \/>\n                    Loop While k<PingRetries\n                    Exit Do\n                End If\n            Next\n        End If\n    Next\n    WScript.Sleep 1000\nLoop While i<Timeout\n<\/code><\/p>\n<p>Husk at rette parametrene \u00f8verst i scriptet til at passe til din ops\u00e6tning. V\u00e6r ikke nerv\u00f8s n\u00e5r du starter op og CrashPlan siger at den ikke kan finde sin backuplokation. Det er fordi dens tjeneste er startet f\u00f8r du er logget p\u00e5 og f\u00e5r mappet drevet. Den finder i l\u00f8bet af et par minutter ud af at drevet er tilbage, og begynder sin backup. Du beh\u00f8ver ikke at g\u00f8re noget.<\/p>\n<p>Ellers s\u00e5 ser CrashPlan ud til at v\u00e6re et ganske fornuftigt program. Hvis man har mindre datam\u00e6nger kan man muligvis med fordel bruge den plads de stiller til r\u00e5dighed for et beskedent bel\u00f8b. Der er dog 30 dages gratis pr\u00f8vetid med programmet, s\u00e5 man kan jo altid se om det fungerer til ens behov. Dine data kan krypteres med en n\u00f8gle du selv v\u00e6lger, og p\u00e5 den m\u00e5de burde der (s\u00e5fremt det er implementeret korrekt) ikke v\u00e6re problemer med at uploade dine data til en fremmed server. Den betalte version af programmet giver dig mulighed for at tage backup oftere, samt indstille flere ting om hvor l\u00e6nge, og hvor mange gamle versioner, af en fil der skal gemmes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jeg ved det, og det g\u00f8r vi nok allesammen&#8230; det er en god id\u00e9 at have en backup af de data man har p\u00e5 ens computer. Indtil videre har jeg gjort dette ved at have en ekstern harddisk som jeg (alt for sj\u00e6ldent) koblede til min computer, og s\u00e5 k\u00f8rte et script der kopierede alle [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-838","post","type-post","status-publish","format-standard","hentry","category-computer"],"_links":{"self":[{"href":"https:\/\/www.bytopia.dk\/blog\/wp-json\/wp\/v2\/posts\/838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bytopia.dk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bytopia.dk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bytopia.dk\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bytopia.dk\/blog\/wp-json\/wp\/v2\/comments?post=838"}],"version-history":[{"count":7,"href":"https:\/\/www.bytopia.dk\/blog\/wp-json\/wp\/v2\/posts\/838\/revisions"}],"predecessor-version":[{"id":845,"href":"https:\/\/www.bytopia.dk\/blog\/wp-json\/wp\/v2\/posts\/838\/revisions\/845"}],"wp:attachment":[{"href":"https:\/\/www.bytopia.dk\/blog\/wp-json\/wp\/v2\/media?parent=838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bytopia.dk\/blog\/wp-json\/wp\/v2\/categories?post=838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bytopia.dk\/blog\/wp-json\/wp\/v2\/tags?post=838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}