* [sisyphus] специфика wget
@ 2004-12-24 10:02 Vladimir
2004-12-24 10:08 ` Dmitry V. Levin
0 siblings, 1 reply; 9+ messages in thread
From: Vladimir @ 2004-12-24 10:02 UTC (permalink / raw)
To: sisyphus
Привет всем.
Так как в rsync после 2.6.2 несколько изменилось поведение ключей,
для удаленной синхронизации стал больше внимания уделять wget.
При этом были замечены странности, по которым хотелось бы
услышать отклики специалистов.
Почему то в файле .listing, полученном с разных ftp в одном случае
используется "возврат каретки, перевод строки", в другом только
"перевод строки". Первый вариант, например, с сайта ftp.altlinux.ru,
второй, например, с ftp.kaspersky.com (там несколько серверов и
иногода получается первый вариант). Конечно, это не проблема
и в sh сценарии можно прогнать .listing через "фильтр-нормализатор".
Вместе с тем вопрос. Почему это не делает сам wget?
Владимир
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] специфика wget
2004-12-24 10:02 [sisyphus] специфика wget Vladimir
@ 2004-12-24 10:08 ` Dmitry V. Levin
2004-12-24 11:58 ` Vladimir
0 siblings, 1 reply; 9+ messages in thread
From: Dmitry V. Levin @ 2004-12-24 10:08 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list
[-- Attachment #1: Type: text/plain, Size: 299 bytes --]
Hi,
On Fri, Dec 24, 2004 at 01:02:04PM +0300, Vladimir wrote:
> Так как в rsync после 2.6.2 несколько изменилось поведение ключей,
Что именно в поведении rsync вас беспокоит?
> для удаленной синхронизации стал больше внимания уделять wget.
Небезопасная это штука - wget.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] специфика wget
2004-12-24 10:08 ` Dmitry V. Levin
@ 2004-12-24 11:58 ` Vladimir
2004-12-24 12:51 ` Ivan Fedorov
2004-12-25 17:13 ` [sisyphus] использование rsync Dmitry V. Levin
0 siblings, 2 replies; 9+ messages in thread
From: Vladimir @ 2004-12-24 11:58 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
Dmitry V. Levin пишет:
>Hi,
>
>On Fri, Dec 24, 2004 at 01:02:04PM +0300, Vladimir wrote:
>
>
>>Так как в rsync после 2.6.2 несколько изменилось поведение ключей,
>>
>>
>
>Что именно в поведении rsync вас беспокоит?
>
>
>
У меня синхронизация репозитория настроена примерно так.
Имеются вспомогательный каталог для синхронизации и каталог рабочий.
В "установившемся" состоянии в рабочем каталоге лежат реальные
файлы, а в дополнительном - symlinks на них.
Раньше, при синхронизации, rsync удалял устаревшие ссылки и загружал новые
файлы. После этого у новых файлов проверялись md5sum и gpg sign.
Если все OK, то файлы перемещались в "рабочий" репозиторий, замещаясь
ссылками на них. Если нет, то перемещались в "карантин".
Дополнительно, из рабочего каталога во временную "корзину" уходили
файлы с удаленными ссылками. Это же "ядро" хорошо работает и с
off-line синхронизацией от CD срезов Sysiphus.
Теперь rsync воспринимает гибкую ссылку в dest каталоге как "неправильный"
файл. Т.е. удаляет все гибкие ссылки, на какие бы файлы они не указывали и
выполняет синхронизацию "с нуля".
Ключи в команде для синхронизации выглядят так:
rsync -avz --delete --progress --copy-links
rsync.altlinux.org::ALTLinux/updates/Master/2.4/i586/RPMS.updates/
${LOCAL_PATH}
и работает по разному в версии 2.6.2 и 2.6.3
В списке изменений для версии 2.6.3 написано об исправлении ошибки для
ключа --copy-links и
появлении нового ключа --keep-dirlinks. Но это не совсем то (нужно что
то типа --keep-symlinks).
Попытка подобрать другие ключи для получения старого результата не удалась.
Владимир
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] специфика wget
2004-12-24 11:58 ` Vladimir
@ 2004-12-24 12:51 ` Ivan Fedorov
2004-12-24 14:19 ` Vladimir
2004-12-25 17:13 ` [sisyphus] использование rsync Dmitry V. Levin
1 sibling, 1 reply; 9+ messages in thread
From: Ivan Fedorov @ 2004-12-24 12:51 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
[-- Attachment #1: Type: text/plain, Size: 1563 bytes --]
Vladimir пишет:
> У меня синхронизация репозитория настроена примерно так.
>
> Имеются вспомогательный каталог для синхронизации и каталог рабочий.
> В "установившемся" состоянии в рабочем каталоге лежат реальные
> файлы, а в дополнительном - symlinks на них.
>
> Раньше, при синхронизации, rsync удалял устаревшие ссылки и загружал новые
> файлы. После этого у новых файлов проверялись md5sum и gpg sign.
> Если все OK, то файлы перемещались в "рабочий" репозиторий, замещаясь
> ссылками на них. Если нет, то перемещались в "карантин".
>
> Дополнительно, из рабочего каталога во временную "корзину" уходили
> файлы с удаленными ссылками. Это же "ядро" хорошо работает и с
> off-line синхронизацией от CD срезов Sysiphus.
>
> Теперь rsync воспринимает гибкую ссылку в dest каталоге как "неправильный"
> файл. Т.е. удаляет все гибкие ссылки, на какие бы файлы они не указывали и
> выполняет синхронизацию "с нуля".
>
> Ключи в команде для синхронизации выглядят так:
>
> rsync -avz --delete --progress --copy-links
> rsync.altlinux.org::ALTLinux/updates/Master/2.4/i586/RPMS.updates/
> ${LOCAL_PATH}
>
> и работает по разному в версии 2.6.2 и 2.6.3
> В списке изменений для версии 2.6.3 написано об исправлении ошибки для
> ключа --copy-links и
> появлении нового ключа --keep-dirlinks. Но это не совсем то (нужно что
> то типа --keep-symlinks).
> Попытка подобрать другие ключи для получения старого результата не удалась.
Ну во первых прочтите man rsync ПОЛНОСТЬЮ.
А во вторых, лучше научитесь пользоваться --link-dest - куда более
правильный вариант.
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] специфика wget
2004-12-24 12:51 ` Ivan Fedorov
@ 2004-12-24 14:19 ` Vladimir
2004-12-25 8:28 ` Ivan Fedorov
0 siblings, 1 reply; 9+ messages in thread
From: Vladimir @ 2004-12-24 14:19 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
Ivan Fedorov пишет:
>>Ключи в команде для синхронизации выглядят так:
>>
>>rsync -avz --delete --progress --copy-links
>>rsync.altlinux.org::ALTLinux/updates/Master/2.4/i586/RPMS.updates/
>>${LOCAL_PATH}
>>
>>и работает по разному в версии 2.6.2 и 2.6.3
>>В списке изменений для версии 2.6.3 написано об исправлении ошибки для
>>ключа --copy-links и
>>появлении нового ключа --keep-dirlinks. Но это не совсем то (нужно что
>>то типа --keep-symlinks).
>>Попытка подобрать другие ключи для получения старого результата не удалась.
>>
>>
>
>Ну во первых прочтите man rsync ПОЛНОСТЬЮ.
>
>А во вторых, лучше научитесь пользоваться --link-dest - куда более
>правильный вариант.
>
>
--link-dest=DIR Не то.
Мне нужно, чтобы увидив в dest каталоге symlink, rsync сравнивал удаленный
файл не с самой гибкой ссылкой, а с файлом на который она указывает.
Старый rsync так и делал, с новым не получается.
Владимир
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] использование rsync
2004-12-24 11:58 ` Vladimir
2004-12-24 12:51 ` Ivan Fedorov
@ 2004-12-25 17:13 ` Dmitry V. Levin
2004-12-27 7:03 ` Ivan Fedorov
2004-12-27 9:10 ` fmfm
1 sibling, 2 replies; 9+ messages in thread
From: Dmitry V. Levin @ 2004-12-25 17:13 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
[-- Attachment #1: Type: text/plain, Size: 1613 bytes --]
Hi,
On Fri, Dec 24, 2004 at 02:58:27PM +0300, Vladimir wrote:
> Dmitry V. Levin пишет:
> >On Fri, Dec 24, 2004 at 01:02:04PM +0300, Vladimir wrote:
> >
> >>Так как в rsync после 2.6.2 несколько изменилось поведение ключей,
> >
> >Что именно в поведении rsync вас беспокоит?
>
> У меня синхронизация репозитория настроена примерно так.
>
> Имеются вспомогательный каталог для синхронизации и каталог рабочий.
> В "установившемся" состоянии в рабочем каталоге лежат реальные
> файлы, а в дополнительном - symlinks на них.
>
> Раньше, при синхронизации, rsync удалял устаревшие ссылки и загружал новые
> файлы. После этого у новых файлов проверялись md5sum и gpg sign.
> Если все OK, то файлы перемещались в "рабочий" репозиторий, замещаясь
> ссылками на них. Если нет, то перемещались в "карантин".
>
> Дополнительно, из рабочего каталога во временную "корзину" уходили
> файлы с удаленными ссылками. Это же "ядро" хорошо работает и с
> off-line синхронизацией от CD срезов Sysiphus.
Немного другую схему, реализующую описанную выше задачу, можно посмотреть
на следующем примере:
1. создаём модель:
$ mkdir src dst backup
$ touch src/same src/new dst/old
$ cp -a src/same dst/
$ echo src >src/changed
$ echo dest >dst/changed
2. готовим каталог для синхронизации:
$ cp -al dst new
3. закачиваем:
$ rsync -rt src/ new/ --partial --delete-after --backup --backup-dir=$PWD/backup
4. анализируем результат:
$ find backup -type f
backup/changed
backup/old
$ find new -type f -links 1
new/changed
new/new
$ find new -type f -not -links 1
new/same
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] использование rsync
2004-12-25 17:13 ` [sisyphus] использование rsync Dmitry V. Levin
@ 2004-12-27 7:03 ` Ivan Fedorov
2004-12-27 9:10 ` fmfm
1 sibling, 0 replies; 9+ messages in thread
From: Ivan Fedorov @ 2004-12-27 7:03 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
[-- Attachment #1: Type: text/plain, Size: 944 bytes --]
Dmitry V. Levin пишет:
>>Дополнительно, из рабочего каталога во временную "корзину" уходили
>>файлы с удаленными ссылками. Это же "ядро" хорошо работает и с
>>off-line синхронизацией от CD срезов Sysiphus.
>
>
> Немного другую схему, реализующую описанную выше задачу, можно посмотреть
> на следующем примере:
>
> 1. создаём модель:
> $ mkdir src dst backup
> $ touch src/same src/new dst/old
> $ cp -a src/same dst/
> $ echo src >src/changed
> $ echo dest >dst/changed
>
> 2. готовим каталог для синхронизации:
> $ cp -al dst new
>
> 3. закачиваем:
> $ rsync -rt src/ new/ --partial --delete-after --backup --backup-dir=$PWD/backup
IMHO лучше 2 и 3 объеденить, используя ключ --link-dest у rsync.
Результат тот же, но немного быстрее, и за 1 проход...
>
> 4. анализируем результат:
> $ find backup -type f
> backup/changed
> backup/old
> $ find new -type f -links 1
> new/changed
> new/new
> $ find new -type f -not -links 1
> new/same
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] использование rsync
2004-12-25 17:13 ` [sisyphus] использование rsync Dmitry V. Levin
2004-12-27 7:03 ` Ivan Fedorov
@ 2004-12-27 9:10 ` fmfm
1 sibling, 0 replies; 9+ messages in thread
From: fmfm @ 2004-12-27 9:10 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
Dmitry V. Levin пишет:
>>У меня синхронизация репозитория настроена примерно так.
>>
>>Имеются вспомогательный каталог для синхронизации и каталог рабочий.
>>В "установившемся" состоянии в рабочем каталоге лежат реальные
>>файлы, а в дополнительном - symlinks на них.
>>
>>Раньше, при синхронизации, rsync удалял устаревшие ссылки и загружал новые
>>файлы. После этого у новых файлов проверялись md5sum и gpg sign.
>>Если все OK, то файлы перемещались в "рабочий" репозиторий, замещаясь
>>ссылками на них. Если нет, то перемещались в "карантин".
>>
>>Дополнительно, из рабочего каталога во временную "корзину" уходили
>>файлы с удаленными ссылками. Это же "ядро" хорошо работает и с
>>off-line синхронизацией от CD срезов Sysiphus.
>>
>>
>
>Немного другую схему, реализующую описанную выше задачу, можно посмотреть
>на следующем примере:
>
>1. создаём модель:
>$ mkdir src dst backup
>$ touch src/same src/new dst/old
>$ cp -a src/same dst/
>$ echo src >src/changed
>$ echo dest >dst/changed
>
>2. готовим каталог для синхронизации:
>$ cp -al dst new
>
>3. закачиваем:
>$ rsync -rt src/ new/ --partial --delete-after --backup --backup-dir=$PWD/backup
>
>4. анализируем результат:
>$ find backup -type f
>backup/changed
>backup/old
>$ find new -type f -links 1
>new/changed
>new/new
>$ find new -type f -not -links 1
>new/same
>
>
>
Прошу прощения за длительный off-line
Когда то этот код у меня работал с hardlink. Потом выяснилось, что это
решение не может считаться универсальным и вот почему.
Например, может быть несколько "рабочих" репозиториев с общими пакетами,
которые являются hardlink. В этом случае выяснение вопроса
"сколько hardlinks у пакета" без дополнительных уточнений
не содержит всей необходимой информации.
SymLinks, напротив, хорошо изолируют "рабочую" область от "загрузочной"
при
минимальных требованиях к дисковому пространству.
Еще одна причина "неуниверсальности" hardlinks в следующем. С symlinks
становится удобной
загрузка вручную. Т.е. можно в mc удалить устаревшие ссылки и копировать
новые
пакеты в "загрузочной" области. Текущий промежуточный результат в mc виден
"невооруженным" глазом. Когда все сделано, выполняется загрузочный сценарий
(или наоборот, rollback).
Изоляция областей - предпосылка для модульности кода. Например, код для
off-line
импорта со сменных CD процентов на 70 использует код для on-line
синхронизации
по сети. Как дополнение. Чтобы добавить возможность синхронизации на wget
мне потребовалось дописать и протестировать только одну функцию (и добавить
пункт в меню).
Таким образом, неизменяемое --resolv-dst-symlinks=off в rsync это потеря
функциональности.
Владимир
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2004-12-27 9:10 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-24 10:02 [sisyphus] специфика wget Vladimir
2004-12-24 10:08 ` Dmitry V. Levin
2004-12-24 11:58 ` Vladimir
2004-12-24 12:51 ` Ivan Fedorov
2004-12-24 14:19 ` Vladimir
2004-12-25 8:28 ` Ivan Fedorov
2004-12-25 17:13 ` [sisyphus] использование rsync Dmitry V. Levin
2004-12-27 7:03 ` Ivan Fedorov
2004-12-27 9:10 ` fmfm
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git