[Image of FTP client server data transfer diagram]리눅스 쉘 환경에서 FTP 서버에 접속하여 파일을 업로드/다운로드하는 필수 명령어와 주요 옵션을 정리합니다. 또한 트러블슈팅 시 유용한 FTP 응답 코드(Response Code)의 의미를 설명합니다.
1. 서버 접속 및 로그인 (Connection)
FTP 클라이언트를 실행하여 원격 서버에 접속하는 과정입니다. open 명령어를 사용하거나 실행 시 인자로 IP를 전달합니다.
[test@zeroTest]$ ftp 210.xxx.xxx.xxx
Connected to 210.xxx.xxx.xxx.
220 web17 FTP server (Version 5.60) ready.
Name (210.xxx.xxx.xxx:test): [아이디 입력]
331 Password required for user.
Password: [패스워드 입력]
230 User test logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
2. 디렉토리 탐색 (Navigation)
FTP는 원격(Remote) 서버와 로컬(Local) 클라이언트의 디렉토리를 동시에 제어해야 합니다. 로컬 명령어 앞에는 주로 l(local)이 붙습니다.
원격 서버 (Remote) 제어
pwd: 원격 서버의 현재 경로 확인ls(또는dir) : 원격 서버의 파일 목록 출력cd [path]: 원격 서버의 디렉토리 이동cdup: 원격 서버에서 상위 디렉토리로 이동
로컬 클라이언트 (Local) 제어
!pwd: 로컬 클라이언트의 현재 경로 확인lcd [path]: 로컬 클라이언트의 작업 디렉토리 변경 (다운로드/업로드 위치 변경 시 필수)
# 로컬 다운로드 경로를 /bin으로 변경 예시
ftp> lcd /bin
Local directory now /bin
3. 파일 전송 설정 (Transfer Settings)
파일 전송 전, 전송 모드와 시각적 피드백 옵션을 설정하는 것이 중요합니다.
전송 모드 (Transfer Mode)
바이너리 파일(이미지, 실행파일, 압축파일 등) 전송 시 반드시 binary 모드를 사용해야 파일 깨짐을 방지할 수 있습니다.
ascii(또는as) : 텍스트 파일 전송 모드binary(또는bi) : 바이너리 전송 모드 (권장)
편의 옵션
hash: 파일 전송 진행 상황을#(Hash Mark)로 표시 (대용량 파일 전송 시 유용)prompt: 다중 파일 전송(mget/mput) 시 파일마다 확인하는 과정을 On/Off
ftp> binary
200 Type set to I.
ftp> hash
Hash mark printing on (1024 bytes/hash mark).
4. 파일 업로드 및 다운로드
단일 파일 처리와 다중 파일(Wildcard * 사용) 처리 명령어가 구분됩니다.
다운로드 (Server -> Local)
get [filename]: 단일 파일 다운로드mget [pattern]: 다중 파일 다운로드 (예:mget *.pdf)
ftp> get thinkinjava.pdf
local: R389.PDF remote: R389.PDF
200 PORT command successful.
150 Opening BINARY mode data connection for R389.PDF (44028 bytes).
#######################
226 Transfer complete.
업로드 (Local -> Server)
put [filename]: 단일 파일 업로드mput [pattern]: 다중 파일 업로드 (예:mput *.html)
5. 기타 관리 명령어
delete [filename]/mdelete [pattern]: 원격 파일 삭제mkdir [dirname]/rmdir [dirname]: 원격 디렉토리 생성 및 삭제chmod [mode] [file]: 원격 파일 권한 변경 (예:chmod 755 run.sh)rename [old] [new]: 파일 이름 변경size [filename]: 파일 크기(Byte) 확인bye,quit,exit: 접속 종료
6. FTP 응답 코드 (Response Codes)
서버가 반환하는 3자리 숫자를 통해 트러블슈팅이 가능합니다. 주요 코드는 다음과 같습니다.
| Code | Description (의미) |
|---|---|
| 150 | 파일 상태 정상. 데이터 연결을 엽니다. (전송 시작) |
| 200 | 명령어 성공 (OK) |
| 220 | 서비스 준비 완료 (접속 초기 메시지) |
| 226 | 데이터 연결 닫힘. 요청 작업 성공 (전송 완료) |
| 230 | 사용자 로그인 성공 |
| 331 | 사용자 이름 확인됨. 패스워드 필요 |
| 421 | 서비스 사용 불가. 연결 종료 |
| 425 | 데이터 연결을 열 수 없음 (방화벽, Passive 모드 이슈 등) |
| 530 | 로그인 실패 (ID/PW 오류) |
| 550 | 요청 작업 실패 (파일 없음, 권한 부족 등) |
Next Step:
FTP는 데이터를 암호화하지 않아 보안에 취약합니다. OpenSSH에 포함된 sftp 명령어를 사용하여 암호화된 파일 전송 환경을 구성하는 방법을 검토해보십시오.