Ftp клиент синхронизация автоматическая. Редактирование файлов прямо из фтп клиента

21.04.2019 Мониторы

Работа по протоколу FTP — основной на сегодня способ загрузки и скачивания файлов по Сети. Для этого создан не один десяток программ. Зайдите в любой каталог программ — в разделе «FTP» увидите с десятка три бесплатных или shareware-продуктов. С процессом загрузки файлов на сервер они вполне достойно справляются. Но редкая программа может качественно решать задачу синхронизации, то есть добавления или удаления только измененных файлов на локальном или удаленном компьютере. Оговоримся сразу, что задача синхронизации стоит не только перед вебмастерами. Она актуальна для сисадминов предприятий и организаций, которым приходится обеспечивать синхронность работы сотрудников над каким-либо проектом.

Из всего множества программ для работы с FTP, существующих на данный момент, для выполнения задач синхронизации пригодным оказалось не так уж много программных продуктов. Кстати, интересный момент — среди таких программ совершенно нет продуктов, разработанных крупными и признанными лидерами софтверной продукции. Все действительно интересные и работоспособные синхронизаторы сделаны или малыми компаниями, или отдельными программистами.

Программ-синхронизаторов совсем не много

Возможно, что кому-то известны и другие интересные программы, но мы рассмотрим следующие три:

  • vuBrief — автор Валентин Купрович, Санкт-Петербург, первый релиз — март 2001 года, Freeware;
  • SmartSync Pro — от компании SmartSync Software, первый релиз так же в 2001 году, Shareware;
  • WebSynchronizer — от компании ReGet Software, Санкт-Петербург, первый релиз — 14 июля 2003 года, Shareware.

Все они успешно выполняют следующие функции:

  • перенос и синхронизация файлов между директориями в пределах одного компьютера;
  • синхронизация файлов между удаленными компьютерами;
  • синхронизация файлов между локальной и FTP-директорией;
  • резервное архивирование файлов.

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

vuBrief — бесплатная программа для синхронизации

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

Задание для синхронизации в этой программе называется "портфелем". Сколько создается заданий, столько и появится "портфелей" в окне vuBrief. Далее для "портфеля" задаются параметры: синхронизируемые директории, направление синхронизации, время синхронизации, отбор файлов для синхронизации по типу или имени, настройка FTP-соединения.

Простота работы и режим распространения программы (freeware) — основные преимущества программы, в целом ее можно порекомендовать начинающим пользователям.

SmartSync Pro

SmartSync Pro — недорогой продукт для профессионалов

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

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

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

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

WebSynchronizer

Появился на рынке самым последним из перечисленных программ. Его движок основан на движке великолепно зарекомендовавшего себя download-менеджера ReGet. Это, а также опыт предшественников, позволили ему получить дополнительные возможности, которых нет у описанных выше программ.

WebSynchronizer — лучший продукт в своем классе

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

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

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

Резюме

Среди множества программ, связанных с закачкой файлов по FTP, немногие могут выполнять функции синхронизации. С должным уровнем сервиса и надежностью работы эту функцию выполняют единицы. vuBrief — единственная из бесплатных программ, заслуживающая внимания. SmartSync Pro — качественный и надежный софт для вебмастера, обеспечивающий "умную" синхронизацию. WebSynchronizer обеспечивает повышенную скорость и надежность передачи данных.

Синхронизация FTP, SFTP и FTPS требуется для автоматического обеспечения целостности и безопасности хранения больших массивов данных на серверах FTP. Handy Backup предоставляет для хранилищ FTP автоматическую синхронизацию файлов с любыми носителями информации.

Методы синхронизации FTP

Серверы FTP, SFTP и FTPS ничем не отличаются друг от друга по способу синхронизации хранилищ. Разница лишь в используемых для синхронизации инструментах (плагинах), а также в источниках данных.

Синхронизация FTP и сетевой машины (сетевого диска)

Сетевой диск или подключенный по сети компьютер также может быть синхронизирован с FTP сервером с помощью плагина Network. При этом информация передаётся по локальной сети.

С помощью плагинов для облачных сервисов, таких, как Яндекс.Диск или Dropbox , Handy Backup может осуществлять синхронизацию содержимого этих хранилищ с сервером FTP через Интернет.

Способы синхронизации файлов FTP

В отличие от методов, под способами имеется в виду указание взаимоотношений между папками, в соответствии с которыми выполняется синхронизация папки с FTP сервером.

Односторонняя синхронизация (репликация, master-to-slave) – способ, при котором содержимое одной папки заменяет содержимое другой во всех случаях несоответствия.

Двусторонняя синхронизация (зеркалирование, mirroring) – способ, при котором содержимое обоих папок делается одинаковым, за счёт встречного копирования недостающих и обновлённых версий файлов.

Как реализуется синхронизация FTP (SFTP или FTPS) файлов и папок в Handy Backup?

Для создания задачи синхронизации папок между сервером FTP (первая папка) и другим хранилищем (вторая папка) выполните, пожалуйста, следующую простую инструкцию (аналогичным способом вы сможете синхронизировать также папки SFTP И FTPS):

  1. Запустите Handy Backup, создайте новую задачу клавишами Ctrl+N или с помощью меню.
  2. Выберите задачу синхронизации данных.
  3. На Шаге 2 выберите первую папку ; выберите инструмент FTP слева на панели.
  4. Щёлкните дважды на строчке "Новая конфигурация ".

  1. В открывшемся диалоге сконфигурируйте доступ к папке FTP. Проверьте доступ.
  2. Нажмите ОК, затем выберите синхронизируемую папку в новом окне.
  3. Перейдите к Шагу 3 и выберите вторую папку . Ей также может быть хранилище FTP.

  1. Выберите тип синхронизации, расписание и другие настройки задачи.
  2. Завершите работу мастера создания задачи.

Всё готово! Ваши папки FTP будут теперь синхронизироваться автоматически.


Внимание: для сложных задач автоматизации копирования, где данные синхронизации по FTP обрабатываются как часть потока информации, вы можете запустить Handy Backup как Windows service (службу), или использовать запуск из командной строки в пакетном режиме.

Используйте Handy Backup для синхронизации файлов и папок по протоколам FTP, SFTP, FTPS!
Попробуйте все возможности и преимущества, загрузив 30-дневную бесплатную версию программы прямо сейчас!

Рано или поздно, но, думаю, каждый системный администратор сталкивается с необходимостью синхронизации содержимого каталогов, расположенных на разных удалённых системах. Хорошо, если есть возможность использовать или хотя бы возможность смонтировать удалённый ресурс средствами или Samba. Но что делать, если в вашем распоряжении не имеется больше ничего, кроме старого доброго FTP? Выход, конечно же есть, и по традиции мира Open Source, их немало. Перебрав несколько я остановился на утилите FTPSync . Она написана на Perl и теоретически должна работать в любой системе, имеющей в своём распоряжении Perl-интерпретатор. Я же расскажу об опыте установки и использования FTPSync в своей Ubuntu 10.04 Server.

Требования

На данный момент последняя версия программы — 1.3.03. Для её корректной работы необходимо следующее:

  • Perl 5.6+
  • File::Find, IO::Handle (идут в стандартной поставке Perl)
  • Net::FTP (часть пакета libnet-perl)
  • File::Listing (часть пакета libwww-perl)

Установка

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

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

Mkdir -p ~/tmp cd ~/tmp wget http://ftpsync.sourceforge.net/ftpsync-latest.tar.bz2

Теперь распакуем содержимое полученного архива в текущий каталог:

Bunzip2 -c ./ftpsync-latest.tar.bz2 | tar -xv ls -l drwxr-xr-x 2 ashep users 4096 2009-07-03 16:02 ftpsync-1.3.03 -rw-r--r-- 1 ashep users 17191 2009-07-03 16:02 ftpsync-latest.tar.bz2

Мы видим появившийся каталог с файлами FTPSync версии 1.3.03. Посмотрим, что там есть:

Cd ftpsync-1.3.03 ls -l -rwxr-xr-x 1 ashep users 6006 2009-07-03 16:02 Changes -rwxr-xr-x 1 ashep users 18009 2006-08-30 22:28 COPYING -rwxr-xr-x 1 ashep users 31562 2009-07-03 16:02 ftpsync.pl -rwxr-xr-x 1 ashep users 4430 2009-07-03 15:58 README -rwxr-xr-x 1 ashep users 64 2009-04-15 17:02 TODO

Забавная ситуация, все файлы исполняемые. Похоже, под Windows архивировали. Но не суть, собственно, нам нужен файл скрипта и он здесь есть! :) Теперь скопируем файл скрипта в нужное нам место. Я подобные вещи предпочитаю хранить в каталоге /usr/local/bin :

Sudo cp ./ftpsync.pl /usr/local/bin/

И последний штрих. Проверьте, чтобы путь к интерпретатору Perl, указанный в первой строчке скрипта /usr/local/bin/ftpsync.pl совпадал с реальным размещением интерпретатора в вашей системе. По умолчанию в скрипте используется путь /usr/bin/perl , что в большинстве случаев соответствует действительности. Узнать, где у вас находится perl, можно так:

Which perl

Использование

FTPSync умеет работать в обоих направлениях, то есть выполнять синхронизацию как с локального каталога в удалённый, так и наоборот. Направление синхронизации FTPSync определят из параметров командной строки. Общий формат вызова FTPSync таков:

Ftpsync [опции] [источник получатель]

Либо источник , либо получатель должны содержать путь к локальному каталогу, в то время как противоположный параметр должен содержать URL удалённого ресурса. Обратите внимание, что параметр источник имеет значение по умолчанию — это текущий каталог. При этом, по ещё одному умолчанию, FTPSync выполняет синхронизацию в направлении «из локального ресурса в удалённый». Таким образом, если вы запустите программу, передав ей только URL удалённого ресурса, на FTP-сервер будет отправлено содержимое текущего каталога. Помните об этом при использовании FTPSync в командных сценариях.

Формат URL при определении удалённого FTP-ресурса такой:

Ftp://[пользователь[:пароль]@]хост/каталог

Что ж, предлагаю попробовать FTPSync в деле. Пока что не будем лезть в дебри опций, которых, кстати, не так и много. Вот так у меня выглядело копирование содержимого каталога с исходными текстами FTPSync на сервер:

/usr/local/bin/ftpsync.pl ~/tmp/ftpsync-1.3.03/ ftp://guest:[email protected]//

Обратите внимание на дополнительный слеш в конце URL. Он указывает программе не перемещаться ни в какой каталог, а использовать тот, в который FTP-сервер «выбрасывает» пользователя после логина.

Determine s offset. Clock sync offset: 0:00:00 Building local file tree. Building remote file tree. Starting synchronization. Creating new remote directories. Copying new(er) local files. New: ftpsync.pl (31562 bytes) New: COPYING (18009 bytes) New: Changes (6006 bytes) New: README (4430 bytes) New: TODO (64 bytes) Deleting obsolete remote files. Deleting obsolete remote directories. Done.

Как видно, FTPSync успешно скопировала пять файлов из указанного мной локального каталога. Теперь пробуем удалить локальный файл README и повторить синхронизацию той же командой:

Rm ~/tmp/ftpsync-1.3.03/README /usr/local/bin/ftpsync.pl ~/tmp/ftpsync-1.3.03/ ftp://guest:[email protected]// Determine s offset. Clock sync offset: 0:00:00 Building local file tree. Building remote file tree. Starting synchronization. Creating new remote directories. Copying new(er) local files. Deleting obsolete remote files. README Deleting obsolete remote directories. Done.

FTPSync успешно удалила файл README , отсутствующий в локальном каталоге, но всё ещё существующий на FTP-сервере.

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

/usr/local/bin/ftpsync.pl ftp://guest:[email protected]// ~/tmp/ftpsync-1.3.03/ Determine s offset. Building local file tree. Building remote file tree. Starting synchronization. Creating new local directories. Copying new(er) remote files. Deleting obsolete local files. TODO Deleting obsolete local directories. Done.

