'Utility'에 해당되는 글 47건
- 2010.03.10 xcopy 확장자별로 폴더 위치 저장
- 2010.03.10 DOS 자주가는 디렉토리로 쉽게 이동하는 배치 스크립트
- 2010.03.10 도스(DOS) 배치파일과 쉘 스크립트 동의어
- 2010.02.18 xcopy 백업시 에러여부를 기록하는 batch파일 만들기
- 2009.12.30 [cmd] 백업폴더 날짜별로 만들어 파일복사하는 배치파일 만들기.
- 2009.12.16 엔나비 맵 업그레이드
- 2009.09.30 요구공학교재.ppt by beyondprocess.co.kr
http://blog.naver.com/oneandonlyme/120056037278
배치 파일 키워드/변수/연산자 와 그에 해당하는 쉘 동의어
배치 파일 |
쉘 스크립트 |
뜻 |
% |
$ |
명령어 줄 매개 변수 접두사 |
/ |
- |
명령어 옵션 플래그 |
\ |
/ |
디렉토리 패스 구분자 |
== |
= |
(같음) 문자열 비교 테스트 |
!==! |
!= |
(다름) 문자열 비교 테스트 |
| |
| |
파이프 |
@ |
set +v |
현재 명령어를 에코하지 말 것 |
* |
* |
파일명 “와일드 카드” |
> |
> |
파일 재지향(덮어 쓰기) |
>> |
>> |
파일 재지향(덧붙여 쓰기) |
< |
< |
표준입력 재지향 |
%VAR% |
$AVR |
환경 변수 |
REM |
# |
주석 |
NOT |
! |
뒤에 나오는 테스트 부정 |
NUL |
/dev/null |
명령어 출력을 없애기 위한 “블랙홀” |
ECHO |
echo |
에코(bash 에는 옵션이 많이 있음) |
ECHO . |
echo |
빈 줄 에코 |
ECHO OFF |
set +v |
다음에 나오는 명령어를 에코하지 말것 |
FOR %%VAR IN (LIST) DO |
for var in [list]; do |
"for" 루프 |
:LABEL |
없음 |
라벨 |
GOTO |
없음 |
스크립트의 다른 곳으로 건너뜀 |
PAUSE |
sleep |
일정 간격을 두고 잠시 대기 |
CHOICE |
case나 select |
메뉴 선택 |
IF |
if |
if-test |
IF EXIST FILENAME |
if [-e filename ] |
파일이 존재하는지 확인 |
IF !%N==! |
if [ -z "$N"] |
매개변수인 “N"이 없다면 |
CALL |
source 나 . (도트 연산자) |
다른 스크립트 포함 |
COMMAND /C |
source 나 . (도트 연산자) |
CALL과 동일 |
SET |
export |
환경 변수를 세트 |
SHIFT |
shift |
명령어줄 변수 목록을 왼쪽으로 이동 |
SGN |
-lt or -gt |
(정수) 부호(sign) |
ERRORLEVEL |
$? |
종료 상태 |
CON |
stdin |
“콘솔“(표준입력) |
PRN |
/dev/lp0 |
(일반적인) 프린터 디바이스 |
LP1 |
/dev/lp0 |
첫 번째 프린터 디바이스 |
COM1 |
/dev/ttyS0 |
첫 번째 시리얼 포트 |
도스 명령어와 유닉스 명령어 동의어
도스 명령어 |
유닉스 명령어 |
효과 |
ASSIGN |
ln |
파일이나 디렉토리를 링크 |
ATTRIB |
chmod |
파일 퍼미션 변경 |
CD |
cd |
디렉토리 변경 |
CHDIR |
cd |
디렉토리 변경 |
CLS |
clear |
스크린 지우기 |
COMP |
cmp or diff |
파일 비교 |
COPY |
cp |
파일 복사 |
Ctl-C |
Ctl-C |
정지(시그널) |
Ctl-Z |
Ctl-D |
EOF (end-of-file) |
DEL |
rm |
파일 삭제 |
DELTREE |
rm -rf |
디렉토리의 하위 디렉토리까지 포함 삭제 |
DIR |
ls -l |
디렉토리 보이기 |
ERASE |
rm |
파일 삭제 |
EXIT |
exit |
현재 프로세스 종료 |
FC |
comm, cmp |
파일 비교 |
FIND |
grep |
파일안에서 문자열 찾기 |
MD |
mkdir |
디렉토리 생성 |
MKDIR |
mkdir |
디렉토리 생성 |
MORE |
more |
텍스트 파일 쪽단위(paging) 필터 |
MOVE |
mv |
이동 |
PATH |
$PATH |
실행파일들의 경로 |
REN |
mv |
이름 바꾸기(이동) |
RENAME |
mv |
이름 바꾸기(이동) |
RD |
rmdir |
디렉토리 삭제 |
RMDIR |
rmdir |
디렉토리 삭제 |
SORT |
sort |
파일 정렬 |
TIME |
date |
시스템 시간 보여주기 |
TYPE |
cat |
파일을 표준출력으로 출력 |
XCOPY |
cp |
(확장) 파일 복사 |
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 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란 로그가 떠 있습니다.

[Sample#2]
[Sample#3]
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.