Sftp синхронизация файлов linux

Обновлено: 06.07.2024

По сравнению с традиционным протоколом FTP SFTP предлагает все функции FTP, но он более безопасен и проще в настройке.

В отличие от SCP , который поддерживает только передачу файлов, SFTP позволяет выполнять ряд операций с удаленными файлами и возобновлять передачу файлов.

В этом руководстве мы покажем вам, как использовать команду Linux sftp .

Подготовка

Чтобы иметь возможность передавать файлы через SFTP, вы должны иметь разрешение на запись в удаленной системе.

При передаче больших файлов рекомендуется запускать команду sftp внутри сеанса screen или tmux .

Каталог, из которого вы запускаете команду sftp является локальным рабочим каталогом.

Не путайте SFTP с FTPS. Оба протокола служат одной цели. Однако FTPS означает FTP Secure и является расширением стандартного протокола FTP с поддержкой TLS.

Установление SFTP-соединения

SFTP работает по модели клиент-сервер. Это подсистема SSH и поддерживает все механизмы аутентификации SSH.

Чтобы открыть SFTP-соединение с удаленной системой, используйте команду sftp за которой следует имя пользователя удаленного сервера и IP-адрес или имя домена:

Если вы подключаетесь к хосту с использованием аутентификации по паролю, вам будет предложено ввести пароль пользователя.

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

Если удаленный SSH-сервер не прослушивает порт по умолчанию 22 , используйте параметр -P чтобы указать порт SFTP:

Команды SFTP

Большинство команд SFTP похожи или идентичны командам оболочки Linux.

Чтобы получить список всех доступных команд SFTP, введите help или ? .

Это выведет длинный список всех доступных команд, включая краткое описание каждой команды:

Навигация по SFTP

Когда вы вошли на удаленный сервер, ваш текущий рабочий каталог является домашним каталогом удаленного пользователя. Вы можете проверить это, набрав:

Чтобы вывести список файлов и каталогов, используйте команду ls :

Чтобы перейти в другой каталог, используйте команду cd . Например, чтобы перейти в каталог /tmp , введите:

Вышеупомянутые команды используются для навигации и работы в удаленном месте.

Оболочка SFTP также предоставляет команды для локальной навигации, управления информацией и файлами. Локальные команды начинаются с буквы l .

Например, чтобы распечатать локальный рабочий каталог, вы должны ввести:

Передача файлов по SFTP

SFTP позволяет безопасно передавать файлы между двумя машинами.

Если вы работаете на настольном компьютере, вы можете использовать SFTP-клиент с графическим интерфейсом, например WinSCP или FileZilla, для подключения к удаленному серверу и загрузки или выгрузки файлов.

Команда sftp полезна, когда вы работаете на сервере без графического интерфейса пользователя и хотите передавать файлы или выполнять другие операции с удаленными файлами.

Загрузка файлов с помощью команды SFTP

Чтобы загрузить один файл с удаленного сервера, используйте команду get :

Результат должен выглядеть примерно так:

При загрузке файлов с помощью sftp файлы загружаются в каталог, из которого вы ввели команду sftp .

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

Чтобы загрузить каталог из удаленной системы, используйте рекурсивную опцию -r :

Если передача файла не удалась или прервалась, вы можете возобновить ее с помощью команды reget .

Синтаксис reget такой же, как синтаксис get :

Загрузка файлов с помощью команды SFTP

Чтобы загрузить файл с локального компьютера на удаленный SFTP-сервер, используйте команду put :

Результат должен выглядеть примерно так:

Если файл, который вы хотите загрузить, не находится в вашем текущем рабочем каталоге, используйте абсолютный путь к файлу.

При работе с put вы можете использовать те же параметры, которые доступны с командой get .

Чтобы загрузить локальный каталог, введите:

Чтобы возобновить прерванную загрузку:

Манипуляции с файлами с помощью SFTP

Обычно для выполнения задач на удаленном сервере вы подключаетесь к нему через SSH и выполняете свою работу, используя терминал оболочки. Однако в некоторых ситуациях пользователь может иметь только SFTP-доступ к удаленному серверу.

SFTP позволяет выполнять некоторые основные команды для работы с файлами. Ниже приведены несколько примеров использования оболочки SFTP:

Получите информацию об использовании диска удаленной системой:

Создайте новый каталог на удаленном сервере:

Переименуйте файл на удаленном сервере:

Удалите файл на удаленном сервере:

Удалите каталог на удаленном сервере:

Измените права доступа к файлу в удаленной системе:

Измените владельца файла в удаленной системе:

Вы должны указать ID пользователя командам chown и chgrp .

Измените владельца группы удаленного файла с помощью:

Когда вы закончите свою работу, закройте соединение, набрав « bye или « quit .

Выводы

В этом руководстве мы показали вам, как использовать команду sftp для загрузки и выгрузки файлов на удаленный сервер SFTP.

Вы также можете настроить аутентификацию на основе ключа SSH и подключаться к своим серверам Linux без ввода пароля. Если вы регулярно подключаетесь к одним и тем же системам, вы можете упростить рабочий процесс, указав все свои подключения в файле конфигурации SSH .

Не стесняйтесь оставлять комментарии, если у вас есть вопросы или отзывы.

Блог системного администратора Windows/Linux/FreeBSD

Для копирования файлов по сети используется много инструментов. Наиболее распространенный из них - ftp, многие используют и scp. Для синхронизации данных используется rsync.

В rsync используется довольно-таки сложный алгоритм, с помощью которого передаются фактически только изменения в файлах, к тому же, для того, чтобы понять, что файл изменен, rsync не требуется сравнение двух файлов, что довольно сильно повышает производительность по сравнению с другими инструментами синхронизации. Ещё один плюс rsync - сжатие данных на лету, что ещё больше увеличивает эффективность.

Помимо указанных выше преимуществ, у rsync есть возможность передачи данных по защищенному соединению - ssh, это, несомненно, плюс к безопасности этой программы. Также, rsync сначала записывает передаваемую информацию во временный файл, чтобы исключить потерю информации в случае непредвиденных обстоятельств(отключение интернета или электричества).

Если имеется доступ по ssh к серверу, это наиболее простой способ для осуществления синхронизации. Rsync по ssh - это частный случай использования, общий вид команды выглядит так:

rsync [ОПЦИИ] [ПОЛЬЗОВАТЕЛЬ@]СЕРВЕР:ИСТОЧНИК. [ПОЛУЧАТЕЛЬ]
Pull (копирование файлов с удаленной системы на локальную) rsync [ОПЦИИ] ИСТОЧНИК 1 [ИСТОЧНИК N] [ПОЛЬЗОВАТЕЛЬ@]СЕРВЕР:ПОЛУЧАТЕЛЬ
Push (копирование файлов с локальной машины на удаленную)

В официальной документации по rsync "Push" - это копирование файлов с локальной машины на удалённую, а "Pull" - с удалённой на локальную.
Обязательным параметром является "ИСТОЧНИК", их может быть несколько.

Основные ключи:


Примеры:

Как ограничить скорость передачи файлов? Нужно поставить опцию --bwlimit :

Как синхронизировать файлы с проверкой по контрольной сумме?

Как скопировать файлы с удаленной машины на локальную?

Как исключить файл или директорию при копировании?

Как использовать нестандартный порт ssh при копировании rsync?

Запись опубликована автором MishLen в рубрике ПО (Linux) с метками rsync, ssh. Добавьте в закладки постоянную ссылку.

Похожие записи:

Синхронизация файлов с помощью rsync по ssh Linux/FreeBSD : 4 комментария

Как использовать команду SFTP для передачи файлов Linux

SFTP (SSH File Transfer Protocol) - это защищенный файловый протокол, используемый для доступа, управления и передачи файлов по зашифрованному транспортному протоколу SSH.

По сравнению с традиционным протоколом FTP , SFTP предлагает все функции FTP, и его проще настраивать.

В отличие от того scp command , который разрешает только передачу файлов, sftp команда позволяет выполнять ряд операций с удаленными файлами и возобновлять передачу файлов.

Прежде чем вы начнете

Чтобы иметь возможность передавать и управлять файлами через SFTP, вы должны иметь разрешение на запись в удаленной системе.

При передаче больших файлов рекомендуется запускать команду sftp внутри сеанса экрана или tmux .

Каталог, из которого вы запускаете sftp команду, является локальным рабочим каталогом.

Установление SFTP-соединения

SFTP работает по модели клиент-сервер. Это подсистема SSH и поддерживает все механизмы аутентификации SSH.

Хотя традиционная аутентификация по паролю настроена по умолчанию и более проста в использовании, если вы регулярно подключаетесь к своему серверу через SSH / SFTP, рекомендуется создать ключи SSH и настроить логин SFTP без пароля .

