Ajuda a criar comando para mandar backup para a cloud.

fansro

Power Member
Boas a todos antes de mais espero que tejam todos de boa saude,
È o seguinte, eu tenho um comando agendado nas tarefas do windows que me faz um backup da base de dados(sql) de um programa de faturaçao devido a ter +\- 8gb nesse comando penso que no fim é possivel adicionar para um ficheiro .rar. (ja andei a ensaiar e parece que estou quase lá), contudo devido aos virus que andam por ai etc, eu gostaria de ter uma copia na cloud, tipo dropbox ou gmail ou qualquer coisa, mas é o seguinte, eu no backup que faz da base de dados, esta defnido para no nome sair a data e a hora é que e retirada, após isso comprime, acho que depois mover o ficheiro tambem seria facil, a questão é como irei adquirir um plano basico(gratis) como faço para ele remover\substituir o 1º backup que la terá?
 
Estamos a falar de uma base de dados SQL Server?
Sim o comando ja faz o backup para uma pasta que atribui para um disco hdd, posso mandar direto para o link da cloud, mas a questao é que como isto faz o backup e atribui o nome de "backup_(data actual)_(hora atual)", faz com que crie sempre ficheiros diferentes.
a soluçao passa por nao por a hora e o dia entao ele gerará sempre um ficheiro igual pelo que ira substituir uma vez que o nome é igual, e depois adicionar o campo para comprimir para rar certo?
 
Corre outro comando para apagar ficheiros com mais de X dias por exemplo?
Ou mete tudo num bat, copia, se for com sucesso apaga files antigos.
 
Não de momento estava a fazer as cópias ao 12.30 e as 19.3 e guardava num HDD de 2tb. Contudo já consegui . Irei manter esses na mesma e fiz uma cópia em que as 19.30 faz um backup sempre com o mesmo nome(sendo com o mesmo nome e substitui o ficheiro ) que depois e comprimido para WinRAR e guarda na Dropbox e apaga o original mantendo só o ficheiro rar.
 
Mas assim só guardas 1, faz um script em batch ou powershell para apagar tudo menos os últimos n ou pela data como disse.
Neste caso o pc esta a fazer os seguintes backups. 12,50h faz um com data e hora actual depois faz um as 19.30 com data e hora actual (isto fica guardado num hdd), depois ás 19.35 esta a fazer um backup para a dropbox(dizem que nao é tao suscetivel a virus correto?), este da dropbox, esta sempre a ser substituido.

Que codigos posso usar para ele guardar por exemplo os ultimos 3 ou assim?
 
podes por exemplo todos os dias fazer os backups como fazes para o dropbox.
e todos os dias corres o comando

Código:
ForFiles /p "C:\dropbox\db_backup" /s /d -30 /c "cmd /c del @file
  • forfiles lista os ficheiros
  • /p na pasta
  • /s é ser recursivo (pasta e subpastas)
  • /d last modified , este caso modificados a mais de 30 dias
  • /c executa o comando, neste caso o del
ou seja, ficheiros na pasta dropbox com mais de 30 dias são apagados.
 
podes por exemplo todos os dias fazer os backups como fazes para o dropbox.
e todos os dias corres o comando

Código:
ForFiles /p "C:\dropbox\db_backup" /s /d -30 /c "cmd /c del @file
  • forfiles lista os ficheiros
  • /p na pasta
  • /s é ser recursivo (pasta e subpastas)
  • /d last modified , este caso modificados a mais de 30 dias
  • /c executa o comando, neste caso o del
ou seja, ficheiros na pasta dropbox com mais de 30 dias são apagados.
Vou exprimentar, adiciono isso no fim do batch certo?
 
podes por exemplo todos os dias fazer os backups como fazes para o dropbox.
e todos os dias corres o comando

Código:
ForFiles /p "C:\dropbox\db_backup" /s /d -30 /c "cmd /c del @file
  • forfiles lista os ficheiros
  • /p na pasta
  • /s é ser recursivo (pasta e subpastas)
  • /d last modified , este caso modificados a mais de 30 dias
  • /c executa o comando, neste caso o del
ou seja, ficheiros na pasta dropbox com mais de 30 dias são apagados.
Este codigo funcionou na perfeiçao.
Contudo agora acontece-me o seguinte. A base de dados normal tem 7gb e comprimida tem 500mb . Para guardar varios dias seguidos das 2 uma ou arranjo maneira de eliminar os ficheiros com a extensao .ba_k ou entao tenho de mandar criar o backup para o disco rigido e depois mover o comprimido para a dropbox.

