Utility2010. 2. 18. 14:17


xcopy 백업시 에러여부를 기록하는 batch파일 만들기


  앙 백신서버의  Deploy폴더의 백신 배포패키지를   각 지점의 보조백신서버의 deploy라는 폴더로  자동으로 배포하고 싶었습니다.  30여개가 넘는 보조 백신서버의 배포 폴더내에도  중앙서버의  최신 배포파일을 똑 같이 유지하게 하려고 하니 고민이 되더군요..   전문 복제툴은 비쌀뿐 아니라 번거롭기도 하거든요..    변경된 것을  매번 복사해주기도 힘들고   매번 지점의 관리자들에게 새로운 파일을 받아가라고 하기도 힘들구요..   한번 이것을 자동화(?)하면 앞으로도 쓰임새가 매우 클 것 같은 예감이 들더군요..

  일복제는  아래의 조건을 만족해야 했습니다.
1. 트래픽을 절약하기 위해  변경된 파일만 복제되어야 한다.
2. 다수의 대상에게  복제가능해야 한다.
3. 복제 결과를 report받고 싶다. 
   (이때 복제 시작 시간과 마친 시간, 에러여부를 확인할수있어야한다.)
4. 무료툴을 써야 한다.

   본적으로  xcopy 명령을 사용했구요..  date, time, echo 등의 dos기본 명령을 사용하여  초간단 복제 배치파일을 만들었습니다.    복제작업이  진행되는 동안  오류가 생겨도 계속 진행이 가능하고   오류 여부를  copy_result.txt라는 파일로 출력할 수 있도록 했습니다.   제가 썼던 파일을 좀 편집해서  첨부했습니다.  잘 실행이 되더군요..  이 배치파일을 중앙서버에서  야간에 자동으로 실행되도록 스케쥴을 걸면  모든 작업이 끝이 나게 되죠..   물론 미리  각 지점의 보조 (백신)서버의 공유폴더에   write할 수있도록 공유권한 설정을 해두어야 합니다.   복제할 때 뿐 아니라  rename , 혹은 삭제등도  마찬가지 요령으로  적용이 가능하니   매우 유용하지 않을까 생각합니다.   ^^


echo ======= Copy Start =============== >> copy_result.txt   (copy_result.txt란 파일에 기록합니다)

date/t   >> copy_result.txt     (복제 시작 날짜를 기록합니다.)

time/t   >> copy_result.txt     (복제 시작 시간을 기록합니다.)

echo ======= Copy Start =============== >> copy_result.txt

 

echo "N--192.168.1.1" >> copy_result.txt     (서버 이름과 아이피를 먼저 출력합니다.)

xcopy d:\deploy\*.*  \\192.168.1.1\deploy\ /d /s /c /y /i 2>> copy_result.txt
 (  >> 는 xcopy명령의 성공,실패 모두  기록하고  2>> 는 실패시에만  기록합니다. )
 ( 추천사항: 2>>  많은 작업 내역이 있을 때 쉽게 구분가능하고  실패원인을 출력해줍니다.)

echo "I--192.168.2.1" >> copy_result.txt

xcopy d:\deploy\*.*  \\192.168.2.1\deploy\ /d /s /c /y /i 2>> copy_result.txt

echo "B--192.168.3.1" >> copy_result.txt

xcopy d:\deploy\*.*  \\192.168.3.1\deploy\ /d /s /c /y /i 2>> copy_result.txt

echo "B--192.168.4.1" >> copy_result.txt

xcopy d:\deploy\*.*  \\192.168.4.1\deploy\ /d /s /c /y /i 2>> copy_result.txt

echo "C--192.168.5.1" >> copy_result.txt

xcopy d:\deploy\*.*  \\192.168.5.1\deploy\ /d /s /c /y /i 2>> copy_result.txt

echo "A--192.168.6.1" >> copy_result.txt

xcopy d:\deploy\*.*  \\192.168.6.1\deploy\ /d /s /c /y /i 2>> copy_result.txt

echo "L--192.168.7.1" >> copy_result.txt

xcopy d:\deploy\*.*  \\192.168.7.1\deploy\ /d /s /c /y /i 2>> copy_result.txt

 

echo ======= Copy End =============== >> copy_result.txt

date/t   >> copy_result.txt      (복제 끝 날짜를 기록합니다.)

time/t   >> copy_result.txt       (복제 끝 시간을 기록합니다.)

echo ======= Copy End =============== >> copy_result.txt

 

 
vaccine_folder_update.bat 라는 배치파일을 실행하고 있는 모습니다.

사용자 삽입 이미지

결과파일인 copy_result.txt를 열어본 모습니다.
대상서버중에 한 서버인 A**********에 접속이 안되어 access denied란 로그가 떠 있습니다.
사용자 삽입 이미지
Posted by Julyus