Синхронизация FTP и локальной директории (Какую утилитой воспользоваться для синхронизации по FTP)

Модератор: /dev/random

Какой решение самое лучшее на Ваш взгляд?

curlftpfs
0
Голосов нет
lftp
0
Голосов нет
ftpcopy
0
Голосов нет
ncftp
0
Голосов нет
ftpgrab
0
Голосов нет
weex
0
Голосов нет
sitecopy
0
Голосов нет
curl
0
Голосов нет
wget
0
Голосов нет
axel
0
Голосов нет
aria
0
Голосов нет
git
0
Голосов нет
mercurial
0
Голосов нет
tortoishg
0
Голосов нет
rocket
0
Голосов нет
docker
0
Голосов нет
rsync
0
Голосов нет
unison
0
Голосов нет
ftpsync
0
Голосов нет
ftpmirror
0
Голосов нет
mirror
0
Голосов нет
mirrordir
0
Голосов нет
csync2
0
Голосов нет
gigolo
0
Голосов нет
inotify, inotifywait
0
Голосов нет
wather.py
0
Голосов нет
sublaintext2
0
Голосов нет
 
Всего голосов: 0

Аватара пользователя
tonchikp
Сообщения: 15
ОС: Linux

Синхронизация FTP и локальной директории

Сообщение tonchikp »

Уважаемые форумчане! Требуется ваша помощь!

Работаю с кодом сайта, задача - чтобы мой код оказался на хостинге..
Желательно чтобы закачивались только изменения, а не весь сайт-проект и это делалось автоматически..
Ищу самый удобный, безопасный, быстрый, лёгкий вариант, но стараюсь рассмотреть любые варианты..

В наличии:
  • Linux (неизменно)
  • Bash (неизменно)
  • Редактор кода (сейчас Geany, но можно предложить свой вариант №1)
  • Бесплатный тариф хостинга (сейчас Hostinger.ru, можно предложить свой вариант №2)
  • Хостинг предоставляет только FTP, Curl и Curl SSL (не знаю как это может пригодиться №3)
  • FTP-транспорт (сейчас FileZilla, нужен консольный вариант c примером кода по его использованию №4)


Собранные мной варианты/советы, в том числе и с других форумов далее..
Spoiler

Группа решений A (монтирование):
  • CURLFTPFS №5
    curlftpfs -v -- ${server}/ .;


Группа решений B (простая закачка в одну сторону):
  • LFTP №6
    lftp -e "mirror -pvvv /; bye" -- ${server};
  • FTPCOPY №7
    ftpcopy -nl3 -u ${user} -p ${pass} -- ${server} /;
  • NCFTP №8


Группа решений C (с созданием RC-файла):
  • FTPGRAB №9
    ftpgrab -v;
  • WEEX №10
    weex -- ${label};
  • SITECOPY №11
    sitecopy --init ${label}; sitecopy --fetch ${label}; sitecopy --synch ${label};


Группа решений D (скачивание с сервера, не совсем подходящее для моей задачи):
  • CURL №12
  • WGET №13
    wget -vm -- ftp://${server};
  • AXEL №14
  • ARIA №15


Группа решений E (VCS, сложноваты мне кажется для решения задачи):
  • GIT №16
  • MERCURIAL №17
  • TORTOISHG №18


Группа решений F (контейнеры, сложноваты мне кажется для решения задачи):
  • ROCKET №19
  • DOCKER №20


Группа решений H (не работают с FTP):
  • RSYNC №21
  • UNISON №22


Группа решений I (другое, не пробовал ещё):
  • FTPSYNC №23
  • FTPMIRROR №24
  • MIRROR №25
  • MIRRORDIR №26
  • CSYNC2 №27
  • GIGOLO №28
  • INOTIFYWAIT №29
  • WATHER.PY №30
  • SUBLAINTEXT2 №31

Изучаю Python3. Добавляйтесь в друзья: tonchikp@jabberon.net
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 5102
ОС: Gentoo

Re: Синхронизация FTP и локальной директории

Сообщение /dev/random »

tonchikp писал(а):
18.06.2015 17:00
Хотелось бы двусторонней синхронизации со сжатием и проверкой хэшей (как RSYNC), ...

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

Аватара пользователя
tonchikp
Сообщения: 15
ОС: Linux

Re: Синхронизация FTP и локальной директории

Сообщение tonchikp »

/dev/random писал(а):
18.06.2015 17:21
tonchikp писал(а):
18.06.2015 17:00
Хотелось бы двусторонней синхронизации со сжатием и проверкой хэшей (как RSYNC), ...

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

Хорошо, пусть будет без сжатия и проверки хешей, какое есть решение данной проблемы?
Изучаю Python3. Добавляйтесь в друзья: tonchikp@jabberon.net
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18483
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Синхронизация FTP и локальной директории

Сообщение Bizdelnick »

http://www.manyfish.co.uk/sitecopy/
http://weex.sourceforge.net/
Хотя я бы заплатил за нормальный хостинг и использовал rsync.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 5102
ОС: Gentoo

Re: Синхронизация FTP и локальной директории

Сообщение /dev/random »

tonchikp писал(а):
19.06.2015 20:45
Хорошо, пусть будет без сжатия и проверки хешей, какое есть решение данной проблемы?

Если здесь:
tonchikp писал(а):
18.06.2015 17:00
Работаю над сайтом в Linux и в связи с этим задача в синхронизации локальной директории с FTP-директорией..
вы имели в виду копирование _в_ локальную директорию _из_ ftp, то всё равно, чем пользоваться, выбранный вами lftp будет не лучше и не хуже других.

Если же наоборот, то можно поработать над этим:
tonchikp писал(а):
18.06.2015 17:00
Хотелось бы чтобы автоматически синхронизация начиналась при изменении файла

Я не знаю синхронизаторов, которые бы умели это "из коробки", но можете попробовать объединить что-то вроде вашего lftp с inotifywait. Например, так:

inotifywait -mr -e modify -e attrib -e close_write -e move -e create -e delete -e delete_self ~/локальный/путь | xargs -i -P2 flock -n /tmp/my.lock -c "команда синхронизации"

Учтите, что эта строка может проигнорировать изменения, сделанные, пока идёт синхронизация, поэтому имеет смысл заставить команду синхронизации повторяться снова и снова, пока не окажется, что в очередной раз не пришлось передавать ничего. Команда mirror из lftp принимает для этого опцию --loop.
Спасибо сказали:

Аватара пользователя
tonchikp
Сообщения: 15
ОС: Linux

Re: Синхронизация FTP и локальной директории

Сообщение tonchikp »

/dev/random писал(а):
20.06.2015 07:03
Я не знаю синхронизаторов, которые бы умели это "из коробки", но можете попробовать объединить что-то вроде вашего lftp с inotifywait. Например, так:

inotifywait -mr -e modify -e attrib -e close_write -e move -e create -e delete -e delete_self ~/локальный/путь | xargs -i -P2 flock -n /tmp/my.lock -c "команда синхронизации"

Учтите, что эта строка может проигнорировать изменения, сделанные, пока идёт синхронизация, поэтому имеет смысл заставить команду синхронизации повторяться снова и снова, пока не окажется, что в очередной раз не пришлось передавать ничего. Команда mirror из lftp принимает для этого опцию --loop.

Огромное спасибо вдвойне, особенно за пример с кодом, буду разбираться..
Изучаю Python3. Добавляйтесь в друзья: tonchikp@jabberon.net
Спасибо сказали: