PC 및 모바일

데이터를 백업하는 Windows 배치 스크립트

고급 Mac 및 Windows 컴퓨터와 함께 성장한 컴퓨터 사용자는 이를 인식하지 못할 수도 있지만 옛날에는 모든 개인용 컴퓨터가 명령줄 인터페이스를 사용하여 제어되었습니다. 예, Windows 컴퓨터의 그 투박한 명령 상자는 말 그대로 대부분의 사람들이 컴퓨터와 상호 작용하는 유일한 방법이었습니다. 명령줄 인터페이스는 일반적인 작업을 수행하는 데 사용되는 운영 체제 명령 모음인 '스크립트'라는 작은 프로그램에 크게 의존했습니다.

오늘날 PC의 그래픽 사용자 인터페이스는 이전 명령줄보다 몇 광년 더 정교하고 사용하기 쉽지만 컴퓨터를 제어하는 ​​이전 방법을 여전히 사용할 수 있습니다. 명령줄 스크립트를 위한 가장 일반적이고 가장 적합한 응용 프로그램 중 하나는 데이터 백업입니다. 명령줄 스크립트는 사람의 개입 없이 언제든지 실행되도록 자동화할 수 있으며 제한 사항이 거의 없습니다. 무엇보다도 Windows 운영 체제의 기본 제공 부분입니다.

왜 명령줄 스크립트인가?

상용 및 무료 백업 프로그램이 모두 있는 경우 명령줄 스크립트를 사용하는 이유는 무엇입니까? 명령줄 스크립트에는 여러 가지 고유한 이점이 있습니다. 다음은 그 중 몇 가지입니다.

  • 기본 명령 : 데이터를 생성하는 프로그램을 통해 제공되는 기능을 사용하는 것보다 데이터를 백업하는 더 좋은 방법은 무엇입니까? 이것이 간단한 파일 복사 명령을 통한 운영 체제 자체이든 복원 가능한 바이너리 파일을 생성하는 데이터베이스 명령이든 소스 프로그램은 자체 백업 방법을 가장 잘 알고 있습니다.
  • 궁극의 제어 : 명령줄 스크립트는 간단한 단계별 절차를 따르기 때문에 무슨 일이 일어나고 있는지 정확히 알고 동작을 쉽게 수정할 수 있습니다.
  • 빠른 : 모든 것이 기본 명령이기 때문에 해석의 대상이 되는 것은 없습니다. 다시 말하지만, 프로그램 자체에서 제공하는 명령을 사용하고 있으므로 오버헤드가 최소로 유지됩니다.
  • 강한 : 아직 명령줄 스크립트를 통해 수행할 수 없는 백업 작업을 본 적이 없습니다... 그리고 펑키한 작업을 수행했습니다. 고유한 요구 사항이 있는 경우 약간의 조사와 시행착오를 수행해야 할 수도 있지만 일반적으로 사용 중인 스크립팅 언어의 내장 기능과 기능으로 충분합니다.
  • 자유롭고 유연한 : 분명히 명령줄 스크립트는 비용이 들지 않으므로(개발 시간 외에) 시간이나 비용이 거의 또는 전혀 없이 스크립트를 원하는 수의 컴퓨터와 시스템에 복사할 수 있습니다. 이를 여러 서버 및/또는 데스크탑 컴퓨터의 백업 소프트웨어에 대한 라이센스 구매 비용과 비교하십시오.

백업 배치 스크립트의 빠른 개요

대부분의 사람들은 명령줄 스크립팅을 사용하는 방법을 배운 적이 없으며 일종의 "블랙 아트"로 간주됩니다. 그러나 실제로 배우는 것은 매우 간단합니다. 명령줄의 성능을 보여주기 위해 중요한 데이터를 백업하는 데 사용할 수 있는 간단한 Windows 배치 스크립트를 제공합니다. 이 구성 가능하고 사용자 정의 가능한 스크립트는 Windows 배치 스크립팅 언어에 대한 지식(또는 배우려는 의지)이 필요하지 않지만 Windows 배치 스크립팅에 대해 더 배우고 싶다면 이 스크립트가 좋은 출발점이 될 것입니다. .

