Säkerhetskopiering

Avdelningen för spel och annan vardaglig mjukvara.
Post Reply
Assaser2
Posts: 94
Joined: 2002-04-10 23:12:57
Contact:

Säkerhetskopiering

Post by Assaser2 »

Kanske fel avdelning, men jag provar här.
Har ett värdefullt excel-dokument som jag vill ska säkerhetskopieras tilll 3 olika ställen. lokalt och 2 nätverkshårddiskar.

Fick för mig att en batch-fil kunde lösa det, men fick inte ihop det.
Någon som har ett tips?
User avatar
nva
Hedersbit
Posts: 2517
Joined: 2002-03-07 23:34:21
Location: Skåneland
Contact:

Post by nva »

Tja det borde ju fungera med ett batch-script. Varför gick det inte?
The three most dangerous things in the world are a programmer with a soldering iron, a hardware type with a program patch and a user with an idea.

In theory, there is no difference between theory and practice. But, in practice, there is.
Assaser2
Posts: 94
Joined: 2002-04-10 23:12:57
Contact:

Post by Assaser2 »

när jag kommer till jobbet ska jag skicka det, så får du kika på det och se om du kan avgöra vad jag missat. :P


copy "c:\test\test.log" "c:\Back\test2.log" /v
if exist "c:\Back\test2.log" copy "c:\test\test.log" "c:\Back\test3.log"

copy "c:\test\test.log" "G:\bilder\test2.log" /v
if exist "G:\bilder\test2.log" copy "c:\test\test.log" "G:\bilder\test3.log"

copy "c:\test\test.log" "G:\nya\test2.log" /v
if exist "G:\nya\test2.log" copy "c:\test\test.log" "G:\nya\test3.log"



Vad jag vill åstadkomma är att test.log först skall sparas till 3 olika ställen med namnet test2. OM test2 finns, låt då test2 vara orörd och skapa test3. vad är galet?
EnRIz
Posts: 176
Joined: 2005-12-29 0:30:44
Location: Malung

Post by EnRIz »

Jag använde det här för att kopiera ett antal filer till en mapp på disken samt till en utdelad mapp på nätverket. Skriptet innehåller lite onödiga saker men jag provade mig fram, och det blev en del skräp kvar.

Code: Select all

@echo off
REM VENTRILO SERVER BACKUP SCRIPT

REM Väljer parametrar för XCOPY - ANVÄNDS INTE!!!
REM set backupcmd=xcopy /s /c /d /e /h /i /r /y

REM Fixar så att timestamps funkar och är i ett bra format för mappnamn.
set hour=%time:~0,2%
if "%hour:~0,1%"==" " set hour=0%time:~1,1%
set folder=%hour%%time:~3,2%
REM %backupcmd% "...source dir..." "%drive%\%folder%\...destination dir..."

REM Skapar Mappstruktur med datum och tidpunkt.
SET Today=%date%

SET BackupDir="Backup"
MKDIR %BackupDir%

SET BackupDir="Backup\%Today%"
MKDIR %BackupDir%

SET BackupDir="Backup\%Today%\%folder%"
MKDIR %BackupDir%

REM Kopiera till avsedd mapp.

COPY ventrilo_srv.ini "%BackupDir%\ventrilo_srv.ini"
COPY ventrilo_srv.log "%BackupDir%\ventrilo_srv.log"
COPY ventrilo_srv.ban "%BackupDir%\ventrilo_srv.ban"
COPY ventrilo_srv.usr "%BackupDir%\ventrilo_srv.usr"
COPY ventrilo_srv.chn "%BackupDir%\ventrilo_srv.chn"
COPY Ventrilo_Server_Log.log "%BackupDir%\Ventrilo_Server_Log.log"

REM Kopiera till Datorn EnRIz Utdelade mapp.

SET BackupDir="Z:"

NET USE Z: "\\EnRIz\Ventrilo Server Backup"

COPY ventrilo_srv.ini "%BackupDir%\ventrilo_srv.ini"
COPY ventrilo_srv.log "%BackupDir%\ventrilo_srv.log"
COPY ventrilo_srv.ban "%BackupDir%\ventrilo_srv.ban"
COPY ventrilo_srv.usr "%BackupDir%\ventrilo_srv.usr"
COPY ventrilo_srv.chn "%BackupDir%\ventrilo_srv.chn"
COPY Ventrilo_Server_Log.log "%BackupDir%\Ventrilo_Server_Log.log"
NET USE Z: /DELETE
Koden är inte bra kommenterad, men jag kan nog hjälpa dig om du har några frågor.
Gaming/Work:Q8200@2.33GHz,4 GB DDR2 RAM,HD4850,2xSpinPoint 500 GB + 1 TB Caviar Green Power,Windows 7 Ultimate x64

Server:P4@3GHz,2 GB RAM,150 GB HDD,Windows XP

Macbook Pro 13":C2D@2.4GHz, 4GB DDR3 RAM,250GB,OSX Snow Leopard.
User avatar
nva
Hedersbit
Posts: 2517
Joined: 2002-03-07 23:34:21
Location: Skåneland
Contact:

Post by nva »

Assaser2 wrote:när jag kommer till jobbet ska jag skicka det, så får du kika på det och se om du kan avgöra vad jag missat. :P


copy "c:\test\test.log" "c:\Back\test2.log" /v
if exist "c:\Back\test2.log" copy "c:\test\test.log" "c:\Back\test3.log"

copy "c:\test\test.log" "G:\bilder\test2.log" /v
if exist "G:\bilder\test2.log" copy "c:\test\test.log" "G:\bilder\test3.log"

copy "c:\test\test.log" "G:\nya\test2.log" /v
if exist "G:\nya\test2.log" copy "c:\test\test.log" "G:\nya\test3.log"



Vad jag vill åstadkomma är att test.log först skall sparas till 3 olika ställen med namnet test2. OM test2 finns, låt då test2 vara orörd och skapa test3. vad är galet?
Om jag tolkar dig rätt så vill du alltså kopiera test.log -> test2.log en gång, sen kommer den att finnas och då vill du i fortsättningen kopiera test.log -> test3.log (såvida du inte raderar test2.log manuellt någon gång)? Isåfall borde du göra såhär:

Code: Select all

if not exist "c:\Back\test2.log" (
    copy "c:\test\test.log" "c:\Back\test2.log"
) else (
    copy "c:\test\test.log" "c:\Back\test3.log" /y
)
If-satser i en batch är kinkiga så därför är det viktigt att du har paranteser runt kommandot om du ska ha med en else. Mer info finns i "if /y" i en dos-prompt.
The three most dangerous things in the world are a programmer with a soldering iron, a hardware type with a program patch and a user with an idea.

In theory, there is no difference between theory and practice. But, in practice, there is.
Assaser2
Posts: 94
Joined: 2002-04-10 23:12:57
Contact:

tack!

Post by Assaser2 »

skall prova detta under morgondagen..
men kan den även byggas på, så att jag tex har 4 eller 5 ... eller oändligt med nya filer?
som sedan nollställs manuellt.
Är ett program för kvalitetskontroll, informationen får verkligen inte förstöras om man skulle tabba sig några dagar. scriptet är tänkt att köras 1 eller 2 gånger om dagen.. och skall då kunna ha 2-3 veckor med backuper för att gardera mig.
User avatar
nva
Hedersbit
Posts: 2517
Joined: 2002-03-07 23:34:21
Location: Skåneland
Contact:

Post by nva »

Man kan göra en hel del med batch-kommandon, men om det är kritiskt att backupen fungerar korrekt i alla lägen så rekommenderar jag verkligen att du fixar ett ordentligt backup-program med funktioner för att rotera istället.

Men i vilket fall som helst, här är ett exempel på hur du kan göra för att göra tio backuper och sen fortsätta skriva över den sista filen tills du helt enkelt raderar någon av de gamla.

Code: Select all

@echo off
set file=C:\test
set backup_step=1
set max_backup_step=10

:check
if "%backup_step%"=="%max_backup_step%" (
	goto :final_backup
)
if not exist "%file%.%backup_step%.log" (
	copy "%file%.log" "%file%.%backup_step%.log"
	goto :end
) else (
	set /a backup_step+=1
	goto :check
)

:final_backup
copy "%file%.log" "%file%.%max_backup_step%.log" /y

:end
@echo on
The three most dangerous things in the world are a programmer with a soldering iron, a hardware type with a program patch and a user with an idea.

In theory, there is no difference between theory and practice. But, in practice, there is.
Assaser2
Posts: 94
Joined: 2002-04-10 23:12:57
Contact:

Post by Assaser2 »

@echo off
set file=C:\test\test.xls
set backup_step=1
set max_backup_step=10

:check
if "%backup_step%"=="%max_backup_step%" (
goto :final_backup
)
if not exist "%file%.%backup_step%.log" (
copy "%file%.log" "%file%.%backup_step%.log"
goto :end
) else (
set /a backup_step+=1
goto :check
)

:final_backup
copy "%file%.log" "%file%.%max_backup_step%.log" /y

:end
@echo on

sådan ser koden ut nu...
Men ändå skriker CMD om att filen inte finns?!
mappen test ligger på C:\ och där finns också filen test.xls.

Även provat att köra bara "c:\test", som exemplet.
Men hittar ingen fil ändå..

Sen hittade jag inga kataloger för VAR mina backuper hamnar.
Annars, vet ni några vettiga backup-program som är gratis? ;D
User avatar
nva
Hedersbit
Posts: 2517
Joined: 2002-03-07 23:34:21
Location: Skåneland
Contact:

Post by nva »

Filändelserna var bara exempel, du får t.ex. ändra "%file%.%backup_step%.log" till "%file%.%backup_step%.xls" (gör likadant med alla filnamnen i scriptet). Som det är nu i ditt script så letar den efter filen "C:\test\test.xls.log".

Finns säkert nått vettigt, och gratis, backup-program på sourceforge.
The three most dangerous things in the world are a programmer with a soldering iron, a hardware type with a program patch and a user with an idea.

In theory, there is no difference between theory and practice. But, in practice, there is.
Post Reply