Ftp клиент синхронизация автоматическая. Путеводитель по бесплатным FTP-клиентам

11.04.2019 Android

Рано или поздно, но, думаю, каждый системный администратор сталкивается с необходимостью синхронизации содержимого каталогов, расположенных на разных удалённых системах. Хорошо, если есть возможность использовать или хотя бы возможность смонтировать удалённый ресурс средствами или 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= регулярное выражение, определяющее имена файлов, игнорируемые при синхронизации.

Автоматическая синхронизация папок Windows позволяет организовать и поддерживать 2 идентичные по составу директории. Файлы копируются на соседний компьютер по локальной сети или в другой офис компании по безопасному протоколу SFTP (SSH) . При добавлении или изменении данных в одной папке все изменения будут отражаться в другой.

Итак, считаем, что у вас дома или на работе есть основная рабочая директория, расположенная на локальной или сетевой машине, и появилась необходимость автоматически копировать (зеркалировать, доставлять) файлы из нее в другое место: на флешку, внешний жесткий диск (винчестер), по локальной сети, на удаленный сервер по протоколу FTP или в облако Яндекс.Диск .

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

С этой задачей легко справляется небольшая, но очень удобная программа для синхронизации папок и файлов Exiland Backup, позволяющая создавать 4 типа резервных копий , одним из которых и является возможность зеркалирования данных в Windows.

Синхронизация файлов в локальной сети и по FTP (synchronize) – лишь малая часть возможностей Exiland Backup. Полный перечень функций вы можете увидеть на странице сравнения версий . В данной статье на них мы останавливаться не будем, а рассмотрим лишь способ настройки зеркалирования между компьютерами. Данная функция будет в помощь как системным администраторам, так и домашним пользователям.

Exiland Backup - простое решение для синхронизации файлов и папок

Простая утилита Exiland Backup позволяет автоматически выполнять одностороннюю синхронизацию папок по расписанию (не чаще, чем 1 раз в минуту). Быстро и тщательно сравнивает содержимое исходных данных с конечной папкой и приводить их в соответствие. Это особенно удобно для периодической доставки файлов из одного филиала организации в другой по FTP . В качестве исходной директории может быть указано несколько директорий.

ВНИМАНИЕ . При добавлении, изменении или удалении исходных файлов, все изменения также отражаются в конечной директории. Если удалите данные из источника, они автоматически удалится из приемника. Если вам не нужно удалять файлы из конечной папки, выберите соответствующую опцию..

В Exiland Backup предусмотрены различные настройки "умной" синхронизации папок в локальной сети, на одном компьютере, в облако. Например, программа может копировать как все данные, так и выборочно по заданной маске , атрибутам и указанным подпапкам.

К дополнительным возможностям можно отнести такие как:

  • Ведение подробного журнала с отображением, какие файлы были добавлены, обновлены и удалены.
  • Возможность отправки журнала по e-mail или уведомления на мобильный телефон в виде SMS.
  • Гибкая настройка расписания .
  • Запуск копирования автоматически при старте Windows, при подключении флешки или другого сменного устройства.
  • Запуск задания из командной строки (command line).

Пошаговый мастер настройки

Итак, рассмотрим на примере, как настроить Exiland Backup для зеркалирования.
Предположим, нам необходимо каждые 3 минуты с 8:00 до 21:00 синхронизировать "C:\Документы" со всеми подпапками с локального компьютера, куда установлена программа, на удаленную машину "NAS-Server" в расшаренную папку "\\NAS-server\Backups\Документы".

Запустите бэкап-программу. В верхнем левом углу главного окна программы нажмите кнопку создания нового задания – появится пошаговый мастер.


Шаг 1: Наименование задания

Введите любое название задания, например "Зеркало рабочих документов" и нажмите "Далее".

Шаг 2: Тип резервного копирования

Укажите тип – "Синхронизация" и нажмите "Далее".


Шаг 3: Исходные данные

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


