Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PRSolucaoWeb

Backup em ASP

Recommended Posts

Boa tarde galera tudo bem?

Gostaria de saber como eu consigo fazer um sistema para backup do meu banco de dados que está em SQL SERVER.

Dentro do meu sistema eu colocar uma função para fazer backup.

Tem como?

 

Agradeço desde já a ajuda.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se algum ajuda:

dim fso
set fso = createobject("scripting.filesystem")
fso.copyfolder "C:\mysql\data\SeuDB","C:\backup\SeuDB" & day(now) & month(now) & year(now),true

OU

Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open "Driver={MySQL ODBC 5.1 Driver}; SERVER=200.145.41.20; DATABASE=mybase; UID=myuser; PWD=mypass;"
strBack="mysqldump -u myUid -p mypass mydb > myBack.sql"
Conexao.Execute(strBack) 
Response.Write "Backup Efetuado!"

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wilnet, nessa linha do codigo eu tenho que alterar tambem?

strBack="mysqldump -u myUid -p mypass mydb > myBack.sql"

O que seria o myUid?

 

O mypass é a senha de acesso ao banco de dados correto?

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites


Este exemplo é usado para fazer backup de todos os arquivos que estivessem e determinada pasta para isso basta executar o backup.asp

backup.asp

<%@ Language=VBScript %>
<!--#include file="zipador.asp"-->
<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set PASTA = FSO.GetFolder(server.mapPath("/bd/"))
Set Arquivos = Pasta.Files

Dim objTar

Set objTar = New Tarball

FOR EACH arquivo IN arquivos

objTar.AddFile arquivo
NEXT

objTar.WriteTar

set FSO = nothing

Response.Write "<br>Arquivos copiados e compactados com sucesso!"
%>



e o code para zipar esta no zipador.asp

zipador.asp

<%
Class Tarball

Public TarFilename
Public UserID
Public UserName
Public GroupID
Public GroupName
Public Permissions
Public BlockSize
Public IgnorePaths
Public BasePath

Private objFiles
Private objMemoryFiles

Public Sub AddFile(sFilename)
objFiles.Add sFilename,sFilename
End Sub

Public Sub RemoveFile(sFilename)
objFiles.Remove sFilename
End Sub

Public Sub AddMemoryFile(sFilename,sContents)
objMemoryFiles.Add sFilename,sContents
End Sub

Public Sub RemoveMemoryFile(sFilename)
objMemoryFiles.Remove sFilename
End Sub

Public Sub WriteTar()
Dim objStream, objInStream, lTemp, aFiles

Set objStream = Server.CreateObject("ADODB.Stream")
Set objInStream = Server.CreateObject("ADODB.Stream")

objStream.Type = 2
objStream.Charset = "x-ansi"
objStream.Open

objInStream.Type = 2
objInStream.Charset = "x-ansi"

aFiles = objFiles.Items

For lTemp = 0 to UBound(aFiles)
objInStream.Open
objInStream.LoadFromFile aFiles(lTemp)
objInStream.Position = 0
ExportFile aFiles(lTemp),objStream,objInStream
objInStream.Close
Next

aFiles = objMemoryFiles.Keys

For lTemp = 0 to UBound(aFiles)
objInStream.Open
objInStream.WriteText objMemoryFiles.Item(aFiles(lTemp))
objInStream.Position = 0
ExportFile aFiles(lTemp),objStream,objInStream
objInStream.Close
Next

objStream.WriteText String(BlockSize,Chr(0))
objStream.Position = 0
objStream.Type = 1

Response.AddHeader "Content-Disposition","filename=" & TarFilename
Response.ContentType = "application/x-zip"
Response.BinaryWrite objStream.Read

objStream.Close
Set objStream = Nothing
Set objInStream = Nothing
End Sub

Private Sub ExportFile(sFilename,objOutStream,objInStream)
Dim lStart, lSum, lTemp

lStart = objOutStream.Position