Чтобы открыть SFTP-соединение с удаленной системой, используйте sftp команду, за которой следует имя пользователя удаленного сервера и IP-адрес или имя домена:

Если вы подключаетесь к хосту с использованием аутентификации по паролю, вам будет предложено ввести пароль пользователя.

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

Если удаленный сервер SSH не прослушивает порт по умолчанию 22, используйте -oPort параметр, чтобы указать альтернативный порт:


Команды SFTP

Большинство команд SFTP похожи или идентичны командам, которые вы используете в командной строке Linux.

Вы можете получить список всех доступных команд SFTP, набрав help или ? .

Навигация по SFTP

Когда вы вошли на удаленный сервер, текущим рабочим каталогом является домашний каталог удаленного пользователя. Вы можете проверить это, набрав:

Для просмотра списка файлов и каталогов используйте ls команду:

Чтобы перейти в другой каталог, используйте cd команду. Например, чтобы перейти в /tmp каталог, вы должны набрать:

Вышеуказанные команды используются для навигации и работы в удаленном местоположении.

sftp Оболочка также предоставляет команды для местной навигации, информации и управления файлами. Локальные команды начинаются с буквы l .

Например, чтобы напечатать локальный рабочий каталог, вы должны набрать:

Передача файлов с SFTP

С SFTP вы можете безопасно передавать файлы между двумя компьютерами.

Если вы работаете на настольном компьютере, вы можете использовать SFTP-клиент с графическим интерфейсом, например WinSCP или FileZilla, для подключения к удаленному серверу и загрузки или загрузки файлов.

Эта sftp команда полезна, когда вы работаете на сервере без графического интерфейса и хотите передавать файлы или выполнять другие операции с удаленными файлами.


Загрузка файлов с помощью команды SFTP

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

При загрузке файлов с помощью sftp команды они загружаются в каталог, из которого вы ввели sftp команду.

Чтобы загрузить один файл с удаленного сервера, используйте get команду:

Вывод должен выглядеть примерно так:

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

Чтобы загрузить каталог из удаленной системы, используйте рекурсивный -r параметр:

Если передача файла не удалась или была прервана, вы можете возобновить ее, используя reget команду.

Синтаксис reget такой же, как и синтаксис get :


Загрузка файлов с помощью команды SFTP

Чтобы загрузить файл с локального компьютера на удаленный SFTP-сервер, используйте put команду:

Вывод должен выглядеть примерно так:

Если файл, который вы хотите загрузить, не находится в вашем текущем рабочем каталоге, используйте абсолютный путь к файлу.

При работе с put вами можно использовать те же параметры, которые доступны с помощью get команды.

Чтобы загрузить локальный каталог, вы должны набрать:

Чтобы возобновить прерванную загрузку:


Файловые манипуляции с SFTP

Как правило, для выполнения задач на удаленном сервере вы должны подключиться к нему через SSH и выполнять свою работу с помощью терминала оболочки. Однако в некоторых ситуациях пользователь может иметь только SFTP-доступ к удаленному серверу.

SFTP позволяет выполнять некоторые основные команды для работы с файлами. Ниже приведены некоторые примеры использования оболочки SFTP:

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

Создайте новый каталог на удаленном сервере:

Переименуйте файл на удаленном сервере:

Удалить файл на удаленном сервере:

Удалить каталог на удаленном сервере:

Измените права доступа к файлу в удаленной системе:

Измените владельца файла в удаленной системе:

Вы должны указать идентификатор пользователя к chown и chgrp командам.

Измените владельца группы удаленного файла с помощью:

По завершении работы закройте соединение, набрав bye или quit .


Вывод

В этом руководстве мы показали, как использовать sftp команду для загрузки и выгрузки файлов на удаленный SFTP-сервер.

Вы также можете настроить аутентификацию на основе ключей SSH и подключаться к серверам Linux без ввода пароля.

Если вы регулярно подключаетесь к одним и тем же системам, вы можете упростить рабочий процесс, определив все свои подключения в конфигурационном файле SSH .


По правде говоря, делиться файлами из Windows в Linux легко, но только если вы знаете, как это сделать. Готовы выяснить?

4 способа передачи файлов из Windows в Linux

Перенос данных между операционными системами Windows и Linux проще, чем вы думаете. Мы собрали пять способов сделать это:

С помощью каждого из этих методов вы сможете легко (а в некоторых случаях легко) перемещать файлы между операционными системами.

Давайте посмотрим на них по очереди и выясним, какой из них подходит вам больше всего.

