파일 서버를 구축해둔 경우 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
'개발' 카테고리의 다른 글
[ubuntu] tar 명령어 (0) | 2022.07.08 |
---|---|
[Miniconda] 가상환경 명령어 (0) | 2022.01.18 |
[GCP] Python에서 GCP Cloud Storage 연동하기 (0) | 2021.09.05 |
[jupyter] jupyterthemes로 jupyter notebook 테마 설정하기 (0) | 2021.08.29 |
[MAC] zsh로 miniconda 실행하기(zsh: command not found) (0) | 2021.08.26 |