|
Fikk plutselig behov for et enkelt backupscript idag.
Det skulle helt enkelt ta backup av en fil (en access-database) manuellt ved behov, ved hjelp av en snarvei på skrivebordet, og automatisk en gang i døgnet. Jah...,
@echo off copy /y access.mbd backupavaccess.mbd
-ikke sant?, jo egentlig, men...
hva om man, iom at dette er snakk om en database, vil ha klokke og dato i filnavnet? -sånn at man kan ta backup underveis og ha en viss ehm..., backup-endrings-historikk (blæh..) på endringene man gjør? Joda variabler... %date% og %time% er fine ting, men dette egner seg ikke i filnavn på grunn av ugyldige tegn som ":" og formater som ikke er så bra å ha med tanke på sortering av filene i ettertid, så her må man mekke litt:
@echo off REM spesifisere variabler REM Dato i "sorteringsvennlig" format (ISO): YYYY-MM-DD SET DAGENSDATO=%date:~6,8%-%date:~3,2%-%date:~0,2%
REM Endre fra HH:MM:SS til HH-MM-SS for å kunne bruke dette i filnavn. SET Klokke=%Time% SET Klokke=%Klokke:~0,8% SET Klokke=%Klokke::=~-%
copy /y access.mdb c:\BackupFolder\Backup_%DAGENSDATO%_%Klokke%.mdb
Dette skulle gjøre susen, sånn helt enkelt... -scriptet legges inn i mappa der filen jeg vil ta backup av ligger, jeg legger inn en oppgave i "Planlagte Oppgaver" til windows, en snarvei på skriverbordet, og ting er i boks..
...nesten da. Hvordan ser dette ut om ett år når databasen blir større og man har kjørt scriptet 365 ganger -ihvertfall? Joo, mange filer og mye plass... Dette må man jo selvfølgelig finne en løsning på...
Forfiles fra resource-kitet til M$ kan gjøre jobben, så etter å ha lastet ned fra (FTP-Link) : Microsoft og lagt denne i samme folder som backupscriptet, lagt til denne kommandoen sist i bat-fila så skulle man komme ut av det ganske bra:
REM Slette filer som er 10 dager gamle Forfiles -p "<sti>" -s -m *.* -d-10 -c "cmd /c del @FILE"
NB: Kontroller nøye hvor forfiles gjør jobben, du har mange filer på pc'n som er eldre enn 10 dager gamle, og jeg vil ikke ha skylda for at du mister noe.. :) |