SFTP 디렉토리 삭제 - SFTP dilegtoli sagje

don't stop believing

Linux/Basic

sftp - 파일 또는 폴더를 업로드/다운로드 합니다.

Tongchun 2019. 4. 26. 14:53

scp보다 좀 더 기능이 많은 sftp도 있습니다.

sftp도 ssh를 기반으로 실행되며 sftp로 remote server로 접속 후 get 또는 put 명령으로 파일일 내려받거나 올릴 수 있습니다. shell(interactive command) 명령도 사용할 수 있습니다.

먼저 sftp로 remote server에 접속합니다.

$ sftp 
's password: 
Connected to .
sftp> 

sftp로 접속하면 sftp 프롬프트 창이 생성됩니다.

sftp 프롬프트 창에서 ls -al, cd, mkdir 등의 interactive command를 실행할 수 있습니다.

사용할 수 있는 interactive command 명령은 아래 링크에서 확인할 수 있습니다.

https://www.mankier.com/1/sftp#Interactive_Commands

sftp - secure file transfer program - man page | ManKier

Batch mode reads a series of commands from an input batchfile instead of stdin. Since it lacks user interaction it should be used in conjunction with non-interactive authentication to obviate the need to enter a password at connection time (see sshd(8) and

www.mankier.com

가장 많이 사용하는 명령은 cd, mkdir, pwd, get, put, exit 정도입니다.

sftp로 remote server 접속 후 cd로 파일을 내려받거나 올리고자 하는 경로로 이동합니다.

그리고 get으로 파일을 다운 받거나, put으로 파일을 올릴 수 있습니다.

sftp 프롬프트 창을 종료하려면 exit 명령을 실행하면 됩니다.

위에서 접속한 10.10.0.118 서버에서 pwd 명령으로 디렉토리 경로를 확인해 봅니다.

sftp> pwd
Remote working directory: /home/tongchun

pwd 명령을 실행하면 remote server의 디렉토리 경로를 확인할 수 있습니다.

lpwd 명령을 실행하면 현재의 로컬 PC의 경로를 확인할 수 있습니다.

sftp> lpwd
Local working directory: /Users/tongchunkim

이번엔 파일 리스트를 확인해 봅니다.

sftp> ls -l
drwxrwxr-x    5 tongchun tongchun       39 Apr 17 05:59 go
-rw-rw-r--    1 tongchun tongchun 127928770 Apr 11 22:09 go1.12.4.linux-amd64.tar.gz
-rw-r--r--    1 root     root         6140 Nov 12  2015 mysql-community-release-el7-5.noarch.rpm

go1.12.4.linux-amd64.tar.gz 파일을 다운받아 보겠습니다. 명령어는 get 입니다.

sftp> get go1.12.4.linux-amd64.tar.gz
Fetching /home/tongchun/go1.12.4.linux-amd64.tar.gz to go1.12.4.linux-amd64.tar.gz
/home/tongchun/go1.12.4.linux-amd64.tar.gz                             100%  122MB  57.0MB/s   00:02

잘 받아졌는지 로컬 PC의 파일 리스트를 확인해 봅니다. 로컬 PC에 명령을 보내려면 remote server에서 사용한 명령 앞에 l를 붙여줍니다.

sftp> lls -l
total 263904
drwxr-xr-x    3 tongchunkim  staff         96  7 30  2018 AndroidStudioProjects
drwx------@   4 tongchunkim  staff        128 12 12  2017 Applications
drwx------+   6 tongchunkim  staff        192  4 22 19:08 Desktop
drwx------+  31 tongchunkim  staff        992  3 18 10:00 Documents
drwx------+  75 tongchunkim  staff       2400  4 25 16:54 Downloads
drwx------@  10 tongchunkim  staff        320  1 28 19:18 Dropbox
drwx------@  83 tongchunkim  staff       2656  4  6 14:16 Library
drwx------+   3 tongchunkim  staff         96 12 12  2017 Movies
-rw-r--r--    1 tongchunkim  staff  127928770  4 26 14:44 go1.12.4.linux-amd64.tar.gz
-rw-r--r--    1 tongchunkim  staff       9180  1 12  2018 jmeter.log
drwxr-xr-x   14 tongchunkim  staff        448  2  6  2018 macaronRamlProject
-rw-r--r--    1 tongchunkim  staff      26484  7 29  2018 package-lock.json
drwxr-xr-x    3 tongchunkim  staff         96  9 16  2018 snakepit

go1.12.4.linux-amd64.tar.gz이 보이네요.

이번에는 파일을 업로드해 보겠습니다. jmeter.log 파일을 올려봅시다. 파일을 올리는 명령은 put입니다.

sftp> put jmeter.log    
Uploading jmeter.log to /home/tongchun/jmeter.log
jmeter.log                                                             100% 9180   268.9KB/s   00:00

파일이 잘 올라갔는지 확인해 봅니다.

sftp> ls -l
drwxrwxr-x    5 tongchun tongchun       39 Apr 17 05:59 go
-rw-rw-r--    1 tongchun tongchun 127928770 Apr 11 22:09 go1.12.4.linux-amd64.tar.gz
-rw-r--r--    1 tongchun tongchun     9180 Apr 26 01:49 jmeter.log
-rw-r--r--    1 root     root         6140 Nov 12  2015 mysql-community-release-el7-5.noarch.rpm

파일이 잘 올라가네요.

sftp를 종료할 때는 exit 입니다.

다른 interactive command를 확인하면 더 유용하게 사용할 수 있을 것 같습니다.

sftp 명령은 ftp와 유사한 사용자 인터페이스가 있는 대화식 파일 전송 프로그램입니다. 하지만 sftp는 SSH FTP(File Transfer Protocol)를 사용하여 서버에 대한 보안 연결을 만듭니다. ftp 명령으로 사용할 수 있는 옵션 중 일부는 sftp 명령에 포함되어 있지 않지만 대부분의 명령이 포함되어 있습니다.

필수 sftp 명령

다음 표는 필수 sftp 명령을 나열합니다.

표 3-2 필수 sftp 명령

명령

설명

sftp

remote-system

원격 시스템에 대한

sftp

연결을 설정합니다. 자세한 내용은

원격 시스템에 대한 sftp 연결을 열고 닫는 방법

을 참조하십시오.

sftp

remote-system: file

remote-system에서 명명된 file을 복사합니다.

bye

sftp

세션을 종료합니다.

help

sftp

명령을 모두 나열합니다.

ls

원격 작업 디렉토리의 내용을 나열합니다.

lls

로컬 작업 디렉토리의 내용을 나열합니다.

pwd

원격 작업 디렉토리의 이름을 표시합니다.

cd

원격 작업 디렉토리를 변경합니다.

lcd

로컬 작업 디렉토리를 변경합니다.

mkdir

원격 시스템에서 디렉토리를 만듭니다.

rmdir

원격 시스템에서 디렉토리를 삭제합니다.

get

원격 작업 디렉토리에서 로컬 작업 디렉토리로 파일을 복사합니다.

put

로컬 작업 디렉토리에서 원격 작업 디렉토리로 파일을 복사합니다.

delete

원격 작업 디렉토리에서 파일을 삭제합니다.

자세한 내용은 sftp(1) 매뉴얼 페이지를 참조하십시오.

원격 시스템에 대한 sftp 연결을 열고 닫는 방법

  1. sftp 명령을 사용하여 원격 시스템에 대한 연결을 엽니다.
    $ sftp remote-system

    연결에 성공하면 확인 메시지 및 프롬프트가 표시됩니다.

  2. 메시지가 표시되면 암호를 입력합니다.
    Password: password

    sftp 인터페이스에서 암호가 수락되면 확인 메시지 및 (sftp>) 프롬프트가 표시됩니다.

    이제 help를 비롯하여 sftp 인터페이스에 제공되는 모든 명령을 사용할 수 있습니다. 주요 명령은 표 3-2에 요약되어 있습니다.

  3. sftp 연결을 닫습니다.
    sftp> bye

예 3-2 원격 시스템에 대한 sftp 연결 열기

다음 sftp 세션은 원격 시스템 pluto에 연결하도록 설정되었습니다.

$ sftp pluto
Connecting to pluto.
Password: password
sftp>

원격 시스템에서 파일을 복사하는 방법(sftp)

  1. sftp 연결을 설정합니다.

    원격 시스템에 대한 sftp 연결을 열고 닫는 방법을 참조하십시오.

  2. (옵션) 파일을 복사할 로컬 시스템의 디렉토리로 변경합니다.
    sftp> lcd target-directory
  3. 소스 디렉토리로 변경합니다.
    sftp> cd source-directory
  4. 소스 파일에 대한 읽기 권한이 있는지 확인합니다.
    sftp> ls -l
  5. 파일을 복사하려면 get 명령을 사용합니다.

    get 명령과 함께 메타 문자를 사용할 수 있습니다.

    sftp> get filename 
  6. sftp 연결을 닫습니다.
    sftp> bye

예 3-3 원격 시스템에서 파일 복사(sftp)

이 예에서는 사용자가 pluto 시스템에 대한 sftp 연결을 열고 get 명령을 사용하여 /tmp 디렉토리에서 단일 파일을 복사합니다.

$ sftp pluto
Connecting to pluto...
Password: xxx
sftp> lcd /tmp
sftp> cd /tmp
sftp> ls
filea
files
ps_data
sftp> get filea
/tmp/filea                                100%  494     0.5KB/s   00:00
sftp> bye

원격 시스템으로 파일을 복사하는 방법(sftp)

  1. 로컬 시스템의 소스 디렉토리로 변경합니다.

    sftp 명령을 입력하는 디렉토리가 로컬 작업 디렉토리이므로 이 작업의 소스 디렉토리입니다.

  2. sftp 연결을 설정합니다.

    원격 시스템에 대한 sftp 연결을 열고 닫는 방법을 참조하십시오.

  3. 대상 디렉토리로 변경할 수 있습니다.
    sftp> cd target-directory
  4. 대상 디렉토리에서 쓰기 권한이 있는지 확인합니다.
    sftp> ls -l target-directory
  5. 단일 파일을 복사하려면 put 명령을 사용합니다.

    get 명령과 함께 메타 문자를 사용할 수 있습니다.

    sftp> put filename
  6. sftp 연결을 닫습니다.
    sftp> bye

예 3-4 원격 시스템에 파일 복사(sftp)

이 예에서는 사용자가 pluto 시스템에 대한 sftp 연결을 열고 put 명령을 사용하여 자신의 시스템에서 pluto 시스템의 /tmp 디렉토리로 파일을 복사합니다.

$ cd /tmp
$ sftp pluto
Password: xxx
sftp> cd /tmp
sftp> put filef
uploading filef to /tmp/filef
filef                                     100%  325     0.3KB/s   00:00
sftp> ls
filea
filef
files
sftp> bye

Copyright © 2002, 2012, Oracle and/or its affiliates. All rights reserved. 법적 공지

SFTP 디렉토리 삭제 - SFTP dilegtoli sagje
SFTP 디렉토리 삭제 - SFTP dilegtoli sagje