From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: ABATAPA To: ALT Linux Community Date: Wed, 28 Jun 2006 19:47:31 +0400 User-Agent: KMail/1.9.1 MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit Content-Disposition: inline Message-Id: <200606281947.31940.altlinux-community@yandex.ru> X-Virus-Scanned: ClamAV using ClamSMTP Subject: [Comm] =?koi8-r?b?7cXUz8Qgz8TOz8vSwdTOz8fPINfZy8HeydfBzsnRIM/E?= =?koi8-r?b?yc7By8/X2cggxsHKzM/XIMnaINLB2s7ZyCBGVFAu?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.7 Precedence: list Reply-To: ALT Linux Community List-Id: ALT Linux Community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jun 2006 15:47:30 -0000 Archived-At: List-Archive: List-Post: Доброго дня! Даже не знаю - сюда ли писАть, изи в курилку. :) Всем нам приходилось качать, скажем, рекурсивные FTP-каталоги с помощью wget -r. Иногда - довольно большие. Представим ситуацию, что у нас есть уже выкачанный каталог, и мы хотим скачать из _другого_ источника с _другой_ структурой только те файлы, которые у нас отсутствуют в любой "точке" первого каталога. FTP, как правило, команду 'SITE' не поддерживают, да и работают в chroot-окружении, так что 'SITE md5sum' на каждый файл не сделать. Как качать только отсутствующие файлы, _при этом сохраняя структуру_? На вскидку на ум приходят варианты: 1. Скрипт, который будет получать листинг, проверять каждое имя в локальном листинге, при нахождении - сверять размер (других-то данных нет), если совпадение и по имени, и по размеру не найдено - выкачивать с сохранением пути папок и занисением в локальный листинг. 2. Сделать жесткие ссылки _всех_ файлов имеющегося каталога в некий каталог, далее качать wget-ом, скажем, с ключами '-nd -nc', после из лога "вытаскивать" путь, создавать его в локальной папке, и переносить файл. По окончании линки удалить. Недостаток - не смогут быть обработаны файлы с одинаковым именем, но с разным размером. А как бы поступили вы? -- ABATAPA