개발

[FTP] 리눅스 shell script로 FPT 사용하기

Fine애플 2021. 9. 23. 22:24

파일 서버를 구축해둔 경우 client 환경(리눅스, Mac OS 등)에서 FTP로 파일을 주기적으로 가져오는 방법을 정리하고자 한다.

 

1. FTP 설치

1) Ubuntu에서 설치

vsftpd를 설치해준다.

apt-get update
apt-get install vsftpd

 

2) Mac OS

Mac OS의 경우 Sierra부터 FTP가 내장 프로그램에서 삭제되었다고 한다. Mac의 패키지 관리 툴인 brew가 설치되어 있는 경우 inetuitls를 설치해준다.

brew install inetutils

 

2. FTP shell script

기본 구조는 아래와 같다.

#!/bin/sh

SERVER="xxx.xxx.xxx.xx"  # 1
PORT="1234"  # 1
USER="ID"
PASS="PASSWORD"

DOWN_DIR="/path/of/file/in/remote"
LOCAL_DIR="/path/of/file/to/download"
FILE_NAME="data.db"

ftp -in -p $SERVER $PORT << sess  # 2
user $USER $PASS
bin  # 3
prompt  # 4
cd $DOWN_DIR
get $FILE_NAME  # 5
mget *.log  # 6
bye
sess

 

주의해야할 부분들은 아래와 같다.

  • #1: 서버 주소와 포트 번호는 별도로 기입해주는게 좋다. 그리고 꼭 변수와 값 사이에 공백이 없도록 붙여쓴다. 안그러면 command not found 에러 난다.
  • #2: -i 옵션은 여러 파일을 받는 mget 사용 시 prompt 모드를 끄며, -n 옵션은 자동 로그인을 방지한다. 또한 'sess'는 사용자가 임의로 지정해주면 된다.
  • #3: bin은 파일 전송모드를 바이너리로 변경한다.
  • #4: prompt 모드를 끄는 옵션이며, 파일 받을 때 y/n을 물어보지 않고 진행한다.
  • #5: 파일을 하나 받을 때는 get을 쓴다
  • #6: 여러 파일을 한꺼번에 받을 때는 mget을 쓴다.

 

source 명령어로 실행시키면 아래와 같이 뜨며, 파일 다운로드가 다 되면 다음 커멘드 라인이 뜬다.

 

 

[출처]

 

 

728x90
댓글수0