백업 스크립트가 하는 일:

  1. 별도의 구성 텍스트 파일(아래 참조)에서 지정한 파일 및 폴더의 전체 또는 일일 증분 백업(아래 참조)을 생성합니다.
    • 폴더 이름을 지정하면 해당 폴더와 모든 하위 폴더가 백업됩니다.
    • 파일 이름이 지정되면 해당 파일만 백업됩니다.
  2. 백업된 파일을 압축(zip)합니다. 백업할 모든 파일을 복사한 후 공간을 절약하기 위해 압축합니다. 이 작업을 수행하려면 7-Zip이 시스템에 설치되어 있어야 합니다.
  3. 압축 파일의 날짜를 지정하고 저장 위치로 이동합니다. 백업 파일이 압축된 후 결과 아카이브에는 현재 날짜에 따라 파일 이름이 지정되고 외부 드라이브나 네트워크 위치와 같은 구성된 저장 위치로 이동됩니다.
  4. 스스로 정리합니다. 모든 작업이 완료된 후 배치 스크립트는 생성된 모든 임시 파일을 정리합니다.

요구 사항:

Windows 2000/XP/2003/Vista 이상

7-Zip(무료)

구성 파일:

구성 파일은 백업할 파일과 폴더가 포함된 텍스트 파일이며 한 줄에 하나의 백업 항목을 입력합니다. 이 파일 ~해야하다 이름은 "BackupConfig.txt"로 지정하고 백업 스크립트와 동일한 폴더에 있어야 합니다. 다음은 BackupConfig.txt 파일의 예입니다(첫 번째 줄의 "#" 문자는 해당 줄이 주석임을 나타냅니다. 주석은 스크립트가 실행될 때 항상 무시됩니다):

# 파일 및 폴더 이름을 한 줄에 하나씩 입력합니다.

C:Documents and SettingsJason FaulknerDesktop C:Documents and SettingsJason Faulkner내 문서중요 파일 C:ScriptsBackupScript.bat

위의 예는 Windows 사용자 Jason Faulkner의 데스크탑(및 데스크탑의 모든 폴더), My Documents 내부의 "Important Files" 폴더(및 "Important Files" 내의 모든 폴더) 및 내부의 "BackupScript.bat" 파일을 백업합니다. C:Scripts 디렉토리.

백업 유형:

  • 전체 백업: 모든 파일 및 폴더(하위 폴더 포함)의 전체 복사본이 백업에 포함됩니다.
  • 증분 백업: 폴더 제공 시 해당 폴더에서 생성 또는 수정된 파일만 현재 날짜 ~이다

    백업했습니다. 파일이 제공되면 수정 시점에 관계없이 항상 백업됩니다.

데이터 백업 Windows 배치 스크립트

이 스크립트는 매우 기본적이라는 점을 강조하고 싶습니다. 간단한 파일 복사를 활용하여 백업을 생성하는 것뿐입니다. 설정할 수 있는 몇 가지 구성 옵션이 있습니다.

  • 압축된 백업 파일이 저장되는 백업 저장 위치입니다.
  • 전체 백업이 실행되는 요일(다른 날은 증분 백업을 실행함).
  • 컴퓨터에서 7-Zip이 설치된 위치입니다. 스크립트는 기본 위치를 찾도록 자동으로 설정됩니다.

제안 사항이나 기능 요청이 있으면 아래에 의견을 보내주십시오. 독자 입력을 기반으로 업데이트된 스크립트를 특징으로 하는 이 게시물에 대한 후속 기사를 작성하고 싶습니다. 이 스크립트를 "사용"하거나 예약된 작업을 설정하는 방법에 대한 지침이 필요한 경우 스크립트 소스 아래의 링크를 살펴보십시오.

더 이상 고민하지 않고 다음과 같습니다.

메모: 따옴표가 아래에 올바르게 표시되지 않기 때문에(결과적으로 스크립트가 엉망이 될 수 있음), 복사할 정확한 소스를 얻는 데 사용할 수 있는 일반 텍스트 링크를 스크립트 아래에 포함시켰습니다.