1. Совместное использование сетевых папок между Linux и Windows

Начиная с Windows, щелкните правой кнопкой мыши значок сетевого подключения на панели задач и выберите «Открыть сеть и настройки Интернета». Далее нажмите «Параметры общего доступа» и включите текущий профиль.

  • Включить обнаружение сети
  • Включите общий доступ к файлам и принтерам


Вы можете управлять доступом к папке через разрешения; это относится к локальным пользователям Windows, а не к сетевым устройствам.

Нажмите OK, чтобы подтвердить изменение, затем откройте вкладку Безопасность в Свойствах. Настройте это, чтобы отразить настройки в поле Полномочия ранее. Вам не нужно делать слишком много здесь, так как Windows 10 должна включать группу под названием Authenticated Users. Это используется для удаленного доступа к вашему компьютеру.

Снова нажмите ОК, когда вы закончите.

Чтобы найти общий ресурс Windows на ПК с Linux, просто откройте браузер файлов и выберите «Сеть». Отсюда перейдите к папке, размещенной в Windows, и начните обмен данными.

Доступ к общему ресурсу Linux из Windows

Чтобы переместить данные в другом направлении, вам нужно установить Samba на ваш компьютер с Linux.

Затем установите имя пользователя для общего ресурса samba.

Вам будет предложено ввести пароль для новой учетной записи (не используйте для этого «имя пользователя»!).

Затем создайте каталог для обмена данными.

Затем отредактируйте файл smb.conf в своем текстовом редакторе:

Добавьте следующее в конец файла конфигурации:

Внесите необходимые изменения в соответствии со своими потребностями, затем нажмите Ctrl + X, чтобы выйти, и нажмите Y, чтобы сохранить. Далее перезапустите Samba:

После этого вы сможете получить доступ к общему ресурсу из Windows. Откройте проводник или браузер и введите IP-адрес или имя хоста удаленного устройства Linux, а затем имя папки. В нашем примере это

2. Скопируйте файлы через SSH из Windows в Linux

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

Начните с открытия терминала и обновления и обновления ОС.

Подождите, пока он установит. Чтобы в любой момент проверить, работает ли сервер OpenSSH, используйте

Для передачи данных из Windows используйте SSH-клиент, например PuTTY. Это требует загрузки инструмента PSCP в вашу систему Windows для запуска вместе с PuTTY. Найти оба на домашней странице PuTTY.

После установления соединения вы можете отправлять данные следующим образом:

Перед началом передачи вам будет предложено ввести пароль для компьютера с Linux.

Хотите скопировать данные из Linux в Windows в одном сеансе SSH? Эта команда загрузит указанный файл в текущий каталог:

3. Как перенести файлы из Linux в Windows, используя FTP

Можно также использовать приложение протокола передачи файлов (FTP) с поддержкой SSH. Передача файлов через SFTP в пользовательском интерфейсе, управляемом мышью, возможно, проще, чем полагаться на набранные команды.

Опять же, сервер SSH должен быть запущен на компьютере с Linux перед началом работы. Вы также должны убедиться, что вы установили приложение FTP, такое как FileZilla, которое поддерживает SFTP.

Чтобы использовать этот метод, запустите FileZilla, затем откройте Файл → Менеджер сайтов. Создайте новый сайт, заботясь о том, чтобы установить протокол на SFTP. Добавьте целевой IP-адрес в Host, затем имя пользователя и пароль, установив тип входа в систему как Нормальный.


Нажмите Готово, когда будете готовы, затем используйте интерфейс FTP для перетаскивания файлов между двумя компьютерами.

4. Делитесь файлами между Linux и Windows с помощью Resilio Sync

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

Все, что вам нужно сделать, это установить приложение, назначить папку синхронизации, а затем создать ключ. Установите это на втором ПК, и ваши данные будут синхронизированы. Для этого есть два хороших варианта:

  • Resilio Sync: ранее известная как BitTorrent Sync, Resilio доступна практически на любой платформе, о которой вы только можете подумать. Есть платная версия, но бесплатного варианта достаточно для синхронизации двух устройств.
  • SyncThing: для Linux, Windows, macOS и Android эта альтернатива Resilio Sync предлагает аналогичную функцию без платного компонента.

Совместное использование файлов между Windows и Linux очень просто

Если вы новичок в Linux, или вы находите Windows незнакомой, обмен данными между ними проще, чем вы думаете.

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

Читайте также: