자동으로 파일을 백업해서 ftp 서버에 올리거나, 다운로드 받는 배치파일을 만드는 방법

 
반응형

7-zip 7Z와 Windows 작업스케줄러로 자동압축 스크립트 배치파일 만들어서 정기적으로 자동 백업받는 방법

WinRAR 프로파일 기능으로 자동압축, SFX EXE 배포 스크립트 배치파일 만드는 방법

위에서 자동으로 특정시간에 백업파일을 생성하는 방법을 설명했는데, 기왕이면 백업을 받고, FTP나 특정 디렉토리로 옮기면 더 좋을것입니다.

뭐 특정 디렉토리로 옮기는것은 위에서 압축시 해당 디렉토리를 지정하거나, 배치파일의 끝에 move나 copy 명령을 통해서 간단하게 처리할수 있는데, 이번에는 ftp로 자료를 옮기는 방법입니다.

이것도 간단하게 처리를 할수 있는데, 배치파일과 windows에 있는 ftp.exe 파일을 이용해서 작성이 쉽게 가능합니다.

우선 cmd 창에서 ftp /? 라고 입력하면 아래와 같은 화면이 나옵니다

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\danbisw>ftp /?

FTP 서버 서비스(디먼이라고도 함)를 실행하는 컴퓨터로서, 또는 그 컴퓨터로 파일을 전송합니다. Ftp는 대화형으로 사용할 수 있습니다.

FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-A] [-x:sendbuffer] [-r:recvbuf
fer] [-b:asyncbuffers] [-w:windowsize] [host]

  -v              원격 서버 응답을 표시하지 않습니다.
  -n              초기 연결 시 자동 로그인을 생략
  -i              복수 파일 전송 중에 대화형 묻기 기능을 사용하지 않음
  -d              디버깅을 사용
  -g              파일 이름에 와일드카드를 사용하지 않습니다(GLOB 명령 참조).
  -s:filename     FTP 명령이 들어 있는 텍스트 파일을 지정합니다.

                   이 명령은 FTP가 시작된 후에 자동으로 실행됨
  -a              데이터 연결을 바인딩할 때 로컬 인터페이스를 사용
  -A              익명으로 로그인
  -x:send sockbuf 기본 SO_SNDBUF 크기인 8192를 재정의
  -r:recv sockbuf 기본 SO_RCVBUF 크기인 8192를 재정의
  -b:async count 기본 비동기 개수인 3을 재정의
  -w:windowsize   기본 전송 버퍼 크기인 65535를 재정의
  host            연결할 원격 호스트의 호스트 이름 또는 IP 주소를 지정

참고:
  - mget 및 mput 명령에서 y/n/q는 yes/no/quit을 의미
  - 명령을 중단하려면 Ctrl+C를 누릅니다.

위에보면 -s:파일명이 있는데, 이부분을 사용하는것입니다.

사용자가 ftp서버에 접속해서 로그인하고, 파일을 올리는 과정을 하나의 스크립트로 작성하는것입니다.

위가 스크립트 파일인데, open으로 서버에 접속하고, 사용자명과 비밀번호를 입력하고, 원하는 디렉토리로 이동

prompt, bin, hash(화면상에 전송되는것이 보이는 옵션)로 전송준비를 완료하고,

mget으로 파일을 ftp에서 다운로드 받고, mdelete로 삭제를 하고, ftp를 종료(bye)하는 스크립트 입니다.

만약 파일을 업로드하고 싶은 경우에는 put aaa.exe 와 같은 식으로 지정하면 됩니다.

그리고 여러파일을 받거나 삭제할경우에는 mget, mdelete처럼 앞에 multi의 m을 붙여주면 되고, 하나씩 올리거나 지울때는 m을 빼고, put, get, delete를 사용하시면 됩니다.

암튼 ftp 프로그램에서 실행한 스크립트는 이런식으로 작성을 하시면 되고, 이제는 이 스크립트를 작성할 batch 파일을 작성하시면 됩니다.

위 처럼 d:, cd \로 이동하는 이유는 d:\에 다운로드를 받거나, d:\에 있는 파일을 올리기 위함입니다.


만약 d:\test 에 있는 폴더에서 작업을 하고 싶다면 cd test 를 한줄 더 넣어주시면 되고,

이후에 ftp -s:스크립트파일 식으로 입력을 해주시면 됩니다.

그러고나서 입력을 하면 만약 ftp를 처음 사용하는 경우 외부 사이트와 연결이 되기 때문에 방어벽 프로그램에서 접속을 허용할것이냐고 물어보는데, 그때 Yes를 눌러주시면 되고, 이후에는 메세지 없이 위처럼 자동적으로 파일을 다운로드 받거나 올리수 있습니다.

개발자이거나 업체에서 다른 클라이언트에서 자료를 보내주는것을 모를경우 일일히 설명하기 귀찮을때 스크립트를 만들어서 bat2com 같은 파일로 변환해서 자동으로 파일을 올리도록 하고, 업체측에서는 매일 한시간(윈도우 스케줄러나 hotkeyboard같은 프로그램을 이용)마다 혹시 올라온 파일이 있는지 자동으로 검색 다운로드 하게 하면 됩니다.

7-zip 7Z와 Windows 작업스케줄러로 자동압축 스크립트 배치파일 만들어서 정기적으로 자동 백업받는 방법

WinRAR 프로파일 기능으로 자동압축, SFX EXE 배포 스크립트 배치파일 만드는 방법

이외에 개인분이라면 중요한 소스나 파일들을 정기적으로 자동압축하고, 이런 스크립트를 통해서 FTP로 올리면 되는데, 정기적으로 압축해서, ftp에 올리는 같은 작업을 반복하시는 분이라면 도움이 될듯 합니다.

반응형