Использование lftp

diesel

2008-01-10

Всем приходится пользоваться ftp-клиентами, иногда даже консольными. Стоит про них знать. Консольных клиентов несколько - самый простой ftp, он есть почти везде - немного отличается по реализации в разных системах. Из более удобных продвинутых есть lftp и ncftp. Про второй пока промолчу, я им почти не пользовался, про lftp пойдет речь ниже.

Подключение

Подключение к серверу возможно несколькими способами. Если вызываем lftp вот так:

lftp ftp.domain.com
  

то подключаемся под анонимусом (anonymous) к ftp.domain.com. Можно указать логин и/или пароль при подключении:

lftp login:password@ftp.domain.com

Подобная нотация будет работать для большинства других, в т.ч. и GUI клиентов.

Еще один способ, уже через внутреннюю команду open, в lftp. Запускаем lftp без параметров:

$ lftp
lftp :~>

и потом уже в этой оболочке пишем:

lftp :~> open diesel@192.168.10.1
Password:
lftp :~ >diesel@192.168.10.1: ls 

Удобно, если вдруг во время работы вы "вдруг" передумали и захотели подключиться к другому серверу.

Стоит заметить, что lftp по умолчанию подключается не сразу, а начинает подключаться, когда ему дадут первую команду, т.е. чтобы проверить правильность логина с паролем, лучше сразу же скомандовать ls.

Скачивание и основные команды

Основные команды примерно такие же, как в shell'е, т.е. ls, cd работают, как обычно. Так же работает автодополнение всего по Табу.

Для скачивания есть несколько команд, мы посмотрим на две: mget и mirror. Через встроенный хэлп можно получить справку по обеим командам. Для того чтобы получить список вообще всех доступных команд, набираем просто help, для конкретной команды - help commandname, e.g.: help mget.

mget filename позволяет скачать файл filename, опция –c, как и в в wget'е позволяет "докачать" файл.

mirror dirname позволяет скачать директорию. mirror -c - докачать директорию.

Как залить файл на сервер с помощью mput и того же mirror, предлагаю разобраться самим.

Конфигурация

Конфигурационный файл .lftprc, предсталяет собой просто команды lftp, которые даются ему перед запуском. Основные установки производятся командой set (да-да, про них тоже есть в help'е). Дома у меня там пару строк, позволяющих лазить свободно на виндовые ФТП, с русскими именами файлов:

set ftp:charset cp1251
set mirror:set-permissions off
set ftp:use-telnet-iac no
  

а также несколько алиасов, команд, для более быстрого набора этого дела:

alias 5.7 open 192.168.5.7
alias 5.6 open 192.168.5.6
alias 5.12 open 192.168.5.12
alias 9.87 open 192.168.9.87
alias kyvaldis open 192.168.61.193
alias localhost open 127.0.0.1
  

Т.е. вместо того чтобы писать, например, open 127.0.0.1, я могу просто написать localhost.

  • advanced. У lftp несколько полезных CLI-опций, связанных с встраиванием этого всего в скрипты (вернее исполнение lftp-скриптов):
     -e commands  Execute given commands and don’t exit.
     -f script_file     Execute commands in the file and exit
     -c commands  Execute the given commands and exit
      

    Вот такие основы работы с этим маленьким, простым и удобным фтп-клиентом.