차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
tech:lftp [2014/03/18 18:01] – 바깥 편집 127.0.0.1 | tech:lftp [2016/07/12 09:26] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | {{tag> | ||
+ | ======Lftp====== | ||
+ | |||
+ | |||
+ | - commandline interface 기반의 강력한 ftp client | ||
+ | - ftp, http, sftp, https, ftps 의 다양한 프로토콜 지원 | ||
+ | - 심각한 에러에 대한 예외 처리가 잘 되어있고, | ||
+ | - ftp서버가 REST명령어를 지원하지 않더라도 lftp는 성공적으로 전송을 끝내기 위해서 재시도 한다 | ||
+ | - 백그라운드 모드를 지원하다 [/summary] | ||
+ | - lftp는 ipv6를 지원한다. 물론 ftp proxy , http proxy 등 라우레벨 까지 지원한다. | ||
+ | - lftp는 ssl 지원가능하다. | ||
+ | |||
+ | |||
+ | ===== 환경설정 ===== | ||
+ | |||
+ | - lftp의 기본 환경 설정파일은 / | ||
+ | - 명령어 line에서도 설정을 할수있습니다. \\ 스크립트 사용시 필요한 옵션에 대해 기술합니다. | ||
+ | - 사용예 : 환경설정 사이의 구분은 ; 로 합니다. < | ||
+ | lftp -c "set ftp: | ||
+ | </ | ||
+ | |||
+ | ^ ftp: | ||
+ | ^ net: | ||
+ | ^ set net:timeout 5 | 접속시도 시간이 timeout시간을 초과할 경우 재 접속을 시도합니다.(초 단위) | | ||
+ | ^ net: | ||
+ | ^ set file: | ||
+ | ^ set ftp:charset cp949 | 원격 시스템의 캐릭터셋을 정의한다. | | ||
+ | |||
+ | |||
+ | ===== 명령어 ===== | ||
+ | |||
+ | * 스크립트를 통해 파일을 업로드 하거나 다운로드 할 때 ncftpget등을 사용하게 되는데 2G이상의 파일을 받지 못하는 경우가 있습니다. \\ 이러한 문제를 해결하고 rsync를 통해 동기화를 하는 듯한 기능까지 가지고 있는 lftp를 소개 합니다. | ||
+ | |||
+ | ==== mget ==== | ||
+ | -여러개의 파일을 다운 받을때 | ||
+ | - 기본 사용법 < | ||
+ | - 이어받기(이미 동일한 파일이 있으면 받지 않습니다.) < | ||
+ | |||
+ | ==== mirror ==== | ||
+ | - 동기화(rsync와 유사한 기능이라고 보심됩니다.) | ||
+ | - 기본 사용법 < | ||
+ | - remote site의 id의 home디렉토리와 접속서버의 /target 디렉초리를 동기화 시킵니다. | ||
+ | - 유용한 옵션 | ||
+ | -c : mget과 마찬가지로 이어받기를 합니다. | ||
+ | -e : rsync의 --delete와 같은 기능으로 remote site에 파일이 삭제되었을 경우 current site에서도 제거를 합니다. | ||
+ | -R : 일반적으로 remote site가 기준이되어 이를 동기화 하는데 \\ -R옵션을 주게되면 current site를 기준으로 remote site에 변경을 가하게됩니다.\\ 원격서버에 업로드(reverse mirror) | ||
+ | - 사용예 < | ||
+ | |||
+ | * lftp 다음의 -c 와 mirror 다음의 -c는 서로 다른 옵션입니다. \\ 즉 전자는 lftp프로그램에 대한 옵션이고 후자는 mirror에 대한 옵션입니다. | ||
+ | |||
+ | ==== du ==== | ||
+ | - 전체의 용량 확인 | ||
+ | |||
+ | |||
+ | ==== gzip ==== | ||
+ | - gzip으로 압축된 파일을 전송하지 않고 볼 수 있는 zcat 과 zmore 명령어를 지원한다. | ||
+ | < | ||
+ | lftp [email protected]: | ||
+ | Usage: zcat < | ||
+ | Same as cat, but filter each file through zcat | ||
+ | lftp [email protected]: | ||
+ | Usage: zmore < | ||
+ | Same as more, but filter each file through zcat | ||
+ | </ | ||
+ | |||
+ | ==== sftp ==== | ||
+ | - sftp프로토콜을 이용하여 보안 접속을 할 수 있다. | ||
+ | - lftp는 이런 보안 프로토콜을 제공하기 때문에 더욱 다양한 환경에서 파일전송을 쉽게 할 수 있다. | ||
+ | - 예 < | ||
+ | $ lftp -u starlits sftp:// | ||
+ | password: | ||
+ | lftp [email protected]: | ||
+ | </ | ||
+ | |||
+ | ==== http ==== | ||
+ | - http를 지원한다. | ||
+ | - 자체 파서로 링크를 분석하여 디렉토리 구조로 나타낸다. | ||
+ | - 웹기반 ftp서버에 쉽게 접근하여 원하는 자료를 다운 받을 수 있는 강력한 기능을 내장하고 있다. < | ||
+ | oracle@eagle: | ||
+ | cd ok, cwd=/ | ||
+ | lftp www.adminschool.net:/> | ||
+ | </ | ||
+ | |||
+ | ==== backgroud jobs ==== | ||
+ | - 만약 모든 작업이 끝나지 않은 상태에서 lftp를 정지해야 한다면, 작업 내용을을 백그라운드로 돌릴 수 있다. | ||
+ | - lftp는 쉘과 비슷한 명령어 문법을 제공한다. background(& | ||
+ | - 하던 작업을 백그라운드로 돌리고 싶으면 Ctrl+z키를 누르고, 다시 wait명령어로 포그라운드로 돌릴 수 있다. | ||
+ | - 돌고 있는 작업들을 보려면 jobs명령으로 볼 수 있다. 어떤 명령어(cat, | ||
+ | - 이런 명령어들은 논리연산자(&&, | ||
+ | - 첫번째 명령어는 file내용을 리다이렉트를 이용하여 gzip으로 압축하여 file.gz으로 저장하는 방법을 보여주는 것이며, \\ 다음 라인은 백그라운드 모드로 file을 내려 받는 것을 보여 주며, \\ 마지막 라인은 명령어들을 묶고, && 조건 연산을 사용하여 백그라운드 모드로 돌리는 것을 보여준다. < | ||
+ | lftp> cat file | gzip > file.gz | ||
+ | lftp> get file & | ||
+ | lftp> (cd /path && get file) & | ||
+ | </ | ||
+ | |||
+ | ==== at / queue ==== | ||
+ | - at 명령어를 사용하여 정해진 시간에 작업을 실행할수도 있며, \\ queue명령어를 사용하여 명령어를 차례대로 실행시킬수 있다. | ||
+ | - 물론 진행상황을 보려면 jobs명령으로 가능하다. | ||
+ | |||
+ | |||
+ | |||
+ | ===== 예제 ===== | ||
+ | - lftp에 접속한다. < | ||
+ | - passive mode를 설정한다. < | ||
+ | - 원격 ftp 서버에 있는 데이타를 가지고 온다. < | ||
+ | - 로컬에 있는 파일을 ftp 서버로 전송한다. < | ||
+ | |||
+ | ===== 심화예제===== | ||
+ | |||
+ | Create a script for lftp: | ||
+ | |||
+ | Code: | ||
+ | open ftp:// | ||
+ | mirror -R -v --only-newer / | ||
+ | and a shell script to execute it | ||
+ | |||
+ | Code: | ||
+ | lftp -f backupScript.txt & | ||
+ | |||
+ | |||
+ | |||
+ | ^ 로긴 후 수정하실 수 있습니다. 관심있는 분들의 많은 참여 부탁드립니다. 문법은 [[wiki: | ||
+ | |||
+ | * 출처: [[debianlinux.or.kr|]] | ||
+ | |||