Для этого нажмите "Добавить -> Локальные/сетевые папки и файлы...", укажите путь к "C:\Документы" на ПК и нажмите OK, после чего появится окно выбора параметров папки.


Здесь можете все оставить по-умолчанию и сразу нажать OK.

Шаг 4: Конечная папка для синхронизации

Выберите путь к конечной директории-приемнику, в данном случае "\\NAS-server\Backups\Документы", а также укажите логин/пароль для входа в сетевую папку, если доступ к ней ограничен.

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

Конечная директория может быть только одна!



Шаг 5: Расписание выполнения задания

Чтобы указать расписание запуска задания, нажмите кнопку "Изменить" и в появившемся окне укажите тип расписания "Ежедневно", после чего выберите время. Нажмите "Изменить" справа, от поля "Время", затем нажмите кнопку "Добавить", пункт "Периодически" и укажите "Каждые 3 мин" с заданным интервалом: со скольки и до скольки повторять синхронизацию (в нашем примере с 8:00 до 21:00). Готово. Нажмите OK несколько раз, пока не закроются все появившиеся ранее окна.



Шаг 6: Уведомление

Оставьте все по-умолчанию и кликните "Готово".

Задание создано!
На предложение о настройке дополнительных параметров пока ответьте "Нет". Позже всегда сможете вернуться к настройках и изменить их.


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

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

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

Итак первое что необходимо сделать — это скачать установочный файл FileZilla. Скачать можно вот здесь: filezilla.ru/get . Скачиваем на свой компьютер файл по ссылке. Вы можете выбрать для скачивания стандартную версию, которую необходимо установить и версию portable. Установка производится как и любая другая инсталляция. В случае с портативной версией, установка будет заключаться в простом создании папки с файлами без изменения или создания записей в реестре.

После успешной установки запускаете клиент и переходим к настройке FTP соединения.

Настраиваем FTP соединение

Для подключения к удаленному серверу вам необходимо настроить это самое соединение. Для этого вы должны знать IP адрес сервера (он имеет вид например: 192.168.123.343) или его URL (например: www.fileserver.com). Обычно хостинг провайдер присылает необходимые данные в письме после покупки или после регистрации. Данные для подключения к удаленному серверу включают так же: логин, пароль и иногда прописывают порт через который производится соединение (порт указывается после двоеточия в ip адресе, например: 192.168.123.343:8080 ).

Подключение с помощью FileZilla производится 2 способами. Первый — это непосредственное указание в поле быстрого подключения всех данных и второй — создание в менеджере подключений записи с данными. В первом случае после закрытия программы данные о подключении не сохраняются, во втором — все будет сохранено (IP, логин и пароль). Учтите так же что все сохраненные данные для подключения к вашему серверу будут доступны любому, кто получит доступ к вашему компьютеру под вашей учетной записью. Поэтому если у вас не стоит даже пароля на вход в Windows, лучше используйте первый способ подключения, а данные для доступа храните в недоступном для других месте. Я очень рекомендую пользоваться для хранения всех паролей и данных для доступа в программе KeePass. О том как использовать ее для хранения данных доступа к FTP и при этом по нажатию одной кнопки производить подключение вы можете прочитать в статье: .

Запускаем программу и в верхней строчке (там где помечено стрелками) указываем данные для подключения: Хост, Логин, Пароль, Порт (если необходим) и нажимаем кнопку «Быстрое соединение».

Если подключение прошло без ошибок, вы в правом окне увидите список из папок и файлов, которые находятся на вашем сервере к которому вы подключились через FTP клиент. Так же в истории действий в статусе будет указано что «Соединение установлено» и «Список каталогов извлечен». После первого вашего подключения к серверу, FileZilla сохранит историю подключений, которую можно открыть нажав на треугольничек справа от кнопки «Быстрое соединение». Информация для соединения сохраняется вся, кроме пароля. Его вам необходимо будет вводить каждый раз (в отличие от менеджера соединений, где хранится и пароль).

Теперь вы можете уже быстро создавать FTP соединение с вашим сервером. Второй способ подразумевает создание записей с данными доступа к вашим сайтам в менеджере сайтов. Для этого нажимаем кнопке «Открыть менеджер сайтов». И создаем новую запись нажав на кнопку «Новый сайт». Сразу же для идентификации придумываем ему имя (я назвал его например My Blog 01) и чтобы задать в параметрах для входа логин и пароль меняем тип входа с «Анонимный» на «Нормальный» (после смены появится поля для ввода логина и пароля).

После этого заполняем все необходимые поля (Хост, Пользователь (Логин) и Пароль) и нажимаем кнопке «Ок» если хотим просто сохранить запись или же нажимаем «Соединиться» для сохранения записи и соединения с сервером.

По умолчанию в настройках сохранение паролей включено, но если вдруг при сохранении записи выскочит уведомление об отключенной функции сохранения паролей, вам необходимо будет зайти в меню «Редактирование» >> «Настройки» и во вкладке «Интерфейс» убрать галочку с пункта «Не сохранять пароли».

После того как вы создадите записи с данными для подключения по FTP к удаленному серверу, чтобы при открытии программы подключиться к ране заданному хосту, просто нажимаете на треугольник справа от кнопки «Менеджер Сайтов» и выбираете в выпадающем списке необходимый сайт.

Операции с файлами

Для операций с файлами в FileZilla используются те же методы что и в самой Windows. Вы можете взять файл с вашего рабочего стола или из открытой папки с файлами и перетащить его в ту часть открытого окна FTP клиента, в котором находится содержимое на вашем удаленном сервере. Точно так же можно использовать функцию перетаскивания в обратном направлении. Т.е. «схватить» файл или папку из окна вашего удаленного сервера перетащить на рабочий стол или в папку. При этом происходит копирование объекта, который перетаскивается.

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

Чтобы удалить файл, находящийся на удаленном компьютере, необходимо выбрать файл и после нажатия правой кнопкой мыши на нем (можно так же выбрать несколько файлов или папок использую при выделении дополнительные клавиши Ctrl или Shift) в выпадающем меню выбираем «Удалить». Чтобы переименовать файл, нажимаем правой кнопкой мыши на файле или папке и выбираем «Переименовать»

Для создания новой папки на сервере, нажимаем правой кнопкой мыши в любом месте окна, где расположены файлы и папки удаленного компьютера и выбираем меню «Создать каталог». После этого вводим имя для папки. Вот в принципе и все основные операции с файлами на удаленном компьютере при помощи файлового FTP менеджера FileZilla. По большому счету такие же как и в операционной системе.

Filezilla как пользоваться синхронизированным просмотром

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

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

  1. Нажимаем на кнопку «Менеджер сайтов»
  2. В окне менеджера выбираем сайт, при просмотре которого необходим синхронизированный просмотр или же при создании новой записи подключения.
  3. Открываем вкладку «Дополнительно»
  4. Указываем паку на вашем локальном компьютере (имеющуюся или создаем новую)
  5. Указываем удаленный каталог на сервере вашего хостинга (если вы не знаете каталог по умолчанию, необходимо спросить в службе поддержки и они вам его предоставят)
  6. Отмечаем галачку «Использовать синхронизированный просмотр» и в конце нажимаем на «Ок» или «Соединиться».

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

Настраиваем права доступа к файлам и папкам

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

  • чтение файлов и папок
  • запись
  • исполнение файлов

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

Для того чтобы изменить права доступа, вам необходимо проделать следующее:

  1. Нажимаете правой кнопкой мыши на файле или папке на удаленном сервере.
  2. В выпадающем меню выбираете пункт «Права доступа к файлу…»
  3. Появиться окно с настройками прав. В блоке 3 настраиваются права для владельца данного файла или папки. Выставляя галочками вы разрешаете выполнять с объектом конкретное действие, а убирая галочку — запрещаете.
  4. В 4 блоке указываются права для группы.
  5. В 5 блоке указываются права для пользователя.
  6. Если вы выбрали в качестве объекта изменения прав папку, тогда появиться дополнительный блок, который позволяет указать права для всех файлов и папок, находящихся внутри выбранной папки. Установив галочку, появятся 3 варианта задания: применять ко всем объектам (папки и файлы), применять только к файлам и применять только к папкам.

