FTP 중앙 서버로 자동화 구성하기
오늘은 FTP 중앙 서버를 구축하여 Script를 통해 다수의 서버를
관리하는 법에 대해 알아보도록 하겠습니다.
보통 서버를 관리하면서 여러가지의 사항에 대해 관리를 해야하는 경우가 많습니다.
예를들어 각 서버의 CPU를 조사를 해야하던가 하는 간단한 조사의 경우
일반적으로 다음과 같은 절차를 거쳐 조사를 하게 됩니다.
위와 같이 각 개인의 컴퓨터에서 FTP 서버에 접속하여 각 서버의 데이터를 끌어올 수 있기 때문에
데이터 수집 시 관리자의 업무를 줄여줄 수 있습니다.
[그림2] 적용순서
그림 2와 같이 대부분의 업무는 Script로 자동화가 되어야한다.
Script로 자동화 하여 각 정보에 대한 Log를 서버에 보유하고 있어야하며 필요한 자료에 대해
FTP전송을 하는 예약작업을 작성함으로써 중앙 서버에서 모든 서버의 정보를 가질 수 있다.
그런 경우 [그림3]과 같이 하나의 중앙 서버에 접속함으로써 모든 서버의 정보를 가져올 수 있으며
수집결과를 분석할 수 있게 되는 것이다.
[그림3] 데이터 수집방법
이렇게 Script 작성 기술과 FTP전송 그리고 중앙관리할 수 있는 master 서버가 있는 경우
그림4와 같이 관리 편이를 얻을 수 있으며 이런 관리 편이성을 통해 관리자의 업무 강도가
줄어들 수 있을것이다.
[그림4] 도입스킬 및 장점
그럼 이런 중앙관리를 위해 필요한 스크립트에 대해 알아보도록 하겠다.
1) 예약작업
2) FTP 전송
3) 일반 관리 스크립트
1) 예약작업에 거는 방법에 대해선 기존에 작성한 글을 참조하여 작성하면 될것이다.
2) FTP 전송은 우선 중앙 서버에 FTP서버를 설치해야하며 FTP 서버 설치방법에 대해서는 책 or 인터넷에 올려놓은
다양한 글들을 참조하면 될것이다.
FTP로 전송하는 방법은 다음 스크립트를 참조한다.
'###########################################################################
'##
'## FileName : ftpFile.vbs
'## 용도 : 해당 서버의 해당 Directory에 Script 파일 생성
'## 작성자 : 권준상
'##
'###########################################################################
Const userID = FTP서버유저
Const userPasswd = FTP서버유저의 Password
Const serverIP = 서버IP
Const serverPort = 서버FTP포트
Const ForReading=1, ForWriting=2, ForAppending=3
Call Write()
Private Sub Write()
Dim strFilePath
dim strFileNM
Dim sWriteMsg
Dim strHostNM
Dim fso
Dim File
Dim TextStream
strFilePath = "C:\"
strFileNM = strFilePath & "ftpupload.txt"
End Sub
'ftp 명령어를 만들어주는 함수
Private Function ftpFunc(strFilePath, strHostNM)
Dim strFtp
Dim strOFileNM
Dim strNFileNM
strFileNM = strHostNM & ".log"
strFtp = ""
strFtp = strFtp & "open " & serverIP & " " & serverPort & vbCrLf
strFtp = strFtp & userID & vbCrLf
strFtp = strFtp & userPasswd & vbCrLf
strFtp = strFtp & "bin" & vbCrLf
strFtp = strFtp & "prompt" & vbCrLf
strFtp = strFtp & "cd /Swlist" & vbCrLf
strFtp = strFtp & "mput " & strFilePath & strFileNM & vbCrLf
strFtp = strFtp & "bye"
ftpFunc = strFtp
End Function
위의 소스는 우선 돌아가지 않습니다..
모든 코딩은 자신이 생각해서 로직을 세워야하기에 그중 핵심 부분만 공개하며
그외의 부분에 대해서는 삭제했음을 미리 알려드립니다.
위의 부분과 다른 방식으로 접속하는 방법도 물론 많을 것이며 저것이 최적의 코딩은 아닐수도 있습니다.
제가 사용한 방식은 ftp접속을 할 수 있는 txt파일을 생성하여 해당 txt파일에 접속할 수 있는 정보를 넣은 후
원하는 파일을 해당 txt파일을 사용하여 upload하는 단순한 방법입니다.
단점은 위에서 보듯이 해당 소스에 서버 정보가 그대로 노출되게 됩니다.
보안에 취약할 수 있어 서버정보를 밖으로 빼어 binary로 만드는 것을 추천합니다.
이런식으로 FTP로 전송을 하는 script를 통해 예약된작업이 수행되게 작성을 하면
해당 정보들을 중앙 서버에 gathring하게 되며 특정 폴더 안의 파일들을 merge하게 하여 최종파일을 만들게 됩니다.
3) 일반관리 스크립트는 다양한 내용이므로 다루지는 않겠습니다.
해당 내용에 대해서는 작성 포인트 목록을 작성하여 해당 목록을 수행하는 script를 작성하면 되며
의외로 많은 항목을 도출할 수 있을 것입니다.
서버관리자들이 Window보다 Unix를 좋아하는 이유는 서버접속의 불편함 그리고 커맨드가 아닌 GUI를 사용함으로써
발생하는 처리 속도의 답답함, 정기적인 윈도우패치에 따르는 업무로드 증가와 보안이슈와 같이 다양한 원인이 있을 수
있을 것입니다.
하지만 자동화를 도입하는 경우 의외로 윈도우가 유닉스보다 관리가 용이하며 업무로드가 적다는 것을 알 수 있었습니다.
앞으로도 윈도우가 유닉스보다 더 관리가 쉽고 편하게 만드는 다양한 프로젝트를 통해
윈도우의 관리 요소를 줄이는 내용들을 많이 올리도록 하겠습니다.
그럼 긴 강좌 읽어주셔서 감사합니다.