Передача файлов с помощью SSH в Linux

Администрирование 4 мин. на чтение

При постоянной работе с Linux-серверами очень часто возникает необходимость передать файлы или папки с одного сервера на другой и самым простым способом для этого является передача с помощью SSH. Этим простым способом передачи файлов должен обладать любой уважающий себя системный администратор, чтобы при необходимости очень быстро и без дополнительных настроек передать необходимые файлы с сервера на сервер. 
Но не смотря на свою простоту данный инструмент является очень мощным, позволяющим использовать различные параметры при передаче.

 

 

Что такое SSH

 

Так как в данном способе для передачи файлов мы будем использовать SSH, то давайне немного повторим, что-же это такое. Итак, SSH — это безопасный и зашифрованный протокол, предназначенный для безопасной передачи данных. Что касается передачи файлов, SSH позволяет пользователям безопасно перемещать файлы между локальными и удаленными серверами. Этот процесс не только безопасен, но и эффективен, что делает его предпочтительным выбором для многих профессионалов хостинга.

 

Основной командой для подключения к удаленному серверу по SSH является команда:


ssh username@your_server_ip

 

Замените «username» на имя пользователя вашего сервера, а «your_server_ip» — на фактический IP-адрес вашего сервера. А теперь перейдем непосредственно к передаче файлов.

 

 


Основные команды передачи файлов SSH


Выгрузка файлов (с локального компьютера на удаленный сервер)

 

Чтобы загрузить файл с локального компьютера на удаленный сервер, используйте команду scp в таком виде, чтобы первым аргументом, непосредственно после команды scp находился путь к локальному файлу, а вторым - путь к директории на удаленном сервере, куда Вы хотите загрузить файл:

 

scp path/to/local/file username@your_server_ip:/path/to/remote/directory


Замените «path/to/local/file» файлом на вашем локальном компьютере, а «path/to/remote/directory» — желаемым каталогом на удаленном сервере. 
Обратите внимание на путь к удаленной директории. Он складывается из двух частей разделенный двоеточием. Первая - это подключение к удаленному серверу, аналогично команде ssh, а затем, через двоеточие, указывается полный путь к необходимой директории на удаленном сервере, начиная с корневой директории (/).

 

 


Загрузка файлов (с удалённого сервера на локальный компьютер)


Для загрузки файлов с удаленного сервера на локальный компьютер используйте ту же команду scp, но в этом случае аргументы распологаются обратным образом, т.е. сначала первым аргументом располагается подключение к удаленному серверу и путь к нужному файлу, а вторым аргументом - путь к локальной директории, куда Вы хотите скачать файл:


scp username@your_server_ip:/path/to/remote/file path/to/local/directory


При этом указанный файл будет перенесен с удаленного сервера в ваш локальный каталог.

 

 

Расширенные возможности для повышения эффективности


Рекурсивные передачи

Чтобы перенести целые каталоги и их содержимое, добавьте параметр -r к команде scp:
    

scp -r path/to/local/directory username@ip_of_your_server:/path/to/remote/directory

 

Это гарантирует перенос всех файлов и подкаталогов.

 

 


Сохранение атрибутов файла

Используйте опцию -p, чтобы сохранить атрибуты файла, такие как метки времени:


scp -p path/to/local/file user_name@ip_of_your_server:/path/to/remote/directory

 

При этом сохраняются исходные метаданные файла во время передачи.

 

 


Ограничение пропускной способности

Контролируйте использование полосы пропускания во время передачи, указав параметр -l, за которым следует желаемый предел (в Кбит/с):


scp -l 500 path/to/local/file user_name@ip_of_your_server:/path/to/remote/directory

 

Настройте лимит в соответствии с вашими предпочтениями и условиями сети, чтобы, например, не мешать основной деятельности сервера.

 

 


Заключение

Освоение передачи файлов по SSH в Linux — ценный навык для любого профессионала в области хостинга. Используя эти простые команды и изучая дополнительные параметры из официального мануала, вы можете оптимизировать процессы управления файлами, обеспечивая безопасность и эффективность вашей инфраструктуры хостинга. 

Feb. 5, 2024, 9:12 a.m.