Eu tenho o comando no bat que á frente do nome do ficheiro adiciona o dia_mes_ano_hora_minutos. Mas se mandar ele por esse nome como faço para chamar para o winrar e depois eliminar o backup e manter so o comprimido?
 
mete todos os passos que queres e a malta ajuda.

seja com for, nao estou a perceber a dificuldade de apagar ficheiros com uma extenção espefica. del *.ba_k
 
mete todos os passos que queres e a malta ajuda.

seja com for, nao estou a perceber a dificuldade de apagar ficheiros com uma extenção espefica. del *.ba_k
Eu no fundo quero criar "um programa" automatico que me faça o backup para a dropbox(ou outra qualquer=) que comprima e que apenas guarde os ficheiros comprimidos e que ao fim de 1 semana ou consoante o espaço que ocupem eu mantenha guardado.

eis o que eu tenho

sqlcmd -E -S servidor\sqlexpress -d basedados-Q "BACKUP DATABASE [basedados] TO DISK = N'E:\Dropbox\joao\Backup_basedados.ba_k' WITH INIT , NOUNLOAD , NAME = N'basedados ', NOSKIP , STATS = 10, NOFORMAT "
sqlcmd -E -S servidor\SQLEXPRESS -d basedados -Q "update para1 set valor=convert(char(10), getdate(), 104) where descricao='ge_dt_Bkp'"
For %%f in (E:\Dropbox\joao\basedados.ba_k) do ("c:\Program Files\WinRAR\winRar.exe" a "%%f.rar" "%%f" -df)

ren E:\backup teste\basedados.ba_PV Backup_basedados.ba_pv_%date:~0,2%_%date:~3,2%_%date:~6,4%_%time:~0,2%_%time:~3,2%.ba_k"
 
Última edição:
não sei como fazes o backup da bd mas...
  • rar a -r C:\dropbox\db_backup\BD_%date%.rar c:\*\ficheiroDB
  • del c:\*\ficheiroDB
  • ForFiles /p "C:\dropbox\db_backup" /s /d -30 /c "cmd /c del @file

a segunda linha so precisas se o ficheiro que moves para o dropbox for um backup, se estas mesmo a copiar o ficheiro original da bd, nao o corras :007:
 
te
não sei como fazes o backup da bd mas...
  • rar a -r C:\dropbox\db_backup\BD_%date%.rar c:\*\ficheiroDB
  • del c:\*\ficheiroDB
  • ForFiles /p "C:\dropbox\db_backup" /s /d -30 /c "cmd /c del @file

a segunda linha so precisas se o ficheiro que moves para o dropbox for um backup, se estas mesmo a copiar o ficheiro original da bd, nao o corras :007:
Editei e pus como faço o backup substitui o nome da base de dados por "basededados"
 
vamos por partes

sqlcmd -E -S servidor\sqlexpress -d basedados-Q "BACKUP DATABASE [basedados] TO DISK = N'E:\Dropbox\joao\Backup_basedados.ba_k' WITH INIT , NOUNLOAD , NAME = N'basedados ', NOSKIP , STATS = 10, NOFORMAT "
sqlcmd -E -S servidor\SQLEXPRESS -d basedados -Q "update para1 set valor=convert(char(10), getdate(), 104) where descricao='ge_dt_Bkp'"

isto criate o backup certo? e é so um ficheiro certo?
nao metas ele a criar logo na pasta dropbox, porque o dropbox começa logo a fazer upload.
troca por algo como drive da bd:\temp\Backup_basedados.ba_k
quanto ao resto basta

Código:
rar a -r E:\Dropbox\joao\BD_%date%.rar X:\temp\Backup_basedados.ba_k -df
del X:\temp\Backup_basedados.ba_k
ForFiles /p "E:\Dropbox\joao\BD_*.rar" /s /d -30 /c "cmd /c del @file
 
vamos por partes



isto criate o backup certo? e é so um ficheiro certo?
nao metas ele a criar logo na pasta dropbox, porque o dropbox começa logo a fazer upload.
troca por algo como drive da bd:\temp\Backup_basedados.ba_k
quanto ao resto basta

Código:
rar a -r E:\Dropbox\joao\BD_%date%.rar X:\temp\Backup_basedados.ba_k -df
del X:\temp\Backup_basedados.ba_k
ForFiles /p "E:\Dropbox\joao\BD_*.rar" /s /d -30 /c "cmd /c del @file
Irei experimentar e digo algo
 
Back
Topo