URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4560
[ Назад ]

Исходное сообщение
"Помогите с регекспами!!!!!"

Отправлено GreN , 16-Авг-05 16:05 
Значит задача такая! Есть строка вида /home/pupkin/soft/update[0-9]_[0-9a-zA-Z]/и т.д. (вместо того,что в скобках подразумевается число на первой позиции и число или буква на второй)
вот написан скрипт для синхронизации на несколько вэб серверов этих апдейтов но только для ручного апдейта. В старые версии тоже иногда вносяться изменения (там всякие очепятки в ленгвич файлах, конфигах, доке). Апдейтов стало много и как-то хочется автоматизировать(чтоб перл сам перебирал значения в квадр скобках и скачивал измененные файлы). Дык вот не получается перебор что только не делал немогу допереть как.
Может кто делал такое подскажите!!!!!

Заранее благодарю!


Содержание

Сообщения в этом обсуждении
"Помогите с регекспами!!!!!"
Отправлено ihor , 16-Авг-05 16:39 
не совсем понятно, что нужно сделать.
если просто следить за тем, какие файлы появились новые, какки изменились и их применять, то можно сделать так: perl скрипт держит в *dbm базе соответствия '[имя файла] => [его md5 дайджест]'. каждый раз когда скрипт запускпется, он смотрит, если файла в базе нет - применяем, если есть - вычисляем его md5-digest, сравниваем стем, что в базе, если отличается - применяем, и кладём в базу новое md5-значение.
я только не понимаю, при чём здесь регулярные выражения?

"Помогите с регекспами!!!!!"
Отправлено GreN , 16-Авг-05 16:57 
>не совсем понятно, что нужно сделать.
>если просто следить за тем, какие файлы появились новые, какки изменились и их применять, то можно сделать так: perl скрипт держит в *dbm базе соответствия '[имя файла] => [его md5 дайджест]'. каждый раз когда скрипт запускпется, он смотрит, если файла в базе нет - применяем, если есть - вычисляем его md5-digest, сравниваем стем, что в базе, если отличается - применяем, и кладём в базу новое md5-значение.
>я только не понимаю, при чём здесь регулярные выражения?
ну с md5 все понятно тока вот смотри что нужно!
есть сервер типа server(root) на нем update0_a update1_b update9_A и вдруг появляется папка с новым апдейтом типа update9_B & update9_C вот чтоб скрипт и в них заглянул и посмотрел у себя такие папки и соотв если их нет то скачал к себе! Смысл регекспа в том чтоб скрипт сам перебрал все названия папок от update0_0 до update9_Z и сам закачал все апдейты от измененных файлов в сущесвующих апдейтах до появившихся новых апдейтов.


"Помогите с регекспами!!!!!"
Отправлено ihor , 16-Авг-05 17:18 
а если просто rsync использовать?

"Помогите с регекспами!!!!!"
Отправлено GreN , 16-Авг-05 17:35 
>а если просто rsync использовать?
Можно наверна и так, но скрипт то есть, просто в него нада вставить нескака строк и все.
А с рсюнком все сложнее! Сервера то на которые идет синхронизация не мои и наверняка хозяева тех серверов согласятся на такой шаг.........


"Помогите с регекспами!!!!!"
Отправлено madskull , 16-Авг-05 17:37 
список диров можно забрать так:
@dirs=glob("update[A-Z0-9]_[A-Z0-9]")
а дальше уже их обрабатывать.
Я правильно понял?

"Помогите с регекспами!!!!!"
Отправлено GreN , 16-Авг-05 17:54 
>список диров можно забрать так:
>@dirs=glob("update[A-Z0-9]_[A-Z0-9]")
>а дальше уже их обрабатывать.
>Я правильно понял?
Хм ща попробую!!! Сразу подставить строку из базы а не парсить ее (я парсил на наличие [] и пытался из них выдрать границы перебора).