비밀번호를 잊어버리셨나요?

7-zip 으로 폴더 압축후 백업디렉토리로 옮긴후 지정일 이후 파일 삭제하기

by 운영자 posted Aug 24, 2016
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어

+++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

 

시나리오 : C:|data  디렉토리를 압축하여 d:\backup 디렉토리에 보관후 7일 이상 지난 파일 삭제하기

                  단, c:\data\log 와 c:\data\temp 디렉토리는 백업에서 제외함.

 

전제조건 : 7-zip 설치

 

 

 

스크립트 작성

rem @echo off

 

 

rem #########  TYPE BACKUP SOURCE AND TARGET DIR ###############

SET 7ZIP="C:\Program Files\7-Zip\7z.exe"

SET SOURCEDIR=c:\data
SET TARGETDIR=D:\backup

SET TARGET_FILENAME=data

SET EXCLUDE_DIR="-x!%SOURCEDIR%\log -x!%SOURCEDIR%\temp"

SET RETENTION_DAY=7

rem #################################################################
 

 

rem  ######  SET BACKUP FILE NAME

FOR /F "tokens=2-4 delims=/ " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k
FOR /F "tokens=1-3 delims=: " %%i IN ('time /t') DO SET TIME=%%i-%%j-%%k

 

SET BAK_TIME=%DATE%-%TIME%
SET BAK_FILEPATH=%TARGETDIR%\%TARGET_FILENAME%_%BAK_TIME%.zip

 

 

rem  ######  COMPRESS FOLDER

%7ZIP% a -y %BAK_FILEPATH% %SOURCEDIR% %EXCLUDE_DIR%

 

 

rem  ######  DELETE OLD FILES

forfiles /p %BAK_FILEPATH% /M *.zip /D -%RETENTION_DAY%  /C "cmd /c del /q @file"

 

 

 

위 스크립트를 예약된작업에 등록하여 사용한다. 

 

 

 

 

 

 

---------- 관련명령어 사용법 ----------------

 

forfiles 사용법

FORFILES [/P pathname] [/M searchmask] [/S]
         [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]

설명:
    파일(또는 파일 집합)을 선택하고 파일에 명령을
    실행합니다. 일괄 작업에 유용합니다.

매개 변수 목록:
    /P    pathname      검색을 시작할 경로를 지정합니다.
                        현재 작업 디렉터리(.)가 기본
                        폴더입니다.

    /M    searchmask    검색 마스크에 따라 파일을 검색합니다.
                        '*'이 기본 검색 마스크입니다.

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

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

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

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

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

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

    /?                  이 도움말 메시지를 표시합니다.

예:
    FORFILES /?
    FORFILES
    FORFILES /P C:\WINDOWS /S /M DNS*.*
    FORFILES /S /M *.txt /C "cmd /c type @file | more"
    FORFILES /P C:\ /S /M *.bat
    FORFILES /D -30 /M *.exe
             /C "cmd /c echo @path 0x09 was changed 30 days ago"
    FORFILES /D 2001-01-01
             /C "cmd /c echo @fname is new since Jan 1st 2001"
    FORFILES /D +2015-2-26 /C "cmd /c echo @fname is new today"
    FORFILES /M *.exe /D +1
    FORFILES /S /M *.doc /C "cmd /c echo @fsize"
    FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"

 

 

7-zip 명령어라인 사용법

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
       [<@listfiles...>]

<Commands>
  a: Add files to archive
  b: Benchmark
  d: Delete files from archive
  e: Extract files from archive (without using directory names)
  l: List contents of archive
  t: Test integrity of archive
  u: Update files to archive
  x: eXtract files with full paths
