LinuxForum.Fans
Тема

Человечески ftp mirror из командной строки есть?

Автор: n0mad 6 сообщений 2980 просмотров
#123419

здравствуй многоуважаемый Олл.
Озадачился <тут было матерное слово, но по контексту подходит "веб"> дизайном, и тут-же огреб проблему.

Знаю 2 зеркальщика: lftp и mirrordir но оба не катят.

Надо чтобы зеркалились только изменившиеся/новые файлы
и при зерклении не менялись права подкаталогов.

lftp: Все замечательно, но при закачке файлов зачем-то меняет права
на подкаталоги и подкаталог имевший права 777 вдруг становится 755
и соответственно php скрипт туда уже файлы не может писать, ибо он работает
от apache а подкаталог делается через ftp и владелец подкаталога юзер.

mirrordir: Замечательно гоняет и вверх и вниз, но если файлы за промежуток
времени изменились и локально и удаленно (одни локально, другие удаленно)
то получим в месте назначения перезапись более новых файлов более старыми
и в лучаекогда я скажем поправил какие-то .php,.html файлы а на сервере обновились логи
воникают ножницы... если зеркалить с сервера то новые файлы .php затрутся старыми
а логи обновятся, если наоборот то обновятся на сервере .php файлы а логам будет труба.

Кто чего посоветует?

#124085
Vadimsky написал:
rsync
не?

Не, не катит потому как фрихостер.

#124336

не понял, у хостера хостинг на винде?

#124377
n0mad написал:
[quote=Vadimsky]rsync
не?

Не, не катит потому как фрихостер.[/quote]

Я так понял что есть доступ только по FTP? Если ssh доступа нет, потому наверно rsync и в правду не покатит. только если в связке, но думаю конструкция получится хлипкая.

По mirrordir не пользовался, но практически уверен что можно натроить исключения на папку с логами при обновлении из локальной копии
Погуглил нашел топик в котором описано:

text
mirrordir [--exclude-from file] control mirror
control - "эталонный" каталог
mirror - обновляемый каталог
file - файл со списком исключений

в мане расписано все, с примерами.

Посмотрите еще http://www.csync.org может подойдет.

P.S.
"права 777" это кстати нехорошо...

#124539
n0mad написал:
lftp: Все замечательно, но при закачке файлов зачем-то меняет права
на подкаталоги и подкаталог имевший права 777 вдруг становится 755
и соответственно php скрипт туда уже файлы не может писать, ибо он работает
от apache а подкаталог делается через ftp и владелец подкаталога юзер.

любой файл созданный в Linux подчиняется правилу umask, в правах СБРАСЫВАЮТСЯ биты, которые установленны в этой umask, а т.к. umask 0022, то неудивительно, что 0777 & ~0022 = 0755. И это кошерно с т.з. безопасности.

если открыть

man lftp написал:
-p, --no-perms don't set file permissions
--no-umask don't apply umask to file modes

то становится очевидно решение --no-umask не накладывает на файлы данную маску. Но это опасно. Впрочем - делайте что хотите, ваш хостинг.

Войдите или зарегистрируйтесь, чтобы ответить.