이전 강좌를 통해서 여러분은.... WSH 를 통해서 서버단에서 뭔가의 작업을 VB나 VC++의 사용없이, 가벼운 스크립트만으로 처리할 수 있지 않을까하는 기대를 살며시 가질 수 있었습니다. 그렇습니다.
가벼운 소소한 작업들이라면 굳이 언어의 힘을 빌리지 않아도 스크립트만으로도 충분히 멋지에 소화해 낼 수가 있지요... 이번에 할 작업은... 먼저, NT 시스템에서 기본적으로 제공하는 스케쥴러를 사용하는 방법입니다.
NT 서버의 명령 프롬프트에서는 AT 이라는 명령어를 통해서 스케쥴을 걸 수가 있습니다. 이를 사용하면 특정 작업을 우리가 지정하는 시간에 일어나게 할 수가 있지요... NT를 공부하신 분은 아마도 다 아시는 이야기이겠습니다만... 모든 분들이 NT 나 Windows 2000 을 공부하셨을리는 없기에.... 여기서 스케쥴러의 사용법도 간단히 알아보고 넘어가도록 하겠습니다.
NT 스케쥴러를 알아보기 위해서 다음처럼 명령 프롬프트로 나가봅시당.... 그리고, 이 명령창에서..
C:\>AT/?
라고 실행을 해보세요.. AT 라는 명령어가 바로 스케쥴러 명령이구요. /?는 도움말을 보겠다는 옵션입니다. 그러면, 다음처럼 AT를 사용하는 방법이 주욱 나올 것입니다.
우리는 이 자리에서 이 모든 옵션의 기능을 다 알아볼 것은 아니구요.. 가장 심플한 수준으로 우리가 필요한 정도만을 알아보도록 하겠습니다.. ^^
가장 간단하게라면 AT 명령을 다음과 같이 작성하실 수 있습니다. 여러분도 같이 한번 작성해 봅시다..
C:\>AT 23:02 /interactive "explorer"
주의하세요..!!! 위의 AT명령으로 스케쥴을 걸 경우에 저는 23:02 로 시간을 지정했습니다만.. 여러분은 현재 여러분의 시스템 시간에 +2 분 정도 한 시간으로 지정하세요... 그래야지.. 이 명령을 설정한 뒤에 한 2분 뒤에.. 이 스케쥴러에 의해서 explorer(탐색기)가 저절로 실행되어지는 것을 보실 수가 있습니다. ^^ |
위의 명령을 실행하면.. 여러분은
새 작업을 추가했습니다. 작업 ID = 1
과 같은 메시지를 받게 될 것입니다. 이것은 정상적으로 현재의 작업을 스케쥴러에 저장했다는 의미가 됩니다. 이러한 메시지를 받았다면 과연 이 작업이 제대로 지정되어져 있는지를 확인하기 위해서.. 다음과 같이 작성하고 실행해 보세요
C:\>AT
이러면 여러분은 다음과 같은 결과를 보실 수가 있습니다. 작업이 제대로 지정되어져 있는 것을 말이지요
AT를 사용할 경우 지정은 위처럼 AT 명령어 [작업을 실행할 시간] [/interactive] "[작업명령]" 으로 지정하시면 됩니다. 하지만 만일, 현재 시간이 밤 9시(즉, 21:00) 인데 여러분이 스케쥴을 걸면서 다음처럼 지난 시간으로 걸게되면....
C:\>AT 20:05 /interactive "notepad"
이 작업은 다음날 저녁 8시 5분에 실행되게 될 것입니다. 어렵지 않죠? ^^
아아.. .interactive 라는 옵션은 여러분의 자신의 서버에서 스케쥴을 걸 경우는 꼭 지정해야 하더군요... 저도 잘은 모릅니다만.. 글케하라는 팁을 전에 보았었답니다. ^^
자... 그렇다면 스케쥴러는 제대로 지정이 되어졌고.. 여러분은 지정된 시간이 되면... 갑자기 탐색기가 저절로 뜨는 것을 보실 수가 있을 것입니다. 재미있지 않나요?
아아.. 혹 explorer 이 왜 탐색기냐? 인터넷 익스플로러가 아니냐? 하시는 분이 있을 수 있는데요... 인터넷 익스플로러의 명령은 iExplorer.exe 이랍니다. ^^
그리고, 이 스케쥴러는 날짜반복 지정이나.. 일자를 정해놓고 특정일자에 실행하게 하는 것등 여러가지 스케쥴링이 지원됩니다만.. 이것까지 다루는 것은 강의의 범위를 벗어나는 것 같고.. 또한 이러한 내용은 NT 사이트들에 가시면 잘 나와있으니 그곳을 참고하시기 바란답니다...
자... 이제 그만그만...
지금 막 여러가지 스케쥴을 걸고 작업을 막 늘리시면서 신나있을 거라는 거 압니다. 저도 그랬으니까요... 하지만, 강좌에 조금은 전념해 주시기 바랍니다... -_-;
이렇게 하는 방법을 알았으니 이것을 한번 WSH로 작성해서.. 적용해 보아야 하겠지요? 좋습니다. 한번 해보자구요... ^^ 다음과 같은 VBS 파일을 하나 만들어 봅시다.
이름하야 launchNotepad.vbs 로 말입니다. (이름이 이상한가? -_-;)
Dim WshShell, NewTime, strAT set WshShell = WScript.CreateObject("WScript.Shell") NewTime = DateAdd("n", 1 ,time) NewTime = hour(NewTime) & ":" & minute(NewTime) strAT = "AT " & NewTime & " /interactive ""notepad"" " WshShell.Run strAT msgbox strAt & " 라고 스케쥴을 걸었습니다" set wshshell = nothing |
그리고 난 다음에 여러분이 이 VBS 파일을 더블클릭해서.. 실행을 하게 되면.... 이제 이 VBS는 실행되면서... 실행되는 현재의 시간을 구해와서 거기다가 1분을 더한 시간으로 스케쥴을 걸게 됩니다.
바로.. 메모장을 1분뒤에 실행하게 하는 스케쥴을 말이지요... ^^
주의하세요... 제가 여러 서버에서 테스트를 해보았는데.. Wndows 2000 인 경우, 몇몇 서버에서는 이상한 이유로 스케쥴러가 제대로 작동하지 않았습니다. 그런 서버는 Windows 2000 ServicePack 2를 한번 설치해 보세요.... 혹시 모르니까요.. 왜 어떤 서버는 안되는 것일까?? 이것은 거의 디폴트로 되어야 하는데 말입니다. -_-; |
자... 그러면 이제 스케쥴러를 사용하는 방법에 대한 이야기는 어느정도 된 것 같구요.. 이제는 VBS 파일안에서 CDONTS를 통해서 메일을 보내는 방법에 대해서 이야기를 해봅시다..
이미 여러분이 ASP & Mail 파트쪽에서 공부를 했다는 전제하에 저는 진행하도록 합니다. asp & mail 파트에서는 여러분이 NT 나 Windows 2000 에서 기본적으로 제공되는 CDONTS 를 사용해서 메일을 쉽게 보낼 수 있다는 사실을 이미 배웠습니다.. ^^ 그렇죠? 그 기억을 그대로 되살리면서 다음 소스를 보도록 하십니다.
MailTest.vbsSet objSendMail = CreateObject("CDONTS.NewMail")objSendMail.From = "admin@test.co.kr" '요기는 자기의 메일주소를 써 주세요 objSendMail.To = "taeyo@inbrein.com" '요기도 자기의 메일주소를 써 주세요 objSendMail.Subject = "안녕하세요? WSH 테스트입니다 (" & Date() & ")" objSendMail.Body = "오오... 태오다 태오" objSendMail.Send Set objSendMail = Nothing msgbox "메일이 발송되었습니다" |
위의 소스에서 만일 현재 테스트하는 서버에 아웃룩 익스프레스에 메일계정이 하나라도 등록이 되어져 있다면... From 부분은 기입하지 않으셔도 됩니다. 그럴 경우 그 기본계정으로 메일이 발송되게 되거든요... 메일이 발송되며 현재 메일을 쏘는 서버의 아이피와 메일을 발송한 기본계정이 무엇인지 다 보내어지니까요.. 메일을 보낸 사람이 누군지 충분히 추적을 할 수가 있습니다. 그러니 이 소스를 가지고 폭탄메일과 같은 안 좋은 일에 사용하면 안돼요... 금방 꼬리를 잡히게 된답니다. 절대 그런 장난은 하지 마세요...
자.. 어쨋든 위의 소스는 이미 여러분이 잘 알고 계시는 소스였어요. 이미 ASP 에서 공부한 부분일 것입니다. ^^
자.. 그럼 이제 무엇을 하려하느냐?
메일을 발송하는데 우리가 메일 보낼 시간을 지정해서 메일을 발송하게끔 하려는 것이랍니다. 위의 메일 소스에서는 단지 본문 내용으로 "오오... 태오다 태오"를 보내고 있지만... 그러한 본문은 여러분이 따로 텍스트로 꾸밀 수 있을 것이며, 그 내용을 FileSystemObject 를 통해서 불러와서 메일을 발송할 수 있을 것입니다.
그쵸? 이전 강좌들(초급강좌)을 모두 공부하고 이 팁을 보시는 것이라면 지금의 제 말이 무슨 의미인지 아실 겁니다. 해서... 관리자인 우리는 하루에 한번 메일링을 보내는데.... 그 내용을 작성한 다음.. 특정 시간에 그 메일이 보내지게 하고 싶다... 이거죠..
그럼 어떻게 하면 될까요? 일단, 보낼 메시지를 작성할 텍스트 파일을 만듭니다. 뭐.. 이것은 그냥 텍스트 파일이니까요... ^^ C:\temp 에 만들어 보도록 하겠습니다.
C:\temp 폴더에 그냥 텍스트 파일 하나만 만들어 보도록 하세요.... "메일발송용텍스트.txt" 라는 이름으로 그냥 만들어 두기만 하세요.. ^^
그리고, 이제 위의 메일발송 소스를 다시금 만들어 보도록 합시다.. 어떻게? 메일의 본문내용을 "메일발송용텍스트.txt" 에서 불러와서 보내는 소스로 말이지요.. ^^ 아마도 다음처럼 만들면 큰 문제가 없겠지요?
SendMail.vbsDim objSendMail, fso, ofile, bodySet objSendMail = CreateObject("CDONTS.NewMail") Set fso = CreateObject("Scripting.FileSystemObject") Set ofile = fso.openTextFile("C:\temp\메일발송용텍스트.txt" ) body = oFile.readAll objSendMail.From = "admin@MyTest.co.kr" objSendMail.To = "taeyo@inbrein.com" objSendMail.Subject = "안녕하세요? 즐거운 오후 2시 입니다." objSendMail.Body = body objSendMail.Send Set objSendMail = Nothing msgbox "메일이 발송되었습니다" |
그리고, C:\temp 안에 있는 "메일발송용텍스트.txt"을 열어서 뭐.. 대충 글을 작성해 봅니다... 다음 그림처럼 말이지요.. ^^
주의주의!!!
WSH가 2000 에서 예상대로 동작하지 않기에.. 잠시 강좌를 보류합니다. 원인을 가능한 한 빨리 파악해서 강좌를 이어서 올리도록 하겠습니다.
감사합니다
출처 : http://cafe.naver.com/q69/53643
'Study' 카테고리의 다른 글
[리눅스 가상호스트]Virtual host (3) | 2010.01.04 |
---|---|
[Linux/리눅스] 새 계정 만들기/지우기, 사용자 아이디 추가/삭제; Create Account (0) | 2010.01.04 |
Windows Script Host ① (0) | 2009.06.24 |
opera 10 a 버젼 사용. (0) | 2009.02.02 |
웹브라우져 다운시키기 (0) | 2009.02.02 |