Примеры копирования файлов по сети SFTP SCP NETCAT

Копирование с помощью scp
Scp для передачи данных использует ssh, т. е необходимо иметь ssh доступ на удалённый хост.

На удалённом хосте.

1. Файл.

$ scp ./local_file username@remotehost:
Скопирует локальный файл ./local_file на удалённый хост remotehost  в домашнию директорию пользователя username. Можно указать название файла на удалённом хосте(scp ./local_file username@remotehost:remote_file).

2. Директория.

$ scp -r /etc/local_folder username@remotehost:/etc
Скопирует локальную директорию /etc/local_folder на удалённый хост в директорию /etc

С удалённого хоста.

3. Файл.

$ scp  username@remotehost:remote_file ./
Скопирует удалённый файл remote_file из домашней директории username на локальную машину в текущую директорию

4. Директория

$ scp -r username@remotehost:/etc/remote_folder /etc
Скопирует удалённую папку /etc/remote_folder/ на локальную машину в директорию /etc

Копирование с помощью sftp
Sftp это интерактивная программа передачи файлов, подобная ftp, которая выполняет передачу данных в шифрованном виде, используя ssh, т.е необходимо иметь ssh доступ на удалённый хост.
Копировать директории стандартный sftp клиент не умеет.

На удалённый хост.
5.

$ sftp remotehost

Connecting to remotehost…
sftp> lls
remote_file        local_file
sftp> put local_file
Uploading local_file to /home/username/local_file
local_file                                           100%    0     0.0KB/s   00:00
sftp> ls
local_file
sftp> quit
C помощью команды put копируем локальный файл ./local_file на удалённый хост remotehost  в домашнию директорию пользователя username. Команда lls выводит листинг локальной директории, команда ls выводит листинг удалённой директории.

С удалённого хоста.

6.

$ sftp remotehost

Connecting to remotehost…
sftp> ls
remote_file
sftp> get remote_file
Fetching /home/username/remote_file to remote_file
sftp> quit
C помощью команды get копируем удалённый файл remote_file из домашней директории username на локальную машину в текущую директорию.

Копирование с помощью netcat
Для начала, если у вас Debian или Ubuntu то поставьте netcat-openbsd и pipeviewer(pv).

$ sudo apt-get install netcat-openbsd pv
Варианты с pv показывают статистику передачи файла, таким образом можно замерять пропускную способность сетевого канала.

На удалённый хост.

7. Файл

$ nc -l 1234 | pv | cat > ./remote_file

или

$ nc -l 1234 > ./remote_file

Принимаем файл на удалённом хосте

$ cat ./local_file | pv | nc remotehost 1234

или

$ nc remotehost 1234 < ./local_file Отправляем файл на удалённый хост 8. Директория. $ nc -l 1234 | pv | tar x

или

$ nc -l 1234 | tar x

Принимаем директорию на удалённом хосте

$ tar -cf — ./local_folder | pv | nc remotehost 1234

или

$ tar -cf — ./local_folder | nc remotehost 1234

Отправляем директорию на удалённый хост

C удалённого хоста.

9. Файл.

$ cat ./remote_file | pv | nc -l 1234

или

$ nc -l 1234 < ./remote_file Передаём файл с удалённого хоста $ nc remotehost 1234 | pv | cat > ./local_file

или

$ nc remotehost 1234 > ./local_file

Принимаем файл на локальной машине

10. Директория.

$ tar -cf — ./remote_folder | pv | nc -l 1234

или

$ tar -cf — ./remote_folder | nc -l 1234

Передаём директорию с удалённого хоста

$ nc remotehost 1234 | pv | tar x

или

$ nc remotehost 1234 | tar x

Принимаем директорию на локальной машине

P.S

Ну и последний бонусный пример, можно отдавать файлы по http:

$ python -m SimpleHTTPServer

или

# nc -l 8000 < ./shared_file

По материалам : admins.tk

Запись опубликована в рубрике *CentOS, *Unix,*Linux, FreeBSD. Добавьте в закладки постоянную ссылку.

Один комментарий на «Примеры копирования файлов по сети SFTP SCP NETCAT»

  1. m говорит:

    sftp -oPort= пользователь@ip-адрес хоста
    при нестандартном порте

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91