If IgnorePaths Then
lTemp = InStrRev(sFilename,"\")
if lTemp <> 0 then
sFilename = Right(sFilename,Len(sFilename) - lTemp)
end if
sFilename = BasePath & sFilename
End If

objOutStream.WriteText Left(sFilename & String(100,Chr(0)),100)
objOutStream.WriteText "100" & Right("000" & Oct(Permissions),3) & " " & Chr(0)
objOutStream.WriteText Right(String(6," ") & CStr(UserID),6) & " " & Chr(0)
objOutStream.WriteText Right(String(6," ") & CStr(GroupID),6) & " " & Chr(0)
objOutStream.WriteText Right(String(11,"0") & Oct(objInStream.Size),11) & Chr(0)
objOutStream.WriteText Right(String(11,"0") & Oct(dateDiff("s","1/1/1970 10:00",now())),11) & Chr(0)
objOutStream.WriteText " 0" & String(100,Chr(0))
objOutStream.WriteText "ustar " & Chr(0)
objOutStream.WriteText Left(UserName & String(32,Chr(0)),32)
objOutStream.WriteText Left(GroupName & String(32,Chr(0)),32)
objOutStream.WriteText " 40 " & String(4,Chr(0))
objOutStream.WriteText String(167,Chr(0))
objInStream.CopyTo objOutStream

if (objInStream.Size Mod BlockSize) > 0 then
objOutStream.WriteText String(BlockSize - (objInStream.Size Mod BlockSize),Chr(0))
end if

lSum = 0
objOutStream.Position = lStart

For lTemp = 1 To BlockSize
lSum = lSum + (Asc(objOutStream.ReadText(1)) And &HFF&)
Next

objOutStream.Position = lStart + 148
objOutStream.WriteText Right(String(7,"0") & Oct(lSum),7) & Chr(0)

objOutStream.Position = objOutStream.Size
End Sub

Private Sub Class_Initialize()
Set objFiles = Server.CreateObject("Scripting.Dictionary")
Set objMemoryFiles = Server.CreateObject("Scripting.Dictionary")

BlockSize = 512
Permissions = 438

UserID = 0
UserName = "root"
GroupID = 0
GroupName = "root"

IgnorePaths = True
BasePath = "backup_sindrural/"

TarFilename = "bd_sindrural_" & date & "_" & time & ".zip"
'TarFilename = "bd_sindrural_"& day(date) &""& month(date) &""& year(date) &""& hour(time) &""& minute(time) &""& second(time) &".zip"
End Sub

Private Sub Class_Terminate()
Set objMemoryFiles = Nothing
Set objFiles = Nothing
End Sub
End Class
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

maravilha... eu sempre uso esse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este exemplo é usado para fazer backup de todos os arquivos que estivessem e determinada pasta para isso basta executar o backup.asp

 

backup.asp

 

<%@ Language=VBScript %>

<!--#include file="zipador.asp"-->

<%

Set FSO = Server.CreateObject("Scripting.FileSystemObject")

Set PASTA = FSO.GetFolder(server.mapPath("/bd/"))

Set Arquivos = Pasta.Files

 

Dim objTar

 

Set objTar = New Tarball

 

FOR EACH arquivo IN arquivos

 

objTar.AddFile arquivo

NEXT

 

objTar.WriteTar

 

set FSO = nothing

 

Response.Write "<br>Arquivos copiados e compactados com sucesso!"

%>

 

 

 

e o code para zipar esta no zipador.asp

 

zipador.asp

 

<%

Class Tarball

 

Public TarFilename

Public UserID

Public UserName

Public GroupID

Public GroupName

Public Permissions

Public BlockSize

Public IgnorePaths

Public BasePath

 

Private objFiles

Private objMemoryFiles

 

Public Sub AddFile(sFilename)

objFiles.Add sFilename,sFilename

End Sub

 

Public Sub RemoveFile(sFilename)

objFiles.Remove sFilename

End Sub

 

Public Sub AddMemoryFile(sFilename,sContents)

objMemoryFiles.Add sFilename,sContents

End Sub

 

Public Sub RemoveMemoryFile(sFilename)

objMemoryFiles.Remove sFilename

End Sub

 

Public Sub WriteTar()

Dim objStream, objInStream, lTemp, aFiles

 

Set objStream = Server.CreateObject("ADODB.Stream")

Set objInStream = Server.CreateObject("ADODB.Stream")

 

objStream.Type = 2

objStream.Charset = "x-ansi"

objStream.Open

 

objInStream.Type = 2

objInStream.Charset = "x-ansi"

 

aFiles = objFiles.Items

 

For lTemp = 0 to UBound(aFiles)

objInStream.Open

objInStream.LoadFromFile aFiles(lTemp)

objInStream.Position = 0

ExportFile aFiles(lTemp),objStream,objInStream

objInStream.Close

Next

 

aFiles = objMemoryFiles.Keys

 

For lTemp = 0 to UBound(aFiles)

objInStream.Open

objInStream.WriteText objMemoryFiles.Item(aFiles(lTemp))

objInStream.Position = 0

ExportFile aFiles(lTemp),objStream,objInStream

objInStream.Close

Next

 

objStream.WriteText String(BlockSize,Chr(0))

objStream.Position = 0

objStream.Type = 1

 

Response.AddHeader "Content-Disposition","filename=" & TarFilename

Response.ContentType = "application/x-zip"

Response.BinaryWrite objStream.Read

 

objStream.Close

Set objStream = Nothing

Set objInStream = Nothing

End Sub

 

Private Sub ExportFile(sFilename,objOutStream,objInStream)

Dim lStart, lSum, lTemp

 

lStart = objOutStream.Position

 

If IgnorePaths Then

lTemp = InStrRev(sFilename,"\")

if lTemp <> 0 then

sFilename = Right(sFilename,Len(sFilename) - lTemp)

end if

sFilename = BasePath & sFilename

End If

 

objOutStream.WriteText Left(sFilename & String(100,Chr(0)),100)

objOutStream.WriteText "100" & Right("000" & Oct(Permissions),3) & " " & Chr(0)

objOutStream.WriteText Right(String(6," ") & CStr(UserID),6) & " " & Chr(0)

objOutStream.WriteText Right(String(6," ") & CStr(GroupID),6) & " " & Chr(0)

objOutStream.WriteText Right(String(11,"0") & Oct(objInStream.Size),11) & Chr(0)

objOutStream.WriteText Right(String(11,"0") & Oct(dateDiff("s","1/1/1970 10:00",now())),11) & Chr(0)

objOutStream.WriteText " 0" & String(100,Chr(0))

objOutStream.WriteText "ustar " & Chr(0)

objOutStream.WriteText Left(UserName & String(32,Chr(0)),32)

objOutStream.WriteText Left(GroupName & String(32,Chr(0)),32)

objOutStream.WriteText " 40 " & String(4,Chr(0))

objOutStream.WriteText String(167,Chr(0))

objInStream.CopyTo objOutStream

 

if (objInStream.Size Mod BlockSize) > 0 then

objOutStream.WriteText String(BlockSize - (objInStream.Size Mod BlockSize),Chr(0))

end if

 

lSum = 0

objOutStream.Position = lStart

 

For lTemp = 1 To BlockSize

lSum = lSum + (Asc(objOutStream.ReadText(1)) And &HFF&)

Next

 

objOutStream.Position = lStart + 148

objOutStream.WriteText Right(String(7,"0") & Oct(lSum),7) & Chr(0)

 

objOutStream.Position = objOutStream.Size

End Sub

 

Private Sub Class_Initialize()

Set objFiles = Server.CreateObject("Scripting.Dictionary")

Set objMemoryFiles = Server.CreateObject("Scripting.Dictionary")

 

BlockSize = 512

Permissions = 438

 

UserID = 0

UserName = "root"

GroupID = 0

GroupName = "root"

 

IgnorePaths = True

BasePath = "backup_sindrural/"

 

TarFilename = "bd_sindrural_" & date & "_" & time & ".zip"

'TarFilename = "bd_sindrural_"& day(date) &""& month(date) &""& year(date) &""& hour(time) &""& minute(time) &""& second(time) &".zip"

End Sub

 

Private Sub Class_Terminate()

Set objMemoryFiles = Nothing

Set objFiles = Nothing

End Sub

End Class

%>

por partes xanbur eu uso um arquivo de conexao com meu banco:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Dim ConnectString, conn
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/dados/CYDER.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
%>

salvei esta pagina como conn.asp e faço o include dela em tds as paginas ke mexo com banco sei ke nao posso ter 2 includes na mesma pagina entao a primeira parte do seu codigo ficari assim?

 

<%@ Language=VBScript %>

<!--#include file="zipador.asp"-->

<%

Set FSO = Server.CreateObject("Scripting.FileSystemObject")

Set PASTA = FSO.GetFolder(Server.MapPath("/dados/CYDER.mdb"))

Set Arquivos = Pasta.Files

 

Dim objTar

 

Set objTar = New Tarball

 

FOR EACH arquivo IN arquivos

 

objTar.AddFile arquivo

NEXT

 

objTar.WriteTar

 

set FSO = nothing

 

Response.Write "<br>Arquivos copiados e compactados com sucesso!"

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites
sei ke nao posso ter 2 includes na mesma pagina

 

uai.. pq não?? pode sim, mas usando bom senso, claro..

inclusive, isso é 1 dos princípios da orientação a objeto (reutilização de código).

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc também pode usar Server.Execute

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

uai.. pq não?? pode sim, mas usando bom senso, claro..

inclusive, isso é 1 dos princípios da orientação a objeto (reutilização de código).

fernando eu tentei usar uma vez e deu erro de algo aprecido nao lembro ao certo so podia usar um include por pagina asp, por isso falei

 

você também pode usar Server.Execute

xanbur vc sabe que sou noob, como fica com serve.execute coloca na pratica ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc colocou os dois include e qual o erro gerado ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você colocou os dois include e qual o erro gerado ?

faz tempo que fiz isso e deu erro, mas minha duvida é outra xanbur como utilizo o seu codigo apra backup? uso access como banco de dados e como falei antes criei uma pagina chamada conn.asp que faz a conexao no banco de dados ae usando o include quando preciso usar o banco de dados segue a pagina:

conn.asp

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Dim ConnectString, conn
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/dados/CYDER.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
%>
como faço para fazer o backup?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você também pode usar Server.Execute

Xanburzum vamos la fiz como vc pediu:

criei 2 arquivos asp um com nome backup e outro com zipador,

no backup mudei o caminho para a pasta do meu site ficou assim:

<%@ Language=VBScript %>
<!--#include file="zipador.asp"-->
<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set PASTA = FSO.GetFolder(server.mapPath("/cyder/"))
Set Arquivos = Pasta.Files
Dim objTar
Set objTar = New Tarball
FOR EACH arquivo IN arquivos
objTar.AddFile arquivo
NEXT
objTar.WriteTar
set FSO = nothing
Response.Write "<br>Arquivos copiados e compactados com sucesso!"
%>
fez o download zipado direitinho blz, mas... (sempre tem um mas) nao baixou as outras pastas que tem dentro,a minha estrutura de pasta é assim
Cyder

.........keppel

.........imagens
.........bd
e os arquivos asp e html que ficam na raiz da pasta cyder so esses foram feito downloads as pastas nao.
o que ja tentei?
Set PASTA = FSO.GetFolder(server.mapPath("/cyder/"),("/cyder/keppel/"))
Set PASTA = FSO.GetFolder(server.mapPath("/cyder/")&"/cyder/keppel/"))
Set PASTA = FSO.GetFolder(server.mapPath("/cyder/","/cyder/keppel/"))
Set PASTA = FSO.GetFolder(server.mapPath("/cyder/"&/cyder/keppel/"))
Set PASTA = FSO.GetFolder(server.mapPath("/cyder/"))
Set PASTA1= FSO.GetFolder(server.mapPath("/cyder/keppel/"))
nenhum deles baixou as duas pastas uma dentro da outra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

erro que me retorna usando dois includes na mesma pagina

 

Páginas do Active Server erro 'ASP 0141'

Comando de página repetido

/cyder/conn.asp, line 1

O comando @ somente pode ser usado uma vez no Active Server Page.

fiz da seguinte maneira:

<!--#include file="zipador.asp","conn.asp"-->

aparentemente deu certo nao deu mais erro tentei fazer um select case so que me retorna o seuinte erro

Erro de compilação do Microsoft VBScript erro '800a0411'

Redefinição do nome

/cyder/backup.asp, line 47

Dim objTar
----^

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc pode colocar a conexão, que seria um include, dentro do include zipador.asp, ou sej a o código de conexão antes do código de zipar

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzun encontrei o erro:

no meu codigo de conexão colokei o codigo para caracteres especiais e na pagina asp tava usando ele novamente ae deu o erro.

 

Mas a segunda duvida como faço para baixar td a pasta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem que fazer um for nas pastas, junto com o caminho


e dá uma olhada aqui também

Compartilhar este post


Link para o post
Compartilhar em outros sites

teste este code:

 

backup.asp

<%@ Language=VBScript %>
<!--#include file="zipar.asp"-->
<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set PASTA = FSO.GetFolder(server.mapPath("/banco1/"))
Set Arquivos = Pasta.Files

Dim objTar

Set objTar = New Tarball

FOR EACH arquivo IN arquivos

objTar.AddFile arquivo
NEXT

objTar.WriteTar

set FSO = nothing

Response.Write "<br>Arquivos copiados e compactados com sucesso!"
%>


Abaixo o code para zipar

zipar.asp

<%
Class Tarball

Public TarFilename
Public UserID
Public UserName
Public GroupID
Public GroupName
Public Permissions
Public BlockSize
Public IgnorePaths
Public BasePath

Private objFiles
Private objMemoryFiles

Public Sub AddFile(sFilename)
objFiles.Add sFilename,sFilename
End Sub

Public Sub RemoveFile(sFilename)
objFiles.Remove sFilename
End Sub

Public Sub AddMemoryFile(sFilename,sContents)
objMemoryFiles.Add sFilename,sContents
End Sub

Public Sub RemoveMemoryFile(sFilename)
objMemoryFiles.Remove sFilename
End Sub

Public Sub WriteTar()
Dim objStream, objInStream, lTemp, aFiles

Set objStream = Server.CreateObject("ADODB.Stream")
Set objInStream = Server.CreateObject("ADODB.Stream")

objStream.Type = 2
objStream.Charset = "x-ansi"
objStream.Open

objInStream.Type = 2
objInStream.Charset = "x-ansi"

aFiles = objFiles.Items

For lTemp = 0 to UBound(aFiles)
objInStream.Open
objInStream.LoadFromFile aFiles(lTemp)
objInStream.Position = 0
ExportFile aFiles(lTemp),objStream,objInStream
objInStream.Close
Next

aFiles = objMemoryFiles.Keys

For lTemp = 0 to UBound(aFiles)
objInStream.Open
objInStream.WriteText objMemoryFiles.Item(aFiles(lTemp))
objInStream.Position = 0
ExportFile aFiles(lTemp),objStream,objInStream
objInStream.Close
Next

objStream.WriteText String(BlockSize,Chr(0))
objStream.Position = 0
objStream.Type = 1

Response.AddHeader "Content-Disposition","filename=" & TarFilename
Response.ContentType = "application/x-zip"
Response.BinaryWrite objStream.Read

objStream.Close
Set objStream = Nothing
Set objInStream = Nothing
End Sub

Private Sub ExportFile(sFilename,objOutStream,objInStream)
Dim lStart, lSum, lTemp

lStart = objOutStream.Position

If IgnorePaths Then
lTemp = InStrRev(sFilename,"\")
if lTemp <> 0 then
sFilename = Right(sFilename,Len(sFilename) - lTemp)
end if
sFilename = BasePath & sFilename
End If

objOutStream.WriteText Left(sFilename & String(100,Chr(0)),100)
objOutStream.WriteText "100" & Right("000" & Oct(Permissions),3) & " " & Chr(0)
objOutStream.WriteText Right(String(6," ") & CStr(UserID),6) & " " & Chr(0)
objOutStream.WriteText Right(String(6," ") & CStr(GroupID),6) & " " & Chr(0)
objOutStream.WriteText Right(String(11,"0") & Oct(objInStream.Size),11) & Chr(0)
objOutStream.WriteText Right(String(11,"0") & Oct(dateDiff("s","1/1/1970 10:00",now())),11) & Chr(0)
objOutStream.WriteText " 0" & String(100,Chr(0))
objOutStream.WriteText "ustar " & Chr(0)
objOutStream.WriteText Left(UserName & String(32,Chr(0)),32)
objOutStream.WriteText Left(GroupName & String(32,Chr(0)),32)
objOutStream.WriteText " 40 " & String(4,Chr(0))
objOutStream.WriteText String(167,Chr(0))
objInStream.CopyTo objOutStream

if (objInStream.Size Mod BlockSize) > 0 then
objOutStream.WriteText String(BlockSize - (objInStream.Size Mod BlockSize),Chr(0))
end if

lSum = 0
objOutStream.Position = lStart

For lTemp = 1 To BlockSize
lSum = lSum + (Asc(objOutStream.ReadText(1)) And &HFF&)
Next

objOutStream.Position = lStart + 148
objOutStream.WriteText Right(String(7,"0") & Oct(lSum),7) & Chr(0)

objOutStream.Position = objOutStream.Size
End Sub

Private Sub Class_Initialize()
Set objFiles = Server.CreateObject("Scripting.Dictionary")
Set objMemoryFiles = Server.CreateObject("Scripting.Dictionary")

BlockSize = 512
Permissions = 438

UserID = 0
UserName = "root"
GroupID = 0
GroupName = "root"

IgnorePaths = True
BasePath = "backup_sindrural/"

TarFilename = "bd_sindrural_" & date & "_" & time & ".zip"
'TarFilename = "bd_sindrural_"& day(date) &""& month(date) &""& year(date) &""& hour(time) &""& minute(time) &""& second(time) &".zip"
End Sub

Private Sub Class_Terminate()
Set objMemoryFiles = Nothing
Set objFiles = Nothing
End Sub
End Class
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.