Выбираете нужные вам параметры и жмете «Ок».

Редактирование файлов прямо из фтп клиента

В FileZilla есть очень удобная и полезная функция которой я пользуюсь постоянно и очень советую освоить ее и вам. Это функция редактирования файлов прямо из окна программы без необходимости скачивать файл на свой компьютер и последующей загрузкой обратно на сервер. Плюс к этому вы можете не выходя из редактора сохранить изменения и посмотреть к чему это привело на самом сайте и в случае проблем, вернуть назад в редакторе файла изменения и исправить ситуацию. Для наиболее полного удобства при работе с файлами скачайте и установите самую лучшую на мой взгляд программу для редактирования Notepad++.

Итак предполагаем что Нотепад++ у вас уже установлен и вы в общих чертах ознакомились с работой. Для настройки редактирования файлов:

  1. Нажимаем «Редактирование»
  2. Выбираем «Настройки…»
  3. В открывшемся окне настроек выбираем пункт «Правка файлов»
  4. Ставим переключатель в положение «Использовать следующий редактор:»
  5. Указываем расположение исполняемого файла по кнопке «Обзор…». Обычно он находится в папке по умолчанию как указано у меня на изображении.
  6. В этом блоке можно указать чтобы всегда для редактирования файлов использовался редактор указанный в настройках выше. Однако если вам необходимо редактировать файлы с каким либо расширением другой программой, тогда устанавливаете переключатель «Для открытия использовать ассоциации файлов». Ассоциации файлов можно настроить как показано на изображении снизу. Указываете расширение файла и через пробел в кавычках путь к исполняемому файлу.
  7. Ставите чекбокс чтобы файлзилла отслеживала изменения и предлагала сохранять на сервер измененный файл.

Синхронизировать данные по протоколу FTP можно и с помощью Total Commander. Но человеку, дорожащему своим временем и нервами, все же стоит присмотреться к программам-синхронизаторам.



ПРОСТЫЕ РЕШЕНИЯ

С «обычными» FTP-клиентами можно работать двумя методами. Первый – обновление сайта на локальном компьютере и перезакачка всех файлов с заменой одних другими. Метод пригоден для веб-мастера, который обладает хорошей связью и работает с маленьким сайтом, отличающимся низкой посещаемостью. Другой вариант – после трансформации сайта на локальном компьютере вручную проводить сравнение дат изменения файлов и закачивать только модифицированные документы. Это очень трудоемкий вариант – даже небольшое изменение интернет-проекта требует внимания и аккуратности.
Функцию сравнения дат создания файлов можно переложить на файловые менеджеры – скажем, на FAR или Total Commander. Они имеют возможность сравнивать каталоги и включают встроенный FTP-клиент, поэтому их можно рассматривать как вариант рабочего инструмента для веб-мастера. Но, делая ставку на привычный файловый менеджер, необходимо помнить об ограничениях, которые накладываются на процесс синхронизации самой программой.
Во-первых, режим синхронизации в Total Commander решен очень просто: сравниваются текущие дата/время изменения файлов, исходя из того предположения, что более новый файл – более «правильный». Между тем этого достаточно далеко не всегда. Кроме того, файловые менеджеры не сравнивают подкаталоги, а это актуально для веб-проектов.
Во-вторых, Total Commander не запоминает никакой служебной информации, и если, скажем, ваш сервер расположен в другом часовом поясе, то возможны ошибки при загрузке файлов (не зря в документации на этот счет дается ряд предупреждений красными буквами).
Устранение этих двух ограничений превращает «обычный» FTP-клиент в самый настоящий синхронизатор. Такие программы переходят на качественно новый уровень – они могут автоматически синхронизировать операции удаления файлов, следить за конфликтами, возвращать ошибочно измененные файлы к первоначальному виду и т. д.

СИНХРОНИЗАТОРЫ

Помимо работы с файлами по FTP-протоколу специализированный синхронизатор FTP-клиент должен:

1 Сравнивать данные на локальном и удаленном компьютере, желательно с настройкой параметров для сравнения. Эта задача не так проста, как кажется – необходимо сопоставлять реальное время компьютеров в разных часовых поясах, так как удаленное расположение пользователя и сервера друг от друга – достаточно распространенная ситуация. И, что гораздо важнее, приходится сравнивать сами файлы, поскольку надо учитывать возможность изменений одного и того же файла разными пользователями на разных компьютерах.
2 Проводить выборочную загрузку/выгрузку файлов в соответствии с проведенным анализом.
3 Восстанавливать свою работу после обрыва связи.
4 Вести протоколы работы.
5 Иметь русскоязычный интерфейс и русский файл помощи.
6 Обеспечивать безопасность обновления. Если при загрузке файла произошел обрыв связи, то неполный файл может затруднить просмотр сайта или сделать его на некоторое время недоступным. Беспроблемное для посетителей обновление реализуется с помощью несложной процедуры: файл сперва закачивается во временный, потом переименовывается.
7 Иметь возможность производить выборочное обновление в соответствии с введенными критериями (фильтры). Эта функция нужна, если необходимо обновить не весь контент сайта, а, скажем, только графическую часть проекта.
8 Синхронизировать файлы по расписанию. Эта функция обеспечивает выполнение процесса синхронизации в определенное время и без участия пользователя.

Утилит, берущихся за выполнение таких задач, немало, но мы рассмотрим лишь предложения российских программистов. И дело здесь вовсе не в патриотизме, а в том, что обслуживание корпоративных проектов зачастую ведут не разработчики сайтов, а сотрудники фирмы, для которых знание английского языка и специальной терминологии не является обязательным.
КОМУ ЧТО НУЖНО

Все многообразие пользователей интернета можно разделить на несколько групп, которым нужны разные типы программ-синхронизаторов. Первая группа – это начинающие пользователи, которым приходится поддерживать один-два несложных сайта, созданных в HTML, и пользоваться различными FTP-серверами для обмена файлов. Вторая группа – это профессиональные пользователи, которым важно вовремя и быстро произвести синхронизацию их интернет-проектов, причем сделать это желательно в определенное время с высокой скоростью и качеством.
Третья группа – профессиональные пользователи, чьи функции шире, чем просто синхронизация по FTP. Небольшое пояснение: технически синхронизация – это передача данных, так же как и, например, копирование. Поэтому многие программы синхронизации включают в себя функцию резервного копирования. Мы отобрали несколько программ, которые, на наш взгляд, оптимальны для указанных групп пользователей.
Для непрофессионалов

При выборе программы для этой группы мы исходили из простого предположения, что для них имеет большее значение бесплатность программы и несложный интерфейс. Среди всех бесплатных утилит приемлемого качества работы можно выделить FastUpdate (dinara.ru/fup). Изначально она создавалась только для синхронизации файлов по FTP-протоколу, поэтому оказалась лишена типичных для таких программ функций локальной синхронизации и резервного копирования. Программа очень простая и аккуратная, с отличным интерфейсом. Имеется хорошая и понятная справка на русском языке.
Она синхронизирует локальные папки с FTP, но только в одну сторону – изменений на FTP не проверяет. Есть фильтр, предпросмотр заданий и редактирование плана синхронизации, запуск по расписанию. К сожалению, эта утилита не ведет протокола работы. Программа может неправильно обрабатывать возникающие ошибки: когда закачать файл на сервер по какой-либо причине не удается, FastUpdate «задумывается», в строке состояния остается запись, что файл передается, но ничего не происходит. Обычно такое случается, если пользователь грузит очень большой файл – порядка нескольких мегабайт.
Но согласитесь, для веб-сайтов начинающих юзеров это нетипично. Тем пользователям, у которых связь оставляет желать лучшего, нужно специально отслеживать процесс загрузки. Если вы заметили, что файл передается дольше, чем это должно быть, нажмите кнопку «Остановить обновление». Маленькая хитрость – имя FTP-сервера в настройках надо писать без префикса «ftp://», иначе будет непонятная ошибка socket error 10110. Если содержимое сайта в локальной папке уже подготовлено, а на сервере его еще нет, то надо выделить все файлы в списке и в контекстном меню выбрать «Обновить». В противном случае программа будет думать, что раз в локальной папке ничего не изменилось, то и на сервер ничего посылать не надо.
Несмотря на указанные недоработки, программа практически идеально подходит для публикации домашних страничек и не очень больших сайтов. Но если непрофессиональный пользователь хочет получить беспроблемную программу, то ему стоит рассмотреть коммерческие продукты. Для второй и третьей групп пользователей обращение к коммерческим программам – уже не возможность, а необходимость. Такие утилиты обеспечивают устойчивую работу соединения и многопоточную закачку данных. При возникновении технических проблем к услугам пользователя служба поддержки.

