Secure Transfer Protocol или коротко sftp на сегодняшний день довольно широко используется для обмена файлами посредством защищенного SSH канала, между сервером и клиентскими машинами. В некоторых ситуациях удобно организовать иметь возможность обмен файлами между серверами, напрямую, за счет чего достигается оптимальная скорость передачи файлов. Именно о том, как можно подключиться и работать по SFTP с удаленным сервером через консоль мы поговорим в данном посту.
Для подключения к серверу SFTP нам необходимо знать его доменное имя либо IP-адрес.
Подключение к SFTP серверу через консоль
# sftp user@href.kz
Довольно часто из соображений безопасности на серверах меняют стандартный порт на другое значение. Для указания значения своего порта вы можете воспользоваться командой ниже.
Подключение к SFTP серверу через другой порт
# sftp -oPort=2222 user@href.kz:/home/something
После ввода команды, если сервер откликнулся, в окне консоли будет предложено ввести пароль от учетной записи пользователя user. После подключения к SFTP у вас будет показываться характерная командная строка:
sftp>
Теперь вы можете выполнять необходимые вам манипуляции с файлами. Команды работы с ними вам покажутся вполне привычными.
Основные команды SFTP
cd — серфинг по дирректориям на стороне sftp сервера;
lcd — перемещение по дирректориям на локальном компьютере;
ls — просмотр списка файлов в текущей директории sftp сервера;
lls — просмотр списка файлов в текущей дирретории локального компьютера;
pwd — вывод текущей дирректории на sftp сервере;
lpwd — вывод текущей директории на локальной машине;
exit — выход из sftp-клиента;
Давайте попробуем загрузить файлы с удаленного SFTP – сервера, для этого мы может воспользоваться командой get.
Загрузка файлов с SFTP-сервера
sftp>get remote-path [local-path]
В качестве параметра remote-path указывается путь до файлов на сервере. В качестве параметра local-path передается путь на локальной машине, по умолчанию, если параметр не будет указан, загружаться файлы будут в текущую директорию. Так же можно указать отдельные файлы для скачивания.
Загрузка файлов по списку
sftp>get foo.bar readme.txt
Чтобы иметь возможность загрузки сразу всех файлов расположенных в директории, удобно воспользоваться командой mget.
Множественная загрузка файлов
sftp> mget ./*
Так же можно загружать файлы только с конкретным расширением, скажем нам необходимо загрузить все файлы с TXT-расширением.
Загрузка файлов с указанным расширением
sftp> mget ./*.txt
После выполнения команды с директории удаленного сервера будет произведена загрузка всех файлов с расширением txt. Теперь рассмотрим пример загрузки файлов с локальной машины на удаленный сервер. Для отправки файлов на удаленный сервер мы будем пользоваться командой scp.
Есть один очень важный момент, о котором стоит знать. Команда get и mget не копирует нерегулярные файлы из файловой системы удаленного сервера.
Чтобы иметь возможность загружать абсолютно все файлы, вам следует воспользоваться командой scp – это отдельная команда, которая должна выполняться в командной строке сервера, а ни клиента sftp!
Копирование файлов с помощью команды scp.
Синтаксис:
# scp copy_from copy_to
copy_from – откуда отправляется файлы;
copy_to – путь назначения;
Рассмотрим простой пример скачивания файла foobar.txt с удаленного сервера на локальную машину.
Скачиваем файл с удаленного сервера
# scp user@href.kz:/path/to/foobar.txt /some/local/directory
Таким же образом происходит отправка файла с вашей локальной машины на удаленный сервер.
Отправляем файл с локальной машины на удаленный сервер
# scp /path/to/foobar.txt user@href.kz:/some/remote/directory
Так же есть возможность использования рекурсии при обмене файлами. Рассмотрим пример рекурсивного скачивания файлов с директории tutorial удаленного сервера в корневую директорию локальной машины.
Рекурсивное скачивание файлов
# scp -r user@href.kz:~/tutorial ~/
Сложностей с этим возникать в принципе не должно, команды довольно простые и вы всегда можете ими воспользоваться при необходимости. На этом пока всё, если есть чем дополнить — пост пишите в комментарии, а так же не забудьте поделиться страницей в социальных сетях (если не трудно), спасибо!