@ECHO OFF REM BackupScript REM 버전 1.01, 업데이트 날짜: 2008-05-21 REM 작성자: Jason Faulkner(articles[-at-]132solutions.com) REM 사용자가 구성한 폴더 및 파일의 전체 또는 증분 백업을 수행합니다. REM 사용법--- REM > BackupScript SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION REM ---구성 옵션--- 결과 백업 아카이브를 저장할 REM 폴더 위치입니다. REM 이 폴더가 있어야 합니다. 끝에 ''를 붙이지 마세요. 자동으로 추가됩니다. REM 로컬 경로, 외부 드라이브 문자(예: F:) 또는 네트워크 위치(예: \serverbackups)를 입력할 수 있습니다. SET BackupStorage=C:Backup REM 전체 백업을 수행할 요일을? REM 다음 중 하나를 입력하십시오. Sun, Mon, Tue, Wed, Thu, Fri, Sat, * REM 아래에 지정된 날짜 이외의 모든 요일은 증분 백업을 실행합니다. REM '*'를 입력하면 매번 전체 백업이 실행됩니다. SET FullBackupDay=* REM 컴퓨터에서 7-Zip이 설치된 위치입니다. REM 기본값은 Program Files 디렉토리의 '7-Zip' 폴더에 있습니다. SET InstallLocationOf7Zip=%ProgramFiles%7-Zip REM +-------------------------------------------------------- --------------------------------+ 렘 | 무엇을 하고 있는지 알지 못하는 한 여기 아래에서 아무 것도 변경하지 마십시오. | 렘 +------------------------------------------------ -----------------------+ REM 사용 변수. SET exe7Zip=%InstallLocationOf7Zip%7z.exe SET dirTempBackup=%TEMP%backup SET filBackupConfig=BackupConfig.txt REM 유효성 검사. IF NOT EXIST %filBackupConfig% ( ECHO 구성 파일을 찾을 수 없음, 누락: %filBackupConfig% GOTO End ) IF NOT EXIST "%exe7Zip%" ( ECHO 7-Zip이 다음 위치에 설치되지 않았습니다: %dir7Zip% ECHO 다음 위치에 있는 디렉토리를 업데이트하십시오. 7-Zip 설치 GOTO End ) REM 백업 변수. FOR /f "tokens=1,2,3,4 delims=/ " %%a IN ('date /t') DO ( SET DayOfWeek=%%a SET NowDate=%%d-%%b-%%c SET FileDate=%%b-%%c-%%d ) IF {%FullBackupDay%}=={*} SET FullBackupDay=%DayOfWeek% IF /i {%FullBackupDay%}=={%DayOfWeek%} ( SET txtBackup =전체 SET swXCopy=/e ) ELSE ( SET txtBackup=증분 SET swXCopy=/s /d:%FileDate% ) ECHO 파일 복사를 시작합니다. IF NOT EXIST "%dirTempBackup%" MKDIR "%dirTempBackup%" FOR /f "skip=1 tokens=*" %%A IN (%filBackupConfig%) DO ( SET Current=%%~A IF NOT EXIST "!Current! " ( 에코 오류! 찾을 수 없음: !Current! ) ELSE ( 에코 복사: !Current! SET Destination=%dirTempBackup%!Current:~0,1!%%~pnxA REM 항목이 파일인지 디렉터리인지 확인합니다. IF "%%~xA"=="" ( REM 디렉토리. XCOPY "!Current!" "!대상!" /v /c /i /g /h /q /r /y %swXCopy% ) ELSE( REM 파일. COPY /v /y "!Current!" "!Destination!" ) ) ) ECHO 파일 복사를 완료했습니다. 에코. SET BackupFileDestination=%BackupStorage%Backup_%FileDate%_%txtBackup%.zip REM 백업 파일이 있는 경우 새 파일을 위해 제거합니다. IF EXIST "%BackupFileDestination%" DEL /f /q "%BackupFileDestination%" ECHO 백업된 파일을 압축하는 중입니다. (새 창) REM 우선 순위가 낮은 프로세스에서 7-Zip을 사용하여 파일을 압축합니다. START "백업 압축. 닫지 마십시오." /belownormal /wait "%exe7Zip%" a -tzip -r -mx5 "%BackupFileDestination%" "%dirTempBackup%" 에코 백업된 파일 압축을 완료했습니다. 에코. 에코 청소. 존재하는 경우 "%dirTempBackup%" RMDIR /s /q "%dirTempBackup%" 에코. :End 에코가 완료되었습니다. 에코. 엔로컬

일반 텍스트 소스는 여기에서 사용할 수 있습니다:백업

이 스크립트 구현을 시작하는 데 도움이 필요한 경우 도움이 되는 몇 가지 링크가 있습니다.

  • 배치 파일을 만드는 방법
  • Windows 예약된 작업을 만드는 방법

이것은 내가 매일 컴퓨터를 백업하는 데 사용하는 것과 동일한 스크립트(물론 몇 가지 수정 포함)이므로 매우 잘 작동한다는 것을 알고 있습니다. 유용하게 사용하시기 바랍니다.

즐기다!