Palvelimen varmistus ilman ohjelmistoa

eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Palvelimen varmistus ilman ohjelmistoa

Viesti Kirjoittaja eero »

Usein on tarpeetonta käyttää törkeen kalliita varmistusohjelmia. Näillä pikku scripteillä saa ja ohjelmien omilla varmistusohjelmilla saa ihan pätevät varmistukset esim. postipalvelimelle. Samoilla ohjeilla voi ottaa varmistukset web-palvelimesta.
Usein on tosiasia ettei ohjelmia edes kannata lähteä palauttamaan varmistuksista vaan systeemin kaaduttua on nopeempaa ja vaivattomampaa asentaa kaikki uusiksi ja palauttaa tiedot. Siihen tämäkin ohje perustuu.

D:\Backup on väliaikaishakemisto varmistuksille
D:\Varmistus on tiedostojen sijainti joita varmistuksessa tarvitaan (LuoJaPoista.bat, varmista.bat, poistatiedostot.vbs, rmempty.exe, postie.exe)
\\levyvarmistus\varmistus on lopullinen varmistusten sijainti

MUISTA HARJOITELLA PALAUTUSTA ENNEN KUIN KATASTROFI OIKEASTI ISKEE

Kello 21.00 (LuoJaPoista.bat)
Ajastetulla toiminnalla

Poistetaan kansio Backup
Luodaan kansio Backup

Koodi: Valitse kaikki

rmdir d:\Backup /s /q
md d:\Backup

Kello 21.30 (MySQL oma varmistus)

Luodaan MySQL-varmistus kansioon D:\Backup

Kello 22.00 (DeskNow oma varmistus)

Luodaan DeskNow-varmistukset kansioon D:\Backup

Kello 3.00 (varmista.bat)
Ajastetulla toiminnalla

Poistetaan yli seitsemän päivää olevat varmistukset verkkolevyltä
  • Poistetaan yli seitsemän päivää olevat tiedostot poistatiedostot.vbs komennolla
    Poistetaan tyhjät kansiot verkkolevyltä rmempty.exe:llä
    Kopioidaan palvelimen levyltä varmistetut tiedostot verkkolevylle
    Lähetetään posti varmistuksen onnistumisesta

Koodi: Valitse kaikki

cscript d:\Varmistus\poistatiedostot.vbs \\levyvarmistus\varmistus 7
d:\Varmistus\rmempty.exe \\levyvarmistus\varmistus\
xcopy d:\backup "\\levyvarmistus\varmistus\" /s /y
d:\varmistus\postie.exe -host:PostipalvelimenOsoite esim.mail.inet.fi -to:Vastaanottaja esim.eero.lehtinen@koti.fi -from:Lähettäjä esim.varmistus@koti.fi -s:"Otsikko esim. Varmistus onnistui" -msg:"Viesti esim. MOI =)"
Poistatiedostot.vbs:

Koodi: Valitse kaikki

' Poistaa vanhat tiedostot annetusta kansiosta ja kaikista alikansioista
' Komento: cscript poistatiedostot.vbs \\levyvarmistus\varmistus 7 
'   Selitys: Poistaa seitsemän päivää vanhemmat tiedostot kansiosta \\levyvarmistus\varmistus
Set objArgs = WScript.Arguments
FolderName =objArgs(0)
Days=objArgs(1)
'logfile = "D:\Poistettu.log"
set fso = createobject("scripting.filesystemobject")
set folders = fso.getfolder(FolderName)
datetoday = now()
newdate = dateadd("d", Days*-1, datetoday)
wscript.echo "Tanaan:" & now()
wscript.echo "Poistetaan tiedostot jotka ovat vanhempia kuin :" & newdate 
wscript.echo "________________________________________________"
wscript.echo ""
recurse folders 
wscript.echo ""
wscript.echo "Poistettu onnistuneesti tiedostot jotka ovat vanhempia kuin :" & newdate 
wscript.echo "________________________________________________"

