|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene B. Berdnikov 2:5020/400 17 Jan 2005 17:03:07 To : Igor Nikolaev Subject : Re: ftpmirror vs mirrordir -------------------------------------------------------------------------------- Igor Nikolaev <Igor.Nikolaev@f266.n5030.z2.fidonet.org> wrote: IN> Eugene B. Berdnikov <berd@desert.ihep.su> wrote: >> IN> К примеру я не понял, какие у lftp коды завершения, >> exit will exit from lftp or move to background if jobs are active. >> If no jobs are active, code is passed to operating system as lftp's >> termination status. If code is omitted, the exit code of last command >> is used. IN> IN> Что замечательня команда exit делает кроме того что ничего IN> не делает я понимаю. Только вот где собственно список этих IN> самых "termination status"? Хм, а зачем? Очень надо отделить ETIMEDOUT от EPIPE? Hу тогда, наверное, совершенно другой инструмент надо искать. А так всё более-менее понятно на уровне детализации 0/1. Всё равно ведь операций целой арифметики нет, только || да &&. IN> Стандартное занятие: сделать mirror и если всё хорошо то IN> сделать update. Если обломались подождать немного и снова IN> попытаться сделать mirror. Если всё плохо то громко выругаться. По-моему, всегда надо быть готовым к тому, что какой-нибудь INDEX.gz на зеркале окажется устаревшим за то время, пока идёт зеркалирование, а нужный файл либо будет отсутствовать, либо окажется недокачанным (например, потому, что его кто-то прямо на сервер заливал по ftp:). Если же такие ситуации недопустимы, надо менять технологию - смотреть в сторону rsync, cvs, etc, вплоть до транзакций. И контроль целостности дерева делать. Боевое зеркало софта (то, с которого юзеры прямо запускают бинарники) я делаю именно rsync'ом. В общем, работает - при существующей на источнике дисциплине деления софта на old/pro/new. Юзеры понимают, что в new появление всех либ в первый же день никто не гарантирует, так что жалоб ни разу не было. >> IN> что является разделителем команд при задании их через >> IN> `lftp -e`, >> Символ ";" - как во всех примерах. IN> IN> Я бы предпочёл иметь *документированный* метод. man lftp: lftp has shell-like command syntax allowing you to launch several commands in parallel in background (&). It is also possible to group commands within () and execute them in background. All background jobs are executed in the same single process. You can bring a foreground job to back- ground with ^Z (c-z) and back with command `wait' (or `fg' which is alias to `wait'). To list running jobs, use com- mand `jobs'. Some commands allow redirecting their output (cat, ls, ...) to file or via pipe to external command. Commands can be executed conditionally based on termina- tion status of previous command (&&, ||). Конечно, не SUSv3, и даже не man zsh, но мне хватает... >> IN> почему при `lftp -e mirror $url` я получаю >> IN> всё в текущем каталоге >> Странно, а я в разных - точно как на сервере. IN> cut/paste: lftp-3.0.13 - полёт нормальный. IN> Характерно что документацию к lftp писал вовсе не автор :-) Угу, я заметил. IN> Зачем? lftp это хорошая *диалоговая* программа. Просто для IN> скриптения она не очень подходит. Hу и ладно. ОК, принято. Спасибо за развёрнутые комментарии. -- Eugene Berdnikov --- ifmail v.2.15dev5.3 * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/365193f36c5c.html, оценка из 5, голосов 10
|