반응형
배치파일을 하나 생성한다 (test.bat)
내용은 아래와 같이 한다
set pcname=%COMPUTERNAME%
sqlcmd -E -S %pcname%\SQL인스턴스이름 -i "실행시킬 sql 경로"
%pcname%\SQL인스턴스이름은, Sql Server Management Studio에서 Windows 인증으로 로그인할 때 나오는 그 서버 이름과 같다.
백업 쿼리를 담고 있는 sql 파일을 만든다 (backup.sql)
DECLARE @DIR NVARCHAR(100)
DECLARE @BACKUPNAME NVARCHAR(100)
SET @DIR = N'c:\경로\test' + CONVERT(NVARCHAR(20), GETDATE(), 112) + N'.bak'
SET @BACKUPNAME = N'test_' + CONVERT(NVARCHAR(20), GETDATE(), 112) + N'.BAK'
BACKUP DATABASE [백업할 대상 데이터베이스 이름] TO DISK = @DIR WITH NOFORMAT, NOINIT, NAME = @BACKUPNAME, SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
작업스케줄러를 키고 기본작업 만들기에서 bat파일을 추가한다.
이렇게 하면 나는 매일 오후 2시에 배치파일이 실행돼 데이터베이스를 백업한다.
삭제 배치 또한 배치파일을 하나 생성한다(file_del.bat)
forfiles /p "C:\batch\tempfiles" /s /m *.* /d -3 /c "cmd.exe /C del @path"
forfiles /p "C:\batch\LWD" /s /m *.png /d -60 /c "cmd.exe /C del @path"
forfiles /p "C:\batch\LWD" /s /m *.jpg /d -60 /c "cmd.exe /C del @path"
forfiles는 파일 또는 파일집합에서 명령을 선택하고 실행하는 명령어다
/p 경로에서 찾고, /s로 하위폴더까지 모두를 탐색한다 /m으로 대상파일을 검색하고 /d는 파일을 최종 수정한 날짜이다 /c @path은 해당 파일의 전체경로를 담은 변수이다. 이렇게 검색한 파일을 del 명령을 이용해 삭제한다
자세한 옵션 설명은 아래와 같다
/p <pathname> | 검색을 시작 하는 경로 지정 합니다. 기본적으로 현재 작업 디렉터리에서 시작 검색 합니다. |
/m <searchmask> | 지정 된 검색 마스크에 따라 파일을 검색합니다. 기본 검색 맵은 * 입니다. |
/S | 하위directories에서 재귀적으로 검색하도록 forfiles 명령에 지시합니다. |
/c <command> | 각 파일에 지정된 된 명령을 실행합니다. 명령 문자열은 큰 따옴표로 묶어야 합니다. 기본 명령은 "cmd /c echo @file" 입니다. |
/d [{+\|-}][{<date> | <days>}] | 지정된 시간 프레임 내에 마지막으로 수정된 날짜가 있는 파일을 선택합니다.
|
출처: https://docs.microsoft.com/ko-kr/windows-server/administration/windows-commands/forfiles
더 자세한 설명은 위에서 확인할 수 있다.
이렇게 작성한 file_del.bat 파일도 작업스케줄러에 등록하면 된다.
반응형
'DB' 카테고리의 다른 글
[MySQL][GCP] SQL 이모지 데이터 입력시 오류, charset utf8mb4로 변경 (0) | 2020.09.04 |
---|---|
[GCP] MySQL timezone 타임존 변경 (0) | 2020.06.08 |
[ec2][centOS][mysql] mysql 설치, 유저 생성, 디비생성, 권한 부여 (0) | 2019.12.17 |
[MySql]Docker MySql Container 접속, User 추가 및 권한 부여 (0) | 2019.07.31 |
[mysql] 계층형 쿼리, 대댓글 계층구조 조회 (1) | 2019.07.24 |