Lote: backup e, em seguida, excluir backup antigo

0

Eu tenho um script em lotes que é executado por hora. Ele se conecta a um servidor FTP, faz o download de um arquivo de backup e, em seguida, exclui o backup mais antigo (os backups são mantidos por 4 horas por padrão). Isso deve isolar nossas instalações de uma perda de conexão. Foi trazido à minha atenção que uma instalação perdeu sua internet e não pôde fazer uso desses backups porque o script excluiu todos os antigos 4 horas depois que a conexão foi interrompida. Como posso modificar esse script para APENAS excluir o backup mais antigo, se um novo for baixado?

echo off

set FTPADDRESS=[omitted]
set FTPLOGIN=[omitted]
set FTPPASSWORD=[omitted]
set DIRECTORY=[omitted]

set BACKUP_FILE=emar_backup.zip
set DELETE_OLD_FILES_MIN=240

echo cd %DIRECTORY% > commands.txt
echo get %BACKUP_FILE% .\downloads\%BACKUP_FILE% >> commands.txt
echo put receipt.txt >> commands.txt
echo bye >> commands.txt

for /f "tokens=1 delims=" %%A in ('cscript //nologo getdate.vbs') do SET yymmdd_hhmmss=%%A

psftp.exe -2 -batch -b commands.txt -l %FTPLOGIN% -pw %FTPPASSWORD% %FTPADDRESS% > .\logs\lastlog.txt

cd downloads
if exist %BACKUP_FILE% ren %BACKUP_FILE% %BACKUP_FILE%-%yymmdd_hhmmss%.zip
..\DelOld.exe /f=* /m=%DELETE_OLD_FILES_MIN%
cd ..

Agradecemos antecipadamente por qualquer coisa que você possa contribuir!

    
por Wutnaut 05.05.2014 / 18:21

0 respostas