Для профессионалов

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

Site Publisher (www.sitepublisher.net);

SmartSync Pro (www.smsync.com);

ZSKSoft Synchronizer (www.zsksoft.ru/zsync.htm);

WebSynchronizer (www.websynchronizer.com/ru).
Первые три программы могут выполнять все виды синхронизаций и резервное копирование, последняя специализируется только на синхронизации.
Если нужна только синхронизация

Тем, кто нуждается только в синхронизации, мы рекомендуем программу WebSynchronizer (www.websynchronizer.com/ru). Она разработана компанией, специализирующейся на передаче данных и известной отличным download-менеджером ReGet, поэтому неудивительно, что работа с FTP в данной утилите реализована на очень высоком уровне. Это проявляется даже в мелочах – WebSynchronizer без вопросов подключается к FTP-узлу при незаданном имени пользователя и пароле (при работе с другими синхронизаторами обычно приходится вспоминать, как пишется слово Anonymous).

Механизм транспортировки информации, заимствованный у ReGet, позволяет проводить синхронизацию в несколько потоков, что увеличивает скорость передачи. Однако реальное увеличение скорости больше зависит от типа соединения с интернетом. На обычном для России dial-up скорость увеличивается не в разы, а на проценты. Однако при локальной синхронизации пользователь получит максимальный эффект от многопоточной передачи данных.
Одной из приятных особенностей программы является мастер создания задачи, который проведет пользователя пошагово по всему процессу создания задачи синхронизации. К сожалению, вся документация по программе только на английском языке. Интерфейс очень приятный, чувствуется рука мастера (студиz Артемия Лебедева потрудилась на славу). Возможно использование скинов.
Программа умеет работать с локальными папками и FTP, причем в любой комбинации: локальный-локальный, FTP-FTP и локальный-FTP. Надо отметить возможность синхронизации между двумя удаленными серверами без промежуточной загрузки на локальный компьютер – таким образом программа обеспечивает легкое и простое обновление «зеркал» интернет-проекта. WebSynchronizer обладает джентльменским набором качественного синхронизатора: безопасный режим обновления, докачка файлов, работа в несколько потоков, определение временной зоны сервера (в отличие от некоторых других коммерческих программ-синхронизаторов, WebSynchronizer определяет ее правильно).
Протокол работы ведется в отдельной панели у нижнего края программы, что обеспечивает постоянный контроль над процессом синхронизации. Пользователь обладает возможностью контролировать работу как в целом, по всем потокам одновременно, так и по каждому потоку отдельно. Возникшие в ходе работы ошибки фиксируются в протоколе – идет серия записей на красном фоне, что привлекает внимание. Причем, как и положено, повторных попыток делается ровно столько, сколько указано в настройках.
При помощи встроенного планировщика WebSynchronizer может самостоятельно выполнять повторяющиеся задания. Каждое поручение в планировщике имеет два атрибута: «действие» и «событие». Доступно пять действий: «запустить задачу», «запустить программу», «установить соединение с интернетом», «разорвать соединение», «отключить компьютер». «Событие» – это время, в течение которого выполняется планируемое задание. По выбору одна или несколько задач синхронизаций могут быть ассоциированы с заданием планировщика. Для каждого из «действий» и «событий» предусмотрены гибкие настройки. Все это позволяет добиться максимально автоматизировать работу по синхронизации файлов и папок независимо от времени суток и наличия свободного времени у пользователя.
Для удобства работы предусмотрена система фильтров и использование файловых ассоциаций. Фильтры можно установить по маске для конкретных документов. Кроме того, можно производить отбор файлов по размеру – делается это в файловых ассоциациях, которые позволяют связывать некоторые действия и параметры с файлами по определенному шаблону.
Однако и у этого синхронизатора есть недостатки. Главный из них заключается в том, что он не запоминает состояние файлов, поэтому не может обнаружить конфликты, когда документ замещается более свежей, но не актуальной версией. Такая ситуация возникает, если работу над одним и тем же файлом ведут несколько человек одновременно на своих локальных компьютерах. Оба файла были изменены, а при синхронизации произойдет сохранение только одной из версий, изменения в другой будут проигнорированы. Частично этот недостаток компенсируется тем, что в период синхронизации все обрабатываемые файлы блокируются, и изменения в них вносить нельзя. В целом же надо иметь в виду, что WebSynchronizer не рассчитан на коллективную работу над проектом.
На наш взгляд, у программы малы и временные промежутки, по которым определяется «свежесть» файла. Максимальная точность при сравнении времени файлов – одна минута (по умолчанию две минуты). Если разница меньше, то файлы считаются одинаковыми. Впрочем, это существенно при сравнении локальных файлов, для работы с файлами по протоколу FTP этого достаточно. Гораздо важнее то, что нет возможности обновлять FTP-папку с включенным кэшем. В результате для больших сайтов временные затраты на сканирование могут оказаться довольно существенными.
Если нужен еще и бэкап

