Блог компании 3v-Hosting
Передача файлов с помощью 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 — ценный навык для любого профессионала в области хостинга. Используя эти простые команды и изучая дополнительные параметры из официального мануала, вы можете оптимизировать процессы управления файлами, обеспечивая безопасность и эффективность вашей инфраструктуры хостинга.