2012-01-31 2 views
2

계획된 작업으로 MySQL 데이터베이스를 백업하려고합니다. 이 명령은 백업에 SQL은 다음과 같습니다백업 일괄 스크립트의 현재 날짜를 파일 이름의 매개 변수로 사용

mysqldump.exe -h localhost -u root databasename > databasebackup.sql 

는 내가 뭘하고 싶은 것은 databasebackup_2012-01-31.sql 될 것이라고 있도록 파일 이름에 현재 날짜를 추가 할 수 있습니다. 더 이상 이상적으로 압축 파일 databasebackup_2012-01-31.sql을 z3 파일 databasebackup_2012-01-31.zip에 압축하는 것은 sql 파일에 대부분 압축률이 높은 텍스트가 포함되어 있기 때문에 가능합니다. 압축 후에는 sql 파일이 삭제되고 zip 파일 만 백업됩니다.

답변

3

CMD.exe에 날짜를 제공하는 의사 변수가 있습니다. 또한 http://dotNetZip.codeplex.com에서 명령 줄 zip 도구를 얻을 수 있습니다.

당신이 원하는 것을 할 수있는 배치 파일은 다음과 같습니다

@echo off 
@setlocal 
echo The date is %DATE% 

@set tag=%DATE:~-4%-%DATE:~7,2%-%DATE:~4,2% 
set backupfile=databasebackup.%tag%.sql 

echo backing up to: %backupfile% 

echo. 
echo ^<do the backup here^> 
echo. 
echo hello hello hello hello > %backupfile% 


@REM The DotNetZip download for ZIP Tools includes a command-line zip utility. 
@REM Get it from http://dotnetzip.codeplex.com. 

set zipit=\Program Files (x86)\Dino Chiesa\DotNetZip Tools 1.9\ZipIt.exe 
set unzip=\Program Files (x86)\Dino Chiesa\DotNetZip Tools 1.9\UnZip.exe 

set zipfile=%backupfile%.zip 

if exist %zipfile% (
echo deleting existing zip... 
del %zipfile% 
) 

"%zipit%" %zipfile% -s Readme.txt "Backed up on %DATE% at %TIME%" %backupfile% 

echo. 
@REM list the contents of the created zip 
"%unzip%" -l %zipfile% 

echo. 
echo ^<delete the sql file here^> 
echo. 
del %backupfile% 

@endlocal 
관련 문제