Пользователям, для которых актуальна не только FTP-синхронизация, но и возможность резервного копирования, а также офлайн-синхронизация, лучше всего подойдет ZSKSoft Synchronizer (www.zsksoft.ru/zsync.htm) от компании ZSKSoft Lab. Программа создана относительно недавно. Эта утилита обладает достаточно специфичным интерфейсом, к которому нужно привыкнуть. Редкое достоинство среди аналогичных программ высокого класса – подробная русскоязычная документация и специально созданные примеры работы, которые очень пригодятся при ее освоении.
ZSKSoft Synchronizer синхронизирует локальные папки, ZIP-архивы, FTP- и офлайн-папки. Довольно удобно сделан фильтр – это не просто список масок, а редактируемый набор категорий, в который нужные или ненужные файлы либо типы файлов переносятся прямо из плана синхронизации с помощью Drag-and-Drop. Для категорий можно настраивать разные направления синхронизации: файлы, над которыми работает один сотрудник, копируются от него в общую папку проекта, файлы его коллег – к нему. Программа умеет показывать, чем конкретно отличается содержимое двух файлов, отслеживает изменения с автоматическим информированием пользователя, если произошло что-то подозрительное (например, дата/время файла уменьшилась).
План синхронизации отображен в виде дерева, а не списка, есть возможность отфильтровывать содержимое по степени серьезности (показывать\не показывать, изменившиеся\не изменившиеся, подозрительные, конфликты и так далее). Как и WebSynchronizer, эта утилита может одновременно синхронизировать несколько папок, причем любого типа и в любой комбинации. В отличие от других программ она умеет начинать офлайн-синхронизацию пересылкой не всех файлов подряд, а только нужных. Кроме того, программа умеет обновлять FTP-папки без их сканирования – такая возможность есть еще только у Fast Update и Site Publisher. ZSKSoft Synchronizer честно сравнивает дату и время, потому что умеет переспрашивать ее у файлов после копирования.
Продуманность видна даже в мелочах: например, при сравнении файлов программа сразу назначает им номера версий в виде цифр, так что сразу видно, какой из них более новый, не глядя на дату/время. И, наконец, главное достоинство скрыто в самой архитектуре программы – работа с папками разных типов происходит через единый интерфейс. Это означает, что ZSync нацелен на дальнейшее развитие и спустя какое-то время можно ожидать выхода новых версий (например, умеющих работать с CVS, синхронизировать почтовые базы, записные книжки и многое другое).
Среди недостатков этой программы отметим отсутствие возможности синхронизации в заданное время и необходимость привыкать к интерфейсу.
Виды синхронизации

Синхронизация – процесс сравнения и при необходимости перезаписи файлов различных папок в соответствии с заданными критериями. Критерии сравнения могут быть различными, но чаще всего это время создания или изменения файла. Существует несколько задач синхронизации. Их классификация производится по видам папок, над которыми осуществляется этот процесс.
- Локальная синхронизация – синхронизация между папками одного и того же компьютера. Чаще всего это папки, расположенные на разных логических или физических дисках. Цель такой синхронизации – обеспечение безопасности данных.
- Удаленная синхронизация – синхронизация между папками разных компьютеров независимо от того, в какой сети находятся эти компьютеры – в локальной или в интернете. Цель такой синхронизации – обеспечение идентичности папок на этих компьютерах.

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

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

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

Не все знают, что WinSCP поддерживает работу со скриптами. Воспользуемся этой возможностью для синхронизации файлов по FTP.

Напишем такой простой скрипт и сохраним его в файлик scp_sync.txt

Option batch on option confirm off # open ftp connection open ftp://user :password @server # synchronize files from server synchronize -criteria=size -transfer=binary local local-path remote-path exit

Описание всех команд можно найти на сайте, но и так несложно догадаться о их назначении.

Следующие параметры нужно изменить на свои.

  • user - имя пользователя
  • password - пароль
  • server - адрес сервера (IP или домен)
  • local-path - локальный каталог, например C:\Backup
  • remote-path - удаленный каталог, для корня нужно указать /

Можно изменить направление синхронизации, в моём случае local - файлы скачиваются с сервера в локальную папку. Другие допустимые значения: remote - изменения в локальной папке будут залиты на сервер, both - двухсторонняя синхронизация.

Также допустимо поменять критерий определения изменения файлов -criteria=size . Допустимые значения time , size и either - по времени изменения, по размеру, или оба критерия сразу, при этом время изменения будет иметь более высокий приоритет по сравнению с размером.

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

Полный синтаксис команды synchronize можно найти .

Запуск скрипта осуществляется следующей командной строкой, все пути естественно нужно поменять на свои.

C:\Program Files\WinSCP\WinSCP.exe /console /script=C:\Script\scp_sync.txt

Вставляем эту строчку в Пуск => Выполнить и проверяем, что всё отработало нормально. Если что-то пошло не так, комментируем или удаляем пункт exit в скрипте, и смотрим какая ошибка выдаётся. Для ведения подробного лога в конце командной строки нужно добавить /log=C:\Script\scp_sync.log

Выполнять его по расписанию можно при помощи обычного планировщика Windows. Приведу порядок действий в Windows 7. Запускаем Планировщик: Панель управления => Система и безопасность => Администрирование => Планировщик заданий , можно несколько проще Пуск => Выполнить => Taskschd.msc

Выбираем пункт меню Действие => Создать программу , на вкладке Общие задаём её произвольное имя. Переходим на вкладку Действия , нажимаем Создать . По кнопке Обзор находим WinSCP.exe , в поле Добавить аргументы вводим /console /script=C:\Script\scp_sync.txt

На вкладке Триггеры нажимаем Создать и настраиваем время запуска. Поскольку у меня компьютер практически не выключается, устанавливаю Ежедневно, в 4:00

Единственный недостаток WinSCP по сравнению с некоторым платными прогами - то что она не умеет скачивать файлы в несколько потоков. В остальном это отличный бесплатный вариант.