sub recurse( byref folders)
  set subfolders = folders.subfolders
  set files = folders.files
  wscript.echo ""
  wscript.echo "Poistetaan tiedostot kansiosta:" & folders.path
  wscript.echo "__________________________________________________________________________"
  for each file in files
    if file.datelastmodified < newdate then
      wscript.echo "Poistetaan " & folders.path & "\" & file.name & " Viimeksi muokattu: " & file.datelastmodified
      on error resume next
    file.delete
    folder.delete
    end if
    
  next  

  for each folder in subfolders
    recurse folder
  next  

  set subfolders = nothing
  set files = nothing

end sub
RMEMPTY.zip
Poistaa tyhjät kansiot
(35.45 KiB) Tiedosto ladattu 986 kertaa
postie.zip
Postin lähetys
(597.56 KiB) Tiedosto ladattu 1012 kertaa
Seuraavana päivänä poistetaan Backup-kansio ja luodaan uudestaan tilaa viemästä. Tämän voi tehdä varmistuksen lopussakin, mutta jotta näkisit kaiken toimineen oikein, kannattaa jättää se iltaan.
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Re: Palvelimen varmistus ilman ohjelmistoa

Viesti Kirjoittaja eero »

xcopy:n tilalla kannattaa käyttää robocopy-ohjelmaa.
robocopy.exe.txt
Robocopy
(78 KiB) Tiedosto ladattu 1115 kertaa
Komento on:
robocopy D:\Varmistus2\loki D:\Varmistus2\1 /COPYALL /E /SEC /LOG:D:\Varmistus2\loki.txt /TS /FP /NP

/COPYALL = Kopioi kaikki hakemistot
/E = Kopio myös tyhjät hakemistot ja niiden alihakemistot
/LOG:D:\Varmistus2\loki.txt = Lokitiedostotn sijainti
/TS = Sisältää lähdetiedoston aikaleiman lokissa
/FP = Sisältää lähdetiedoston täyden polun lokissa
/NP = Ei kirjoita lokiin kopiontiprosentteja


Muuta tietysti polut oikeiksi

Lisää Postin lähetykseen loppuun liitetiedosto -a:loki.txt
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Lokin ohjaus uuteen paikkaan

Viesti Kirjoittaja eero »

Siirry rekisterieditorissa kohtaan HKCU\Software\Microsoft\Ntbackup\Log Files\
Muuta decimal value avaimesta Log File Count 1:si
Tyhjennä kaikki log-tiedostot kansiosta C:\Documents and Settings\%username%\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data
Lisää scriptiin komento xcopy "C:\Documents and Settings\tiina\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data\backup01.log" D:\TESTI\ /Y /F
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Posti- ja www-palvelimen varmistus

Viesti Kirjoittaja eero »

Joskus varmistuslevy saattaa olla domainissa ja ei ole järkevää pitää posti- ja ww-palvelinta domainissa vaan kokonaan eri verkossa. NETBIOS-portit ovat auki vain varmistuslevyltä www- ja posti-palvelimelle. Ei toisin päin. Tällöin varmistus on vähän hankalampaa. Tähän löytyy helppo ratkaisu. Tässä on kaksi eri palvelinta ja verkkolevy joihin varmistukset tulevat. Verkkolevy on tavallinen työasema johon on asennettu Windows XP ja kaksi kahden teratavun levyä.

Tee palvelimen varmistus palvelimen omalle levylle.
Esimerkissä www-palvelimen varmistus tehdää polkuun c:\varmistus\varmistus ja postipalvelimen varmistus polkuun d:\varmistus\varmistus

Molemmille palvelimille tehtävät jutut:

Jaetaan C:\Documents and Settings\%username%\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data-kansio

Muutetaan rekisteristä HKCU\Software\Microsoft\Ntbackup\Log Files\
Muuta decimal value avaimesta Log File Count 1:ksi


www-palvelin

Jaetaan C:\varmistus

Luodaan backup.bks

Koodi: Valitse kaikki

