SFTP и rsync — это два инструмента, которые могут помочь вам передавать файлы по сети и через Интернет. Вот как их использовать в macOS.
Во многих случаях вам необходимо передавать файлы между двумя компьютерами в локальной сети, в офисе, через Интернет или на удаленный сервер. Сегодня многие работники используют для таких переводов облачные сервисы, такие как Google Drive или Dropbox.
Но есть более сложные инструменты, которые обеспечивают большую гибкость и точность при передаче файлов по сети. Двумя такими инструментами являются протокол передачи файлов SSH (SFTP) и rsync или удаленная синхронизация.
Сначала мы обсудим SFTP, а затем поговорим о rsync и о том, как использовать его для интеллектуальной передачи и синхронизации файлов по сети.
FTP
FTP или протокол передачи файлов восходит к 1971 году, когда его первоначальная спецификация была опубликована в RFC 114, а затем изменена в 1980 году во время перехода на TCP/IP, а затем снова в 1994 году (RFC 1579) и 1997 году (RFC 2228). Последние два стандарта добавили пассивный режим и анонимный вход на сервер, если сервер настроен на это.
FTP следует модели клиент/сервер, когда пользователи входят на FTP-сервер с помощью клиентского приложения, а затем используют клиентское приложение для передачи файлов на сервер и с сервера. Протокол FTP использует два канала связи: один для управления и один для передачи данных.
Большинство стандартных FTP-серверов используют для соединений порт 21. Можно использовать и другие порты, в зависимости от конфигурации сервера.
Пассивный режим был добавлен в основном для серверов за брандмауэрами, которые могут согласовывать, какой номер порта использовать. Как только клиент устанавливает соединение в пассивном режиме, сервер передает, какой номер порта использовать.
Большинство FTP-соединений передают файлы в текстовый режим или двоичный режимхотя возможны два других редко используемых режима (EBCIDIC и Unicode).
Одно явное упущение в стандартных FTP-соединениях заключается в том, что все данные в обоих направлениях отправляются в открытом виде, как обычный текст. включая логин и пароль пользователя. Очевидно, что в современном мире вы хотите максимально избегать простого FTP.
Введите SFTP
Когда Безопасная оболочка был выпущен для публики в 1994 году, он предоставил способ входа в удаленные компьютеры на базе UNIX и Linux с использованием защищенного зашифрованного туннеля. Все данные, проходящие через туннель SSH, шифруются сквозным шифрованием с использованием современных стандартов шифрования, таких как AES или его старший брат DES.
Другие шифры, такие как arcfour и blowfish, можно использовать, но сейчас они не рекомендуются в пользу AES, современного стандарта. SSH использует Инфраструктура открытых ключей (PKI) аутентификация для проверки личности пользователей. Первоначально AES была известна под названием Рейндал и была создана Национальным институтом стандартов и технологий (NIST) в США в 2001 году.
Протокол передачи файлов SSH (не путать с более ранним, ныне устаревшим Простой протокол передачи файлов), использует такое же сквозное шифрование при передаче файлов по сети, что также обеспечивает безопасность файловых данных.
Существует четыре RFC, которые определяют основной протокол SSH (4251-4254), а RFC 4716 определяет формат файла ключа SSH PKI. Сам протокол передачи файлов SFTP все еще находится в стадии разработки IETF.
В то время как FTP-серверы, как правило, используют порт 21, соединения через SFTP обычно используют порт 22.
SFTP-приложения для Mac
Существует несколько хороших SFTP-клиентов для macOS, в том числе бесплатный FileZilla (бесплатный, Про версия $25 в Mac App Store), Передать (45 долларов США) от программного обеспечения Panic в Портленде, штат Орегон, и Cyberduck (25 долларов США в Mac App Store).
Cyberduck также предлагает классный подключаемый модуль иностранной файловой системы под названием Mountain Duck (40 долларов США), который интегрируется с MacOS Finder и позволяет вам монтировать SFTP-серверы на вашем рабочем столе, как если бы они были дисками.
Cyberduck и Transmit также поддерживают WebDAV и различные облачные файловые серверы, такие как Amazon S3, Dropbox, Google Drive, Microsoft OneDrive и Backblaze. Transmit также поддерживает другой безопасный стандарт FTP: FTP с TLS/SSL.
В Transmit в окне подключения нажмите кнопку Протокол: всплывающее меню в любом окне подключения для переключения на SFTP. Когда вы это сделаете, также появится небольшая кнопка со значком ключа, позволяющая вам установить локальные ключи SSH для использования для подключения.
Все эти SFTP-приложения великолепны, но Transmit долгое время считался золотым стандартом для Mac, и на самом деле Transmit восходит к концу 1990-х годов и Mac OS 9. В 1996 году Apple выпустила собственное клиентское приложение FTP. названный Киберсобака для Mac OS 9, которая давно снята с производства.
CyberDog стал несчастной жертвой злополучного краха Apple. OpenDoc документальная архитектура конца 90-х.
Поиск FTP-соединений
Многим неизвестно, что на самом деле вы можете подключиться к большинству обычных FTP-серверов, используя Finder. Перейти-> Подключиться к серверу окно из главного меню.
Просто используйте префикс ftp:// и имя или IP-адрес FTP-сервера. При запросе имени пользователя и пароля введите свои учетные данные для подключения.
К сожалению, функция «Подключиться к серверу» в macOS в настоящее время не поддерживает SFTP-соединения, чего Apple давно не ожидала.
Альтернативой командной строки является использование MacFUSE и SSHFS для передачи файлов через SSH в Терминале. Вы можете использовать Homebrew для установки обоих:
brew install osxfuse sshfs
Инструкции по использованию терминала sshfs в типе терминала:
man sshfs
и нажмите Возвращаться.
В диалоговом окне «Подключение к серверу» Finder, если сервер поддерживает анонимные подключения, вы можете использовать свой адрес электронной почты и оставить поле пароля пустым или использовать «анонимный» в качестве пароля.
Если вы хотите подключиться к бесплатному общедоступному тестовому FTP-серверу, попробуйте устаревший архивный сервер Apple, ftp.asimov.net:
Как только соединение установлено, Finder смонтирует удаленный FTP-сервер на вашем рабочем столе, как и любой другой сетевой диск. Просто имейте в виду, что любая передача файлов на FTP-сервер и с него будет передавать данные файла в открытом виде без шифрования.
В большинстве доступных коммерческих FTP-приложений использование передачи файлов довольно простое: просто перетащите файлы и папки с вашего Mac в окно подключенного сервера, и начнется передача файлов.
Чтобы переместить файлы другим способом — с сервера на ваш Mac, просто сделайте наоборот: перетащите файлы или папки из FTP-окна подключенного сервера в одном из приложений на диск, папку или рабочий стол вашего Mac.
Некоторые приложения, такие как FileZilla, отображают индикатор выполнения по мере передачи файлов, а также текстовый журнал, показывающий все действия в окне передачи. Другие, такие как Transmit, показывают отдельное окно задачи, где каждая задача выполняется в отдельном потоке с индикатором выполнения.
Многопотоковые приложения работают более плавно, а отмена переноса обычно более отзывчива.
В качестве сноски: имейте в виду, что некоторые FTP-серверы ограничивают максимальное количество одновременный подключения с одного и того же клиента или IP-адреса, поэтому, если сервер, к которому вы подключаетесь, имеет такие ограничения, вам необходимо установить такое же ограничение в своем клиентском приложении. Если вы этого не сделаете и попробуете больше одновременных передач сверх установленного лимита, сервер, скорее всего, отключит ваше FTP-приложение после того, как вы начнете передачу, и вам придется начинать все сначала.
В Transmit этот параметр находится в окне настроек приложения на вкладке «Передачи»:
Синхронизация файлов с помощью rsync
Команда Linux/UNIX rsync дебютировал в 1996 году в рамках программы Ph.D. диссертация Эндрю Триджелла. С тех пор он был портирован на многие современные операционные системы, включая macOS, OpenBSD и Cygwin для Windows.
Домашняя страница rsync находится по адресу rsync.samba.org, в настоящее время она имеет открытый исходный код и поддерживается на GitHub Уэйном Дэвидсоном. Также есть страница с примерами, включающая примеры скриптов bash, которые используют rsync в качестве инструмента резервного копирования.
rsync также можно запускать в режиме демона (фоновом режиме), который при запуске позволяет использовать синтаксис протокола «rsync://» в приложениях, которые его поддерживают.
Одним из наиболее эффективных способов использования rsync является автоматическое создание добавочных резервных копий компьютеров или дисков через определенные промежутки времени. Он не только знает, что нужно передавать только новые или измененные файлы, но даже знает, какие части файлов были изменены, и по возможности передает только обновленные части.
В macOS rsync работает из командной строки в Терминале и обычно использует SSH для подключения и передачи файлов между сетевыми компьютерами.
Типичная команда rsync состоит из команды, за которой следует пробел, затем файл, который нужно скопировать или обновить, за которым следует имя пользователя и IP-адрес сервера или имя, разделенное символом @, за которым следует пробел, а затем удаленный файл или расположение папки на сервере для передачи файла или папки.
Например, rsync /Users/i7/filename [email protected]:remote-filename
отправляет файл с именем «имя файла» в домашней папке пользователя i7 на Mac на удаленный сервер «remotehost», используя имя пользователя и текущие ключи SSH, установленные на Mac. Удаленный хост может быть именем сервера или IP-адресом.
В большинстве случаев исходный файл или папка указываются в команде первыми, а место назначения — в конце. При синхронизации файлов в другом направлении — с сервера на локальный компьютер — используйте ту же команду, но с обратным синтаксисом файла.
Чтобы получить полный синтаксис и параметры, доступные для rsync в Терминале, введите:
man rsync
и нажмите Возвращаться.
Монтаж
Чтобы установить rsync на macOS, используйте формулу менеджера пакетов Homebrew в Терминале:
Чтобы обновлять rsync в Homebrew, используйте команду update:
После завершения установки проверьте установку rsync в Терминале, набрав:
which rsync
и нажав Возвращаться.
Вы можете увидеть, какая версия rsync установлена на вашем Mac, набрав:
rsync -v
и нажав Возвращаться.
Вы должны увидеть что-то вроде:
rsync version 2.6.9 protocol version 29
Copyright (C) 1996-2006 by Andrew Tridgell, Wayne Davison, and others.
Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,
inplace, IPv6, 64-bit system inums, 64-bit internal inums
Затем следует дополнительная информация и все параметры rsync, напечатанные в терминале.
Есть несколько других доступных формул rsync Homebrew, включая удобный rsync-time-backup
. Используйте поле поиска Homebrew, чтобы найти их.
Написание сценария полного резервного копирования выходит за рамки этой статьи, но для этого вам, по сути, нужно написать сценарий терминала с синтаксисом оболочки bash, использующим rsync, и сохранить его в файле .sh. Затем вы будете запускать сценарий время от времени, используя синхронизированное задание UNIX cron или через демон, работающий в фоновом режиме.
Вы также можете написать сценарий резервного копирования, а затем просто запустить его вручную по желанию, перетащив его в окно терминала и нажав Возвращаться.
Легко указать файлы, папки или целые тома, используя синтаксис rsync в качестве исходного параметра. Вы можете использовать rsync для резервного копирования на другой локальный том, сетевой сервер или интернет-сервер.
Есть также несколько сторонних приложений для резервного копирования, которые полагаются на rsync, например rclone.org и Grsync, интерфейс с графическим интерфейсом для rsync.
Использование rsync в качестве механизма резервного копирования упрощает резервное копирование, и он достаточно умен, чтобы обрабатывать большинство деталей резервного копирования за вас.
Больше не нужно беспокоиться о том, какие файлы и папки изменились, какие файлы являются новыми, а какие следует исключить из резервной копии, поскольку они не изменились.