Чтобы отправить папку через SSH, вы можете использовать различные методы в зависимости от вашей операционной системы и предпочтений. Вот несколько методов с примерами кода:
Метод 1. Использование инструмента командной строки scp (Linux/Mac)
scp -r /path/to/local/folder username@remote:/path/to/destination/folder
Эта команда использует инструмент scpдля рекурсивного копирования локальной папки на удаленный сервер через SSH.
Метод 2. Использование инструмента командной строки rsync (Linux/Mac)
rsync -avz -e "ssh" /path/to/local/folder username@remote:/path/to/destination/folder
Команда rsyncобычно используется для синхронизации файлов. Параметры -avzвключают режим архивирования, сохраняют атрибуты файла и сжимают данные во время передачи. Опция -e "ssh"указывает использование SSH для передачи.
Метод 3: использование scp с PuTTY (Windows)
Если вы используете Windows, вы можете использовать инструмент pscp, предоставляемый PuTTY. Этот процесс аналогичен методу 1, но вам потребуется установить PuTTY и команду pscp, доступную из командной строки.
pscp -r C:\path\to\local\folder username@remote:/path/to/destination/folder
Метод 4: использование WinSCP (Windows)
WinSCP — популярный инструмент передачи графических файлов для Windows. Он обеспечивает удобный интерфейс для передачи файлов и папок через SSH. После подключения к удаленному серверу вы можете просто перетащить папку с локальной панели на удаленную.
Метод 5. Использование SFTP-библиотек (кросс-платформенный)
Если вы разрабатываете сценарий или приложение, вы можете использовать библиотеки SFTP, доступные для вашего языка программирования. Вот пример использования библиотеки paramikoв Python:
import paramiko
import os
local_path = '/path/to/local/folder'
remote_path = '/path/to/destination/folder'
hostname = 'remote'
username = 'your_username'
password = 'your_password'
transport = paramiko.Transport((hostname, 22))
transport.connect(username=username, password=password)
sftp = transport.open_sftp()
for root, dirs, files in os.walk(local_path):
for file in files:
local_file = os.path.join(root, file)
remote_file = os.path.join(remote_path, os.path.relpath(local_file, local_path))
sftp.put(local_file, remote_file)
sftp.close()
transport.close()
Этот код Python использует библиотеку paramikoдля установки SSH-соединения и рекурсивной передачи папки.