Опции

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

  • -c | -C заставит программу спрашивать вашего разрешения на выполнение каждого своего действия;
  • -d | -D включает вывод отладочной информации. В частности вы увидите лог FTP-сессии, который может оказаться весьма полезным в некоторых ситуациях;
  • -f | -F отключает рекурсивное копирование;
  • -g | -G при указании этой опции FTPSync будет выполнять синхронизацию в направлении «с сервера в локальный каталог»;
  • -h | -H справка по работе с программой;
  • -i | -I вывод основной информации в процессе работы, включено по умолчанию;
  • -n | -N не удалять в получателе отсутствующие файлы и каталоги источника;
  • -l | -L рассматривать локальные символические ссылки в качестве каталогов;
  • -p | -P при указании этой опции FTPSync будет выполнять синхронизацию в направлении «из локального каталога на сервер»;
  • -q | -Q отключает вывод информации;
  • -s | -S включает сравнение времени доступа файлов и каталогов. Без этой опции при сравнении используются только размеры файлов;
  • -t | -T отключает обновление меток времени для локальных файлов;
  • -v | -V включает многословный вывод;
  • cfg= указывает FTPSync считывать параметры из файла, указанного в значении этого параметра:
  • ftpserver= имя хоста FTP-сервера. По умолчанию это «localhost»;
  • ftpdir= каталог FTP-сервера. По умолчанию это текущий каталог;
  • ftpuser= имя пользователя FTP-сервера, по умолчанию это «ftp».
  • ftppasswd= пароль пользователя FTP-сервера, по умолчанию это «anonymous».
  • ignoremask= регулярное выражение, определяющее имена файлов, игнорируемые при синхронизации.
не помню за опцию, но думаю в мане все это есть. Если не может в обе стороны синхрить(в чем я сомневаюсь), то можно два скрипта один в одну, другой в другую)))

Rsync - современный способ синхронизации файлов

Итак, для чего нужен RSync?

RSync - был разработан как замена старой команды rcp. С помощью которой производилось копирование файлов между машинами UNIX-систем. RSync очень удобен, так как его алгоритм построен так, что он отслеживает как изменился файл и копирует только необходимые части. Причём для выявления изменений, ему не надо сравнивать два файла. И работает это очень быстро.

Кроме того, очень полезным будет его способность работать через ssh. Что обеспечивает шифрование канала, что очень важно, если вы синхранизируете два сервера в сети интернет. Для уменьшение трафика, rsync так-же умеет сжимать данные, при передаче по сети. Это очень мощная утилита, и надо быть с ней осторожным, с её помощью можно испортить данные.

Мы будем рассматривать rsync как средство синхронизации файлов между серверами, а не как систему раздачи файлов. В первом случае мы используем ssh, а во втором нам необходимо запускать сервер rsync.

Разберём на примере:


--delete-after root@:/home/ /home/

Rsync -e ssh --progress -lzuogthvr --compress-level=9 \
--delete-after /home/ root@:/home/

Зависит от того, в какую сторону синхронизируем файлы

Обратите внимание на последний слеш, так как он имеет значение для rsync. Если на конце исходной директории стоит «/», то это означает копирование содержимого директории; отсутствие слеша означает копирование директории и ее содержимого.

* e - заменяет протокол с rsh на ssh

* progress - вывод хода процесса работы на терминал
* l - пересоздание symlinks, это значит, что символические ссылки будут так же переноситься

* z - использовать сжатие
* u - update. Обновление, он будет пропускать файлы которые новей, чем на удалённом сервере

* o - установить владельца конечного файла таким же, как и у исходного
* g - установить группу конечного файла таким же, как и у исходного

* t - передача времени модификации и его обновление на удаленной системе. Этот ключ должен быть установлен для точной синхронизации
* h - вывод информации на терминал в удобном для чтения (human-readable) виде

* v - verbose. Вывод сообщений в терминал.
* r - рекурсивный режим

* n - отладочный режим
* compress-level - уровень сжатия

* delete-after - удалять файлы, которые не были найдены на удалённом сервере, “-after” означает, что удалить их нужно, только после окончания синхранизации. Так-же есть delete-before, delete-during, delete-excluded и просто delete

Отладочный режим
Перед тем как запустить скрипт на рабочей машине, опробуйте всё в отладочном режиме, для этого используется ключь “-n”. В этом случае, rsync

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

Исключение файлов
RSync может как исключать, так и включать файлы, по заданному шаблону. Например -exclude *.run исключит все файлы с расширением run.