Хостинг

Перенести файлы между удаленными серверами Linux

Перенести файлы между удаленными серверами Linux

Как перенести файлы между удаленными серверами Linux

Существует несколько эффективных способов передачи файлов между удаленными Linux-серверами. Вот основные методы:

1. Использование SCP (Secure Copy)

SCP позволяет безопасно копировать файлы через SSH-соединение.

Копирование с сервера A на сервер B (находясь на сервере A):

scp /path/to/local/file username@serverB:/path/to/destination/

Копирование с сервера B на сервер A (находясь на сервере A):

scp username@serverB:/path/to/remote/file /path/to/local/destination/

2. Использование SFTP (SSH File Transfer Protocol)

SFTP предоставляет интерактивный интерфейс для передачи файлов:

sftp username@remote_server
# После подключения:
get remotefile localfile  # скачать файл
put localfile remotefile  # загрузить файл

3. Прямая передача между серверами с помощью SSH

Этот метод позволяет передавать файлы напрямую между двумя удаленными серверами без промежуточного скачивания:

ssh serverA "tar czf - /path/to/source" | ssh serverB "tar xzf - -C /path/to/destination"

4. Использование rsync через SSH

rsync эффективен для синхронизации файлов и каталогов:

# С сервера A на сервер B
rsync -avz -e ssh /path/to/source/ username@serverB:/path/to/destination/

# Между двумя удаленными серверами (находясь на третьем сервере)
rsync -avz -e ssh username1@serverA:/path/to/source/ username2@serverB:/path/to/destination/

5. Использование sshfs для монтирования удаленной файловой системы

# На сервере A:
sshfs username@serverB:/remote/path /local/mount/point
# Теперь можно копировать файлы как обычно
cp /path/to/file /local/mount/point/
# Размонтировать после использования
fusermount -u /local/mount/point

6. Использование утилиты nc (netcat)

На принимающем сервере B:

nc -l -p 1234 > filename

На отправляющем сервере A:

cat filename | nc serverB 1234

Рекомендации:

  • Используйте SSH-ключи вместо паролей для автоматизации процесса

  • Для больших файлов или множества файлов лучше использовать rsync

  • При передаче конфиденциальных данных всегда используйте защищенные протоколы (SCP, SFTP, rsync через SSH)

  • Для регулярных передач настройте автоматизацию с помощью cron

Выбор метода зависит от ваших конкретных потребностей, размера передаваемых данных и требований к безопасности.

Для переноса всего содержимого папки /home/bitrix/ext_www/2.eu-digital.ru/ (включая все подпапки и файлы) на удаленный сервер с отображением прогресса, вы можете использовать следующую команду:

scp -r -v /home/bitrix/ext_www/2.eu-digital.ru/* shopmangal@vh450.timeweb.ru:/public_html/

Пояснения к команде:

  • -r - рекурсивное копирование (включая подпапки)

  • -v - подробный вывод (verbose), показывает прогресс передачи

  • * - копирует всё содержимое папки, а не саму папку

Если вы хотите видеть индикатор прогресса с процентами, можно использовать rsync:

rsync -avz --progress /home/bitrix/ext_www/2.eu-digital.ru/* shopmangal@vh450.timeweb.ru:/public_html/

Или альтернативно, если вы предпочитаете scp с индикатором прогресса:

scp -r -p /home/bitrix/ext_www/2.eu-digital.ru/* shopmangal@vh450.timeweb.ru:/public_html/

Если вам нужно сохранить все права доступа, временные метки и другие атрибуты файлов, лучше использовать rsync:

rsync -avzP /home/bitrix/ext_www/2.eu-digital.ru/* shopmangal@vh450.timeweb.ru:/public_html/

Где:

  • -a сохраняет все атрибуты файлов

  • -v подробный вывод

  • -z сжатие данных при передаче

  • -P показывает прогресс и позволяет возобновить прерванную передачу

проблема в правах доступа. Давайте исправим путь и добавим правильную директорию пользователя:

rsync -avzP /home/bitrix/ext_www/2.eu-digital.ru/* shopmangal@vh450.timeweb.ru:~/public_html/

или

rsync -avzP /home/bitrix/ext_www/2.eu-digital.ru/* shopmangal@vh450.timeweb.ru:/home/shopmangal/public_html/

Ключевые изменения:

  • Добавлен ~ (домашняя директория пользователя) или полный путь /home/shopmangal/

  • Указан путь к public_html в домашней директории пользователя

Если проблема сохраняется:

  • Проверьте права доступа на целевом сервере:

bash Скопировать

Закрыть блок

ssh shopmangal@vh450.timeweb.ru "ls -la ~/public_html"
  • Создайте директорию, если она не существует:

bash Скопировать

Закрыть блок

ssh shopmangal@vh450.timeweb.ru "mkdir -p ~/public_html"
  • Установите правильные права:
ssh shopmangal@vh450.timeweb.ru "chmod 755 ~/public_html"

Затем повторите команду rsync с исправленным путем.


Ищете надежного партнера по веб-разработке и автоматизации? Мы помогаем бизнесу расти с помощью современных технологий, автоматизации процессов и экспертного SEO. Свяжитесь с нами, чтобы обсудить вашу задачу.

🚀 Нужна помощь с сайтом на 1С-Битрикс или Аспро?

Я работаю удалённо по всей России и СНГ. Узнайте цены и условия для вашего города:

Все регионы →