C:\
SystemState
Varmistaa koko C-aseman ja SystemStaten

Tehdään luojapoista.bat. Tämä tyhjentää vanhan varmistuksen tilaa viemästä.

Koodi: Valitse kaikki

rmdir c:\Varmistus\Varmistus /s /q
md c:\Varmistus\Varmistus
Ajetaan tiedosto ajastetusti esim. yhdeksältä illalla.

Luodaan varmista.bat

Koodi: Valitse kaikki

C:\MySQL_administrator\MySQLAdministrator.exe "-UDC:\Documents and Settings\Administrator\Application Data\MySQL\" "-cVarmistus" "-bpMySQLvarm" "-btC:\Varmistus\Varmistus\" "-bxMySQLvarm"
C:\WINDOWS\system32\ntbackup.exe backup "@C:\Varmistus\backup.bks" /a /d "Set created 17.7.2009 at 11:45" /v:yes /r:no /rs:no /hc:off /m normal /j "backup" /l:s /f "c:\Varmistus\Varmistus\%DATE%_Backup.bkf"
Ensimmäinen rivi suorittaa MySQL-kannan varmistuksen (tehty MySQL administrator:lla) ja toinen rivi varsinaisen palvelimen varmistuksen.

Ajetaan varmista.bat ajastetusti esim. varttia yli yhdeksän illalla.

Voitaisiin tehdä myös kevyempi varmistus jossa varmistetaan vain MySQL-kannat, PHP-, Apache- ja MySQL administrator-kansiot. Tämä säilyttäisi asetukset ja tarvittavat tiedostot.


Postipalvelin:

Postipalvelimella tehdään vain sähköpostiohjelman omat varmistukset. Tämä varmistus on sisällytetty ohjelman toimintoihin.
Ohjelma luo oman kansion varmistuksille.
MySQL tekee omat varmistukset ajastetusti.


Verkkolevy:

Luodaan C:\varmistus-kansio
Kopioidaan kansioon
  • postie.exe
    RMEMPTY.exe
    robocopy.exe
    7za.exe
7za465.zip
Seven zip-pakkausohjelma
(352.52 KiB) Tiedosto ladattu 974 kertaa
Muut löytyvät ylempää.

Luodaan Poistatiedostot.vbs

Koodi: Valitse kaikki

' Poistaa vanhat tiedostot annetusta kansiosta ja kaikista alikansioista
' Komento: cscript poistatiedostot.vbs \\levyvarmistus\varmistus 7 
'   Selitys: Poistaa seitsemän päivää vanhemmat tiedostot kansiosta \\levyvarmistus\varmistus
Set objArgs = WScript.Arguments
FolderName =objArgs(0)
Days=objArgs(1)
'logfile = "D:\Poistettu.log"
set fso = createobject("scripting.filesystemobject")
set folders = fso.getfolder(FolderName)
datetoday = now()
newdate = dateadd("d", Days*-1, datetoday)
wscript.echo "Tanaan:" & now()
wscript.echo "Poistetaan tiedostot jotka ovat vanhempia kuin :" & newdate 
wscript.echo "________________________________________________"
wscript.echo ""
recurse folders 
wscript.echo ""
wscript.echo "Poistettu onnistuneesti tiedostot jotka ovat vanhempia kuin :" & newdate 
wscript.echo "________________________________________________"

sub recurse( byref folders)
  set subfolders = folders.subfolders
  set files = folders.files
  wscript.echo ""
  wscript.echo "Poistetaan tiedostot kansiosta:" & folders.path
  wscript.echo "__________________________________________________________________________"
  for each file in files
    if file.datelastmodified < newdate then
      wscript.echo "Poistetaan " & folders.path & "\" & file.name & " Viimeksi muokattu: " & file.datelastmodified
      on error resume next
    file.delete
    folder.delete
    end if
    
  next  

  for each folder in subfolders
    recurse folder
  next  

  set subfolders = nothing
  set files = nothing

end sub

Luodaan kopio.bat

Koodi: Valitse kaikki

cscript C:\Varmistus\poistatiedostot.vbs E:\Varmistus\www\ 31
cscript C:\Varmistus\poistatiedostot.vbs D:\Posti\ 21
C:\Varmistus\rmempty.exe D:\Posti\
robocopy \\83.148.248.142\varmistus\Varmistus E:\Varmistus\www\ /COPYALL /E /SEC /LOG:C:\Varmistus\kopio_loki.txt /TS /FP /NP
robocopy \\83.148.248.143\backup D:\Posti\ /COPYALL /E /SEC /LOG+:C:\Varmistus\kopio_loki.txt /TS /FP /NP
del C:\Varmistus\postin_varmistus_loki.txt /F /Q
del C:\Varmistus\www_varmistus_loki.txt /F /Q
del C:\Varmistus\lokit.zip /F /Q
xcopy \\83.148.248.143\data\backup01.log C:\Varmistus\
ren backup01.log postin_varmistus_loki.txt
xcopy \\83.148.248.142\data\backup01.log C:\Varmistus\
ren backup01.log www_varmistus_loki.txt
7za a -tzip lokit.zip *.txt
C:\varmistus\postie.exe -host:smtp.ebaana.net -to:eero.lehtinen@poytya.fi,joni.reivonen@poytya.fi -from:admin@poytya.fi -s:"WWW- ja postipalvelimen varmistus" -msg:"MOI. Katso liitteesta tiedot =)" -a:lokit.zip

cscript C:\Varmistus\poistatiedostot.vbs E:\Varmistus\www\ 31
# Poistaa kaikki yli 31 päivää vanhat varmistukset www-palvelimen varmistuksista

cscript C:\Varmistus\poistatiedostot.vbs D:\Posti\ 21
# Poistaa kaikki yli 21 päivää vanhat varmistukset posti-palvelimen varmistuksista

C:\Varmistus\rmempty.exe D:\Posti\
# Tyhjentää tyhjät kansiot postipalvelimen varmistuskansiosta. Huomaa, että postaa myös varsinaisen kansion jos on tyhjä. Laita ekalla kerralla joku tiedosto sinne jonka voit poistaa myöhemmin tai anna scriptin tehdä se.

robocopy \\***.***.***.142\varmistus\Varmistus E:\Varmistus\www\ /COPYALL /E /SEC /LOG:C:\Varmistus\kopio_loki.txt /TS /FP /NP
robocopy \\***.***.***.143\backup D:\Posti\ /COPYALL /E /SEC /LOG+:C:\Varmistus\kopio_loki.txt /TS /FP /NP
# Kopioi varmistukset palvelimilta verkkovarmistuslevylle ja kirjoittaa lokin kopioinnista

del C:\Varmistus\postin_varmistus_loki.txt /F /Q
del C:\Varmistus\www_varmistus_loki.txt /F /Q
del C:\Varmistus\lokit.zip /F /Q
# Poistaa vanhat tekstitiedostot ja pakatut tiedostot

xcopy \\83.148.248.143\data\backup01.log C:\Varmistus\
# Kopioi varmistuslokin palvelimelta

ren backup01.log postin_varmistus_loki.txt
# Uudelleennimeää varmistuslokin pakkaamista varten

xcopy \\83.148.248.142\data\backup01.log C:\Varmistus\
ren backup01.log www_varmistus_loki.txt

7za a -tzip lokit.zip *.txt
# Pakkaa kaikki lokitiedostot yhdeksi tiedostoksi sillä postin lähetys sallii vain yhden liitteen tai muuten se muuttuu maksulliseksi

C:\varmistus\postie.exe -host:smtp.ebaana.net -to:eero.lehtinen@joku.fi,joku.muu@jokumuu.fi -from:admin@muu.fi -s:"WWW- ja postipalvelimen varmistus" -msg:"MOI. Katso liitteesta tiedot =)" -a:lokit.zip
# Lähettää postin liitteineen
Vastaa Viestiin