2013. 2. 28. 11:35ㆍ99. 정리전 - IT/13. Unix 얇팍지식
UNIX FTP 이용방법
절차1. 접속시도
$> ftp xxx.xxx.xxx.xxx
ftp> id
ftp> password
절차2. 접속된 서버의 디렉토리 위치(현재) 확인 : remote서버의 경로확인
ftp> pwd
절차3. 접속을 시도한 로컬 위치(현재) 확인 : !pwd
ftp> !pwd <=== unix shell의 pwd실행.
ftp> ! <=== 잠시 unix shell로 나들이.
절차4. 접속된 원격의 서버에서 경로이동 : cd cdup or cd .. or cd ~/src등.
ftp> cd src <=== remote서버의 현재 위치에서 하위의 src폴더로 이동.
로컬서버에서의 경로이동
ftp> lcd src <=== local서버의 현재 위치에서 하위의 src폴더로 이동 또는
ftp> !
$> cd src
$> exit
ftp>
절차5. 파일 확인 및 전송준비
ftp> pwd <=== 현위치확인
ftp> ls <=== 목록확인
ftp> bin <=== 전송모드 binary전환
ftp> hash <=== 파일전송 도중에 "#"표시를 하여 전송중임을 나타낸다.
ftp> get filename <=== 파일을 remote에서 local로 download
ftp> put filename <=== 파일을 local에서 remote로 upload
절차6. ftp 종료 : bye
ftp> bye
$>
ascii : 전송모드를 ASCII모드로 설정한다. (ascii or as)
binary : 전송모드를 BINARY모드로 설정한다. (binary or bin)
bell : 명령어 완료시 벨소리를 나게 한다.
bye : ftp접속을 종료하고 빠져나간다.
cd : remote system의 디렉토리를 변경한다.
cdup : remote system의 한단계 상위디렉토리로 이동한다.
chmod : remote system의 파일 퍼미션을 변경한다. (chmod 755 index.html)
close : ftp 접속을 종료한다.
delete : remote system의 파일을 삭제한다. (delete index.old)
dir : remote system의 디렉토리 내용을 디스플레이한다.
disconnect : ftp 접속을 종료한다.
exit : ftp 접속을 종료한다.
get : 지정된 파일을 가져온다. (get index.html)
hash : 파일전송도중에 "#"표시를 하여 전송중임을 나타낸다.
help : ftp 명령어 도움말을 볼 수 있다.
lcd : local system의 디렉토리를 변경한다.
ls : remote system의 디렉토리 내용을 디스플레이한다.
mdelete : 여러개의 파일을 한꺼번에 지울 때 사용한다. (mdelete *.old)
mget : 여러개의 파일을 한꺼번에 가져올때 사용한다. (mget *.gz)
mput : 여러개의 파일을 한꺼번에 remote system에 올린다. (mput *.html)
open : ftp 접속을 시도한다.
prompt : 파일전송시에 확인과정을 거친다. on/off 토글
put : 하나의 파일을 remote system에 올린다. (put index.html)
pwd : remote system의 현재 작업디렉토리를 표시한다.
quit : ftp 접속을 종료한다.
rstatus : remote system의 상황(version, id 등)을 표시한다.
rename : remote system의 파일명을 바꾼다.
rmdir : remote system의 디렉토리를 삭제한다.
size : remote system에 있는 파일 크기를 byte단위로 표시한다.
status : 현재 연결된 ftp 세션 모드에 대한 설정을 보여준다.
type : 전송모드를 설정한다. (type or type ascii or type binary)
SHELL 에서 사용하는 FTP 접속 프로그램 예제
#!/bin/sh
TEMPDIR=$HOME/tmp # 임시저장 디렉토리 지정
TEMPFILE1=$TEMPDIR/file1.log # 임시파일 1 파일명 지정
TEMPFILE2=$TEMPDIR/file2.log # 임시파일 2 파일명 지정
TARGETDIR=/data # 타겟디렉토리 지정
TODAY=`date +%Y%m%d` # 날짜구하는 명령
SERVERNAME=서버명 # 서버명 지정
USERNAME=사용자이름 # 사용자이름 지정
PASSWORD=패스워드 # 패스워드 지정
# 임시파일이 있으면 지우기
if [ -f $TEMPFILE1 ]; then
rm -f $TEMPFILE1 $TEMPFILE2
fi
# 임시디렉토리가 있으면 지우기
if [ -d $TEMPDIR ]; then
rm -rf $TEMPDIR
fi
# 파일 리스트 가져오는 함수
getlist() {
ftp -n $SERVERNAME << EOF
user $USERNAME $PASSWORD
cd $TARGETDIR
ls SWIN02_MSP_SUBS_ID0002_T$TODAY*.FIN
bye
EOF # 이부분은 반드시 첫째줄에서 시작
}
mkdir -p $TEMPDIR # 임시디렉토리 생성
getlist > $TEMPFILE1 # 파일리스트 가져와 임시파일1 저장
# FIN file이 있는지 확인 결과를 임시파일2에 저장
grep SWIN02_MSP_SUBS_ID0002_T$TODAY $TEMPFILE1 > $TEMPFILE2
# FIN file이 있다면 임시파일2에 내용이 들어갈 것이므로 size는 0보다 클것(-s)
if [ -s $TEMPFILE2 ]; then
ftp -n $SERVERNAME << EOF
user $USERNAME $PASSWORD
cd $TARGETDIR
bin
prompt
mget SWIN02_MSP_SUBS_ID0002_T$TODAY*.DAT
bye
EOF
fi
#######################################