새소식

반응형
ETC/Windows SERVER

bat파일을 이용한 파일삭제

  • -
반응형

Windows에서 자동으로 bat파일과 스케줄러를 이용하여, 자동으로 파일을 삭제하도록 할 수 있습니다.


MSSQL 백업을 받은 이후에 자동으로 삭제하는 것은 MSSQL에서 쿼리로도 가능하지만, windows 상에서도 가능 합니다.

bat 파일을 만들어 스케줄에 등록하여, windows 에서 돌아가게 할 수 있습니다. 쿼리로 하는 방법은 xp_cmdshell ,  xp_delete_file 등이 있습니다. 

xp_delete_file  관련 설명 : http://optimizer.tistory.com/93


하지만, 백업파일을 백업서버로 넘기고 (일반적으로 같은 서버에 백업본을 계속 보관하지는 않을 것이므로...) 그 백업파일을 몇일 후에 삭제하는 경우에

사용하면 좋을 것으로 보입니다. 


다음과 같은 순서로 만들 수 있습니다.

1. bat파일 만들기

2. 작업스케줄러 등록




1. bat파일 만들기

우선 삭제를 하도록 bat파일을 만들어 보면 다음과 같습니다.

bat파일이라는게 특별한게 아니고, notepad를 열어서, 그 안에 명령어를 입력하고 확장자를 bat로 만들면 끝입니다.


notepad를 열어서, 다음의 명령어를 입력하고, bat파일로 저장하면 됩니다. 


forfiles는 윈도우에서 사용하는 명령어입니다. 각각의 /에는 명령어를 어떻게 어디서 실행 할지를 나타내는 옵션값이라고 보면 됩니다.

옵션값은 http://egloos.zum.com/genes1s/v/2521660 블로그에서 가져왔습니다. 


/P    pathname      검색을 시작할 경로를 지정합니다.

                        현재 디렉터리(.)가 기본 폴더입니다.

/M    searchmask    검색 마스크에 파일을 검색합니다.

                        '*'이 기본 검색 마스크입니다.

/S                  폴더를 포함하도록 지정합니다. 예, "DIR /S"

/C     각 파일에 실행할 명령을 지정합니다.
                        명령 문자열을 큰따옴표로 묶어야 합니다.

                        "cmd /c echo @file"이 기본 명령입니다.

                        명령 문자열에 다음 변수를 사용할 수 있습니다.
                        - 파일 이름을 반환합니다.
                        @fname   - 확장명 없이 파일  반환합니다.
                        @ext     - 파일의 확장명만  
                        @path    - 파일의 전체 경로를 반환합니다.
                        @relpath - 상대 경로를 반환합니다.
                        @isdir   - 파일 형식이 디렉터리인 "TRUE"를 반환하고 파일인 경우 "FALSE"를 반환합니다.
                        @fsize   - 파일의 크기(바이트)를 반환합니다.
                        - 파일을 마지막으로 수정한 날짜를 반환합니다.
                        @ftime   - 마지막으로 수정한 시간을 반환합니다.

                        명령줄에 특수 문자를  0xHH 형식의 16진수 코드(예, 탭은 0x09)를
                        사용하십시오. CMD.exe 명령 앞에는 "cmd /c"를 사용해야 합니다.

/D    date   지정한 날짜와 마지막 수정한 날짜가 늦거나 같은(+) 빠르거나 같은(-) 파일을 찾습니다.

                        날짜 형식은 "yyyy-MM-dd"입니다.
                        마지막 수정한 날짜가 현재 날짜에 "dd"일을 더한 날짜보다 늦거나 
                         또는 현재 날짜에서 "dd"일을 뺀 날짜보다 작거나 같은(-) 찾습니다.
                        유효한 "dd" 범위는 0에서 32768까지입니다.
                        부호를 지정하지 "+"가 기본값입니다.


확장자를 bat하여 저장하면 다음과 같은 형태로 만들어 집니다. 


이것을 실행하면, 삭제가 됩니다. 위에서 나오지만 삭제는 확장자를 통해서 이루어지게 해놨으므로, .bak파일을 모두 삭제합니다. 

(나중에 만들때 폴더를 구분하거나 이름을 따로 지정하는 등의 구분을 하여, 중요한 파일이 삭제되지 않도록 해야합니다.)





2. 작업스케줄러 등록

만들어진 파일을 작업 스케줄러에 등록하려면 다음과 같이 진행합니다.


작업스케줄러를 들어가면, 아래와 같이 나옵니다. 여기서 좌측의  를 클릭하면, 아래의 사진과 같이 등록된 스케줄러가 나옵니다.


그리고, 우측에 작업 만들기를 클릭하면, 아래처럼 "새 작업 만들기"가 나옵니다.


A) 일반 탭 : 이름을 입력합니다. 사용자의 상황에 따라서 "가장 높은 수준의 권한으로 실행"을 체크해줍니다.

B) 트리거 탭 : 클릭 시 언제 동작 할지 지정 할 수 있습니다. 매우 자세하게 조정이 가능하므로 크게 설명하지 않아도 될 듯 합니다.

C) 동작 탭 : 클릭 하면, 실행 할 bat파일을 등록 할 수 있습니다. "새로 만들기"를 클릭하면 동작 시킬 bat파일을 지정 할 수 있습니다.



bat파일을 이용하면, 다양한 작업이 가능하며, 이 기능은 일부의 기능입니다. 차후에 더욱 많은 기능을 구현해 보도록 하겠습니다.

감사합니다.



반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.