Вход на сайт
синхронизация папок на серверах
485
11.04.09 00:00
Собственно, такое дело. Есть два сайта - должны быть зеркалами, находятся на разных серверах - не на своих, на хостингах- нужно сделать автоматическую синхронизацию в обе стороны. Сначала расскажу, как сделал.
Есть программа под винду, собственно, она конечно не одна, ну да не важно, в принципе, с задачей справляется, расписание настраивается через назначенные задания, все работает, один самый главный недостаток: приходится держать копии необходимых для синхр-ции папок на локальном компьютере, под виндой.
Ессно, мне тут же рассказали, что все это называется "через ж..у", и таким образом я узнал про такую замечательную весчь, как Rsync.
Все было бы просто замечательно,как я понял, осталось бы только написать пару скриптов и прописать их в кроне, но проблема в том, что на одном сервере есть ssh-доступ, а на другом нет и не предвидится, только ftp. Таким образом, засада..Тыкнулся я туда-сюда, посмотрел в сторону sshfs и curlftpfs -думал, на том сервере,где есть ssh, примонтировать папки другого сервера, где только ftp - однако, мне под юзером этого сделать не дают....что делать дальше, мыслей пока нет...вернее, можно,конечно, пустить это дело через локальную машину, под убунту, где у меня есть ессно рутовые права, и где я папки на обеих серверах могу примонтировать - но этот вариант не очень сильно будет отличаться от того, что есть сейчас - синхронизация будет идти через третью машину, там под виндой, а тут под Линуксом...ну кроме разве что опыта в деле линукса...В общем,у кого еще есть какие мысли, буду рад... есть у меня мысль,поменять тут хостера и взять с ssh, я тут в соседнем разделе тему поднимал эту. Но это пока еще решится....
Да, и вот еще какой вопрос, по ходу. Не могу понять, если все же с ssh что то получается, как автоматизировать подключение по ssh,чтобы скрипт исполнялся без требования ввода пароля?
Например, в случае с фтп этой проблемы нет- я пишу, например, curlftpfs user:pass@site.com /media/ftp - и подключаюсь автоматом.
В случае с ssh такое не катит, надо вводить пароль, ну или, как я выяснил, можно сгенерировать ключи и отослать их на сервер..но опять же, где у них там авторизированные ключи лежат, и кто мне даст мои ключи туда прописать? Или это надо связываться с админом сервера и просить об этом? Или не стоит даже пытаться?
Есть программа под винду, собственно, она конечно не одна, ну да не важно, в принципе, с задачей справляется, расписание настраивается через назначенные задания, все работает, один самый главный недостаток: приходится держать копии необходимых для синхр-ции папок на локальном компьютере, под виндой.
Ессно, мне тут же рассказали, что все это называется "через ж..у", и таким образом я узнал про такую замечательную весчь, как Rsync.
Все было бы просто замечательно,как я понял, осталось бы только написать пару скриптов и прописать их в кроне, но проблема в том, что на одном сервере есть ssh-доступ, а на другом нет и не предвидится, только ftp. Таким образом, засада..Тыкнулся я туда-сюда, посмотрел в сторону sshfs и curlftpfs -думал, на том сервере,где есть ssh, примонтировать папки другого сервера, где только ftp - однако, мне под юзером этого сделать не дают....что делать дальше, мыслей пока нет...вернее, можно,конечно, пустить это дело через локальную машину, под убунту, где у меня есть ессно рутовые права, и где я папки на обеих серверах могу примонтировать - но этот вариант не очень сильно будет отличаться от того, что есть сейчас - синхронизация будет идти через третью машину, там под виндой, а тут под Линуксом...ну кроме разве что опыта в деле линукса...В общем,у кого еще есть какие мысли, буду рад... есть у меня мысль,поменять тут хостера и взять с ssh, я тут в соседнем разделе тему поднимал эту. Но это пока еще решится....
Да, и вот еще какой вопрос, по ходу. Не могу понять, если все же с ssh что то получается, как автоматизировать подключение по ssh,чтобы скрипт исполнялся без требования ввода пароля?
Например, в случае с фтп этой проблемы нет- я пишу, например, curlftpfs user:pass@site.com /media/ftp - и подключаюсь автоматом.
В случае с ssh такое не катит, надо вводить пароль, ну или, как я выяснил, можно сгенерировать ключи и отослать их на сервер..но опять же, где у них там авторизированные ключи лежат, и кто мне даст мои ключи туда прописать? Или это надо связываться с админом сервера и просить об этом? Или не стоит даже пытаться?
NEW 12.04.09 11:44
в ответ alexnaum 11.04.09 00:00
а есть ли возможность поднять ssh сервер на той машине, на которой его нет? не с рутовскими правами, конечно (поэтому ограничение, что порт должен быть больше 1024, на стандартном двадцать втором повесить не получится). какой-нить легковесомый dropbear, чтобы не заморачиваться с openssh.
NEW 15.04.09 00:39
в ответ BSDLamer 14.04.09 16:59
Синхронизирую изменяющиеся папки на сайтах, порядка 4-5 папок, в основном это фотки - в галерее, форуме,аватары там после регистрации..объем так щас сразу точно не скажу..ну там полюбому пока не много - весь сайт около 300 метров, добавляется пока в принципе медленно - по 10 в неделю где то..Да, вроде тоже я так понял, что для rsync хватает одного ssh-сервера и одного клиента. Но - права там у меня там ограничены - рутовых нет, равно как и возможности заюзать sudo или добавить добавить себя в группу fuse...а на втором сервере только ftp..В принципе ладно...если вариантов особых нет, я тут щас у себя локально поднял сервак под фряхой виртуальной, как раз эти дни занимаюсь,чисто для опыта и личного удовольствия, вчера добился того,
чтобы все это дело сделать видимым извне под DynDNS...вроде получается все..понимаю, что большого реального смысла это не имеет, но, опять же, для личного опыта и некоторого кайфа, думаю, сделаю пока и третье зеркало - которое вот там на своей машине и буду держать...в этом варианте у меня есть все права, а когда надоест, надеюсь, переедем уже на другой хостинг, где есть ssh...
NEW 30.04.09 10:57
в ответ anatoli888 20.04.09 12:02
reoback
Почитал, но пока не совсем понял. Если для того, чтобы чтобы backup между двумя серверами проходил по ftp, мне надо как минимум на один сервер установить reoback, то у меня кайне шанс..Если - опять же - проводить посредством своей машины, то есть ли какое - то преимущество перед тем же rsync например? По rsync эти дни читал очень много, и тестил, тестил...
Появились вопросы по нему.
Хотел я было всю эту свою систему связать воедино, таким образом:
итак, на одном сайте есть ssh, на втором только ftp...как выяснилось, и rsync-а там нет. Ну ладно, на локальной своей машине установил rsync, изучил кучу инфы и начал тестить. думал, свяжусь с одним сайтом по ssh, либо примонтирую с помощью sshfs, с другим - примонтировав с помощью curlftpfs..таким образом, все что мне нужно будет у меня как бы в одной системе, ну и буду их синхронизировать постепенно..
Но не все так просто оказалось.
В любом случае, синхронизация при таком способе подключения к удаленным серверам выполняется с ошибками, как с sshfs, так и с curlftpfs
Ошибки в основном говорят о запрете доступа, не тех правах, а иногда и о разрыве коннекта. Например:
или
и еще
Ну вот, самое интересное, что если это все делать напрямую, без предварительного монтирования с sshfs или curlftpfs все выполняется без ошибок..Думал, может какие аргументы нужны хитрые, но я в случае как прямом так и через костыль прописываю одинаковые опции...
Собственно, меня бы устроило прямое копирование через ssh, если бы на втором сервере была бы такая возможность.. да и потом, мне показалась возможность сделать все через curlftpfs уж очень заманчивым: можно монтировать автоматом без ввода пароля - в случае с ssh как я понял, такое возможно только после авторизации ключей, а авторизировать их мне надо на удаленном сервере...а у меня там прав нету..
В общем,чешу репу, может вы что подскажете...
Почитал, но пока не совсем понял. Если для того, чтобы чтобы backup между двумя серверами проходил по ftp, мне надо как минимум на один сервер установить reoback, то у меня кайне шанс..Если - опять же - проводить посредством своей машины, то есть ли какое - то преимущество перед тем же rsync например? По rsync эти дни читал очень много, и тестил, тестил...
Появились вопросы по нему.
Хотел я было всю эту свою систему связать воедино, таким образом:
итак, на одном сайте есть ssh, на втором только ftp...как выяснилось, и rsync-а там нет. Ну ладно, на локальной своей машине установил rsync, изучил кучу инфы и начал тестить. думал, свяжусь с одним сайтом по ssh, либо примонтирую с помощью sshfs, с другим - примонтировав с помощью curlftpfs..таким образом, все что мне нужно будет у меня как бы в одной системе, ну и буду их синхронизировать постепенно..
Но не все так просто оказалось.
В любом случае, синхронизация при таком способе подключения к удаленным серверам выполняется с ошибками, как с sshfs, так и с curlftpfs
Ошибки в основном говорят о запрете доступа, не тех правах, а иногда и о разрыве коннекта. Например:
В ответ на:
rsync: rename "/media/sshfs/data/111/222/.Codir_1251.txt.qZUHFn" -> "Codir_1251.txt": Operation not permitted (1)
sent 293 bytes received 31 bytes 72.00 bytes/sec
total size is 542280 speedup is 1673.70
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1040) [sender=3.0.5]
rsync: rename "/media/sshfs/data/111/222/.Codir_1251.txt.qZUHFn" -> "Codir_1251.txt": Operation not permitted (1)
sent 293 bytes received 31 bytes 72.00 bytes/sec
total size is 542280 speedup is 1673.70
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1040) [sender=3.0.5]
или
В ответ на:
rsync: chown "/media/sshfs/data/111/222/." failed: Permission denied (13)
rsync: chown "/media/sshfs/data/111/222/10f89rp.jpg" failed: Permission denied (13)
rsync: chown "/media/sshfs/data/111/222/2nltymt.jpg" failed: Permission denied (13)
rsync: chown "/media/sshfs/data/111/222/3467580103_e25a8a1016_o.jpg" failed: Permission denied (13)
rsync: chown "/media/sshfs/data/111/222/8mart.gif" failed: Permission denied (13)
rsync: chown "/media/sshfs/data/111/222/Addons.JPG" failed: Permission denied (13)
rsync: chown "/media/sshfs/data/111/222/." failed: Permission denied (13)
rsync: chown "/media/sshfs/data/111/222/10f89rp.jpg" failed: Permission denied (13)
rsync: chown "/media/sshfs/data/111/222/2nltymt.jpg" failed: Permission denied (13)
rsync: chown "/media/sshfs/data/111/222/3467580103_e25a8a1016_o.jpg" failed: Permission denied (13)
rsync: chown "/media/sshfs/data/111/222/8mart.gif" failed: Permission denied (13)
rsync: chown "/media/sshfs/data/111/222/Addons.JPG" failed: Permission denied (13)
и еще
В ответ на:
rsync: recv_generator: failed to stat "/media/ftp/data/111/222/8mart.gif": Socket is not connected (57)
rsync: recv_generator: failed to stat "/media/ftp/data/111/222/Addons.JPG": Socket is not connected (57)
rsync: recv_generator: failed to stat "/media/ftp/data/111/222/Codir_1251.txt": Socket is not connected (57)
rsync: recv_generator: failed to stat "/media/ftp/data/111/222/8mart.gif": Socket is not connected (57)
rsync: recv_generator: failed to stat "/media/ftp/data/111/222/Addons.JPG": Socket is not connected (57)
rsync: recv_generator: failed to stat "/media/ftp/data/111/222/Codir_1251.txt": Socket is not connected (57)
Ну вот, самое интересное, что если это все делать напрямую, без предварительного монтирования с sshfs или curlftpfs все выполняется без ошибок..Думал, может какие аргументы нужны хитрые, но я в случае как прямом так и через костыль прописываю одинаковые опции...
Собственно, меня бы устроило прямое копирование через ssh, если бы на втором сервере была бы такая возможность.. да и потом, мне показалась возможность сделать все через curlftpfs уж очень заманчивым: можно монтировать автоматом без ввода пароля - в случае с ssh как я понял, такое возможно только после авторизации ключей, а авторизировать их мне надо на удаленном сервере...а у меня там прав нету..
В общем,чешу репу, может вы что подскажете...