В Linux существует несколько способов копирования файлов на удаленный сервер через терминал. Два наиболее распространенных инструмента – scp
и rsync
. Оба используют SSH протокол‚ обеспечивая безопасную передачу данных.
Использование scp
(Secure Copy)
scp
― простая команда для копирования файлов. Синтаксис:
scp [опции] файл_источник пользователь@хост:целевая_директория
Например‚ для копирования файла my_file.txt
на сервер x3tc.ru
в директорию /home/user/
под пользователем user
‚ команда будет:
scp my_file.txt user@x3tc.ru:/home/user/
Аутентификация: По умолчанию‚ scp
запросит пароль пользователя. Для большей безопасности рекомендуется использовать SSH ключи.
Использование rsync
rsync
более мощный инструмент‚ поддерживающий инкрементное копирование. Он передает только изменения‚ экономя трафик и время. Синтаксис схож с scp
.
rsync [опции] файл_источник пользователь@хост:целевая_директория
Пример:
rsync -avz my_file.txt user@x3tc.ru:/home/user/
Опции: -a
(архивировать)‚ -v
(verbose – подробный вывод)‚ -z
(сжатие).
Безопасность: Оба инструмента используют SSH для защиты данных. Важно правильно настроить права доступа к файлам и директориям на целевом сервере.
Linux Phone: Процесс копирования файлов с Linux phone аналогичен‚ при условии наличия SSH клиента.
В предыдущем разделе мы рассмотрели базовые команды scp
и rsync
для копирования файлов в Linux через терминал на удаленный сервер. Однако‚ для эффективного и безопасного копирования‚ необходимо учитывать ряд дополнительных аспектов.
Детальная настройка scp
и rsync
Хотя scp
проста в использовании‚ она не всегда является оптимальным решением для больших файлов или нестабильного сетевого подключения
. В таких случаях rsync
показывает себя гораздо лучше благодаря возможности возобновления передачи
после разрыва подключения
. Кроме того‚ rsync
‚ в отличие от scp
‚ эффективно обрабатывает изменения в файле
‚ передавая только измененные части‚ что значительно экономит время и трафик.
Для scp
можно использовать опцию -C
для включения сжатия данных
во время передачи
‚ что может повысить скорость при медленном подключении
. Однако‚ это может увеличить нагрузку на процессор.
Для rsync
‚ помимо упомянутых -avz
‚ полезны опции:
--progress
: Показывает прогресскопирования
.--delete
: Удаляетфайлы
вцелевой директории
‚ которых нет висточнике
. Это полезно для синхронизациидиректорий
.-e 'ssh -p порт'
: Указывает нестандартный порт дляssh
подключения
‚ еслисервер
настроен на использование другого порта‚ отличного от 22. как скопировать файл в linux через терминал на другой сервер
Аутентификация
и безопасность
Использование пароля
для аутентификации
‚ хотя и просто‚ является наименее безопасным способом. Рекомендуется использовать ключи
ssh
. Для этого необходимо сгенерировать пару ключей (публичный и приватный) на локальной машине и скопировать публичный ключ на удаленный сервер
в файл ~/.ssh/authorized_keys
(для пользователя
‚ под которым будет осуществляться копирование
). После этого подключение
и копирование
будут происходить без запроса пароля
.
Важно правильно настроить права
доступа
к файлам
и директориям
на целевом сервере
. Избегайте предоставления избыточных прав‚ чтобы минимизировать риски безопасности
.
Альтернативные способы указания хоста
и пользователя
Вместо явного указания пользователя
и хоста
в команде
‚ можно использовать конфигурацию
ssh
в файле ~/.ssh/config
. Это позволяет задать параметры подключения
(пользователь
‚ хост
‚ порт
‚ ключ
) для определенных хостов
‚ что упрощает команды
и повышает читаемость.
Пример файла ~/.ssh/config
:
Host x3tc_server
HostName x3tc.ru
User user
Port 2222
IdentityFile ~/.ssh/id_rsa
В этом случае‚ команда
rsync
для копирования
файла
my_file.txt
будет выглядеть так:
rsync -avz my_file.txt x3tc_server:/home/user/
Копирование
с linux phone
Копирование
файлов
с linux phone
происходит аналогично‚ при условии наличия установленного ssh
клиента (например‚ Termux). Необходимо убедиться‚ что на linux phone
установлен и настроен ssh
клиент‚ и что можно установить подключение
к удаленному серверу
.
Выбор между scp
и rsync
зависит от конкретной задачи. scp
― простой и удобный инструмент для разового копирования
небольших файлов
. rsync
― более мощный и гибкий инструмент‚ подходящий для копирования
больших объемов данных
‚ синхронизации директорий
и работы в нестабильных сетевых условиях. Независимо от выбранного инструмента‚ важно уделять внимание безопасности
и правильной конфигурации
ssh
.