<Switches>
  -ai[r[-|0]][email protected]|!wildcard}: Include archives
  -ax[r[-|0]][email protected]|!wildcard}: eXclude archives
  -bd: Disable percentage indicator
  -i[r[-|0]][email protected]|!wildcard}: Include filenames
  -m{Parameters}: set compression Method
  -o{Directory}: set Output directory
  -p{Password}: set Password
  -r[-|0]: Recurse subdirectories
  -scs{UTF-8 | WIN | DOS}: set charset for list files
  -sfx[{name}]: Create SFX archive
  -si[{name}]: read data from stdin
  -slt: show technical information for l (List) command
  -so: write data to stdout
  -ssc[-]: set sensitive case mode
  -ssw: compress shared files
  -t{Type}: Set type of archive
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
  -v{Size}[b|k|m|g]: Create volumes
  -w[{path}]: assign Work directory. Empty path means a temporary directory
  -x[r[-|0]]][email protected]|!wildcard}: eXclude filenames
  -y: assume Yes on all queries


  • profile
    운영자 2016.08.24 10:34
    실제로 위 예제를 윈도우10에서 사용했더니 오류가 발생했다.
    몇가지 수정하여 올린다.

    @echo off


    rem ######### TYPE BACKUP SOURCE AND TARGET DIR ###############
    SET 7ZIP="C:\Program Files\7-Zip\7z.exe"
    SET SOURCEDIR=D:\NewGenDB\Rebirth\_BackUp
    SET TARGETDIR=Y:\backup
    SET TARGET_FILENAME=NewGenDB_Backup
    SET BAK_TIME=%DATE:-=%
    SET RETENTION_DAY=30
    rem #################################################################


    SET BAK_FILEPATH=%TARGETDIR%\%TARGET_FILENAME%_%BAK_TIME%.zip


    rem ###### COMPRESS FOLDER
    7z.exe a -y %BAK_FILEPATH% %SOURCEDIR%


    rem ###### DELETE OLD FILES
    forfiles /P %TARGETDIR% /M *.zip /D -%RETENTION_DAY% /C "cmd /c del @file"

List of Articles
번호 제목 글쓴이 조회 수 날짜
화제의 글 8월 19일 도전과제 입니다. 26 file 운영자 59 2017.08.19
화제의 글 경험치 시스템 도입안내 17 file 운영자 65 2017.08.17
137 Recalbox를 이용하여, 구형 노트북을 고전 오락기 박스로 변신 시키자. file 운영자 74 2017.06.10
136 EdgeRouter Lite Cloudflare DDNS 설정하기 file 운영자 36 2017.06.09
135 아이피타임 공유기 인터넷 사용제한 및 사이트 차단 방법 file 운영자 304 2017.05.23
134 KT 및 각 통신사 iptv 대역 6개 주소 및 KT 스트리밍 주소 모음 file 운영자 5686 2017.04.25
133 IPTV를 시청하기 위한 EdgeRouter Lite IGMP 및 Multicast 설정 file 운영자 552 2017.04.25
132 AVG Internet Security 에서 IGMP 허용하기 file 운영자 154 2017.04.25
131 osx app entitlement 확인하기 file 운영자 74 2016.11.30
130 How to Uninstall FortiClient on Mac - 맥에서 FortiClient 삭제하는 방법 file 운영자 180 2016.10.21
» 7-zip 으로 폴더 압축후 백업디렉토리로 옮긴후 지정일 이후 파일 삭제하기 1 file 운영자 212 2016.08.24
128 리눅스 하위폴더 및 파일 일괄 퍼미션 변경 file 운영자 123 2016.08.08
127 Centos 7 에서 Cron.daily가 실행되지 않을 때 file 운영자 83 2016.08.02
126 EdgeRouter Lite This page can't be displayed. contact support for additional information 에러 대처 file 김형석 225 2016.07.03
125 최신 제로보드 XE 기초강좌 15 - XE 위젯 위치 변경하기 1 file 운영자 1868 2013.08.10
124 최신 제로보드 XE 기초강좌 14 - XE 다양한 이미지 위젯 다루기 1 file 운영자 1950 2013.08.10
123 최신 제로보드 XE 기초강좌 13 - XE 기본 이미지 위젯 다루기 1 file 운영자 1916 2013.08.10
122 최신 제로보드 XE 기초강좌 11 - XE 위젯스타일 적용하기 1 file 운영자 1833 2013.08.10
121 최신 제로보드 XE 기초강좌 08 - XE 애드온으로 관리자 로그인바 없애기 2 file 운영자 1843 2013.08.08
120 최신 제로보드 XE 기초강좌 07 - XE 레이아웃 적용하기 1 file 운영자 2031 2013.08.08
119 최신 제로보드 XE 기초강좌 06 - XE 사이트 메뉴 편집으로 메뉴구성하기 1 file 운영자 2129 2013.08.06
118 최신 제로보드 XE 기초강좌 05 - XE 쉬운설치로 게시판 모듈 설치하기 1 file 운영자 2024 2013.08.06
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8