[vbscript / ftp] FTP 반복 실행하는 스크립트

서버보안 S/W의 BMT를 하다보면 서버의 성능을 너무 저하시킨다는 잘못된 정보를 갖고 있는 운영 담당자들을 종종 만날 수 있다. 그중에는 SecureOS를 한번도 직접 사용해보지 않은 분들도 많다. 지인이나 다른 업체의 담당자들이 특정 제품을 사용 중 한두번 장애가 발생하거나 원인을 알 수 없는 서버의 성능 저하로 인해 곤란을 겪고나서 “SecureOS 제품을 올린 서버에 과부하가 걸렸다. 다른 서버는 문제 없는데 그 서버만 문제가 발생했다.”는 이야기를 듣고 그런 생각을 갖게 되는 경우가 많은것 같다.

정말 문제는…

원인파악조차 못하고 그냥 SecureOS 제품을 “정지”시켜 놓는다는 점이다. 많은 경우 상황을 “재현”시켜 놓고 여러가지 정보를 분석해보아야 원인을 찾을 수 있는데 “감히~ 문제를 재현” 시켜야 한다는 말을 하지 못하는 경우가 많다. 우리나라 기업의 전산실은 아직 “재발방지를 위해 혹은 원인 파악을 위한 상황 재현”보다는 “무정지 서비스”가 우선이기 때문이다. 그러다 보니 장애가 발생해도 “원인 불명” 혹은 “OO과 OO의 충돌”같은 이해하기 힘든 결과 보고가 올라가는 것이 다반사다.

또 그런 보고를 받아도 “지금” 서비스가 잘되고 있으면 그냥 넘어가는 경우가 많다.

본론으로 돌아가면 … ^^

BMT를 위해 이따금씩 만들어 사용하는 스크립트다.

1. 반복적으로 정해진 IP로 FTP 접속을 시도한다.
2. 반복시도 횟수 및 IP, 계정, 비밀번호를 입력받는다.
3. 접속한 뒤 작은 크기의 파일을 업로드(put) 한다.
4. FTP 접속을 끊는다.
5. FTP 접속을 시도하는 인터벌을 설정할 수 있다. ( 1/1000 초)

이 스크립트는 vbs 즉 vbscript로 작성되어 있으며 윈도에 내장된 기본 ftp 클라이언트를 사용한다.
임시로 생성된 스크립트 파일은 수동으로 삭제해주어야 한다. 필요하다면 다운로드/업로드 등 다양한 행위를 추가할 수 있다.

—————— SCRIPT START ——————
CONST LOCALFTPDIR = “D:\vbscripts”
CONST TARGETFTPDIR = “50.STUDY”
CONST FTPINTERVAL = 100  ‘ 1/1000 أت ´ـہ§.

DIM intRepeatCount
DIM strFtpServerIp
DIM strUsername
DIM strPassword
DIM i

strFtpServerIp = InputBox (“FTP 서버의 IP주소를 입력하세요”)
strUsername = InputBox (“FTP 서버 접속에 사용될 계정이름을 입력해주세요”)
strPassword = InputBox (“비밀번호를 입력해주세요”)
intRepeatCount = InputBox (“반복시도 횟수를 입력해주세요”)

FOR i = 1 to intRepeatCount

SET fso=createobject(“scripting.filesystemobject”)
SET ftpscript=fso.createTextfile(LOCALFTPDIR & “\put” & i & “.txt”, true)

WITH ftpscript
.writeline “open ” & strFtpServerIp
.writeline strUsername
.writeline strPassword
.writeline “lcd ” & LOCALFTPDIR
.writeline “cd ” & TARGETFTPDIR
.writeline “put put” & i & “.txt”
.writeline “bye”
end with
ftpscript.close
NEXT

FOR i = 1 to intRepeatCount

SET SHL=createobject(“wscript.shell”)
SHL.run “ftp -s:” & LOCALFTPDIR & “\put” & i & “.txt”, 1, false
WSCRIPT.sleep FTPINTERVAL

NEXT
——————–SCRIPT END————————-

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top