Re: Записи в файле telnums.data

От: Igor Dobryninsky <CGatePro_at_mx_ru>
Дата: Wed 12 Oct 2011 - 12:24:32 MSK

  Hello Dmitry Akindinov.

On Wed, 12 Oct 2011 11:51:33 +0400
"Dmitry Akindinov" <CGatePro@mx.ru> wrote:

> здравствуйте,
>
> On 2011-10-12 10:04, Igor Dobryninsky wrote:
> > Hello Dmitry Akindinov.
> >
> > On Tue, 11 Oct 2011 19:14:40 +0400
> > "Dmitry Akindinov"<CGatePro@mx.ru> wrote:
> >
> >>> Появилась необходимость сделать массовую модификацию
> >>> телефонных номеров пользователей. Для меня проще всего это сделать
> >>> непосредственно в
> >>> файлах /var/CommuniGate/{Accounts,Domains/*}/Settings/telnums.data
> >>> с помощью sed'а (понятно, что нужно перед началом операции
> >>> остановить CGP, а после - запустить).
> >
> >> Так не надо делать. Есть CLI с командами ListAccounts, ListObjects
> >> и Get/SetAccountTelnums - ими и надо пользоваться.
> >
> > Я понимаю, что штатные средства лучше. Однако мне нужно
> > прошерстить несколько сотен аккаунтов в более чем десятке доменов,
> > причём дважды - сначала добавить новое, а через некоторое время -
> > убрать старое. Хочется сделать это быстро. Штатные средства CLI
> > такого не позволяют, даже

> Да ладно вам. Скрипт на perl (с использованием CLI.pm с
> <http://www.communigate.com/CGPerl/>, там же в качестве примера
> обхода всех аккаунтов во всех доменах можно взять web4All.pl и
> ListTotals.pl) сделает это не хуже.

  Беда в том, что Perl'а я, к своему сожалению, не знаю, так что придётся его осваивать в достаточном объёме с (риском всё-таки "накосячить"), что по времени ещё дольше, чем вариации на тему expect'а. Надо, наверное, изучить Perl, но времени сейчас маловато...

  А для Python'а у вас модуля нет? ;)

> > если написать сценарий для какого-нибудь expect'а, а sed - я
> > пробовал - тратит на всё про всё менее секунды. На стоп/старт
> > демона уйдёт ещё пара-тройка секунд. Телефоны, правда, должны будут
> > перерегистрироваться, но если объявить о возможном перерыве связи и
> > сделать всё ночью, то в принципе меня это не остановит.
> >
> > Есть какие-то соображения кроме соображений "правильности",
> > почему так делать не надо?

> А одной только "правильности" как аргумента недостаточно? Жаль. Это
> не только в отношении CGPro полезно стараться "правильно" всё делать,
> по жизни - тоже :-)

> Вы вот файл видели и уже поняли, что туда пишутся изменения в виде
> аккаунт=(новый_список_значений). Если вы на остановленном сервере
> аккуратно допишите поверх фигурной скобки изменения в этом формате и
> допишете потом закрывающую фигурную скобку, сохранив формат, - то
> оно, наверное, заработает. А может и нет. Вы ищете гарантий там, где
> их вам никто не даст - при наличчи документированных методов
> изменений настроек.

  Я не ищу гарантий, я интересуюсь, нет ли каких-то "подводных граблей" в том случае, если я всё сделаю правильно. Может, например, нужно ещё где-то эти номера добавить/убрать, а не только тут. А проконтролировать правильность замены я могу заранее, не меняя значения в файлах. Да и резервные копии никто не отменял, уж на самый крайний случай.

  Спасибо за информацию, Дмитрий, я постараюсь всё учесть.

> >>> Однако выяснилось, что в файле содержится, похоже, вся история
> >>> изменений данного атрибута у каждого пользователя. В связи с этим
> >>> - два
> >
> >> Да.
> >
> >>> вопроса: а) зачем это нужно? и б) что лучше - убрать лишние записи
> >>> или модифицировать не только последнюю, но и все остальные?
> >
> >> а) дописать в файл изменение эффективнее, чем перезаписывать весь
> >> файл. б) лучше использовать CLI
> >
> > Ok, понятно.
> >
>
> --
> Best regards,
> Dmitry Akindinov
>
> ##################################################################
> Вы получили это сообщение потому, что подписаны на список рассылки
> <CGatePro@mx.ru>.
>
> Чтобы отписаться, отправьте сообщение на адрес <CGatePro-off@mx.ru>
> Чтобы переключиться в режим дайджеста - mailto:<CGatePro-digest@mx.ru>
> Чтобы переключиться в индексный режим - mailto:<CGatePro-index@mx.ru>
> Для административных запросов адрес <CGatePro-request@mx.ru>
> Архив списка: http://mx.demos.su/lists/cgp-russian/
>
>
>

-- 
  Best Regards, Igor Dobryninsky, Moscow, Russia
Получено Wed Oct 12 08:24:42 2011

Этот архив был сгенерирован hypermail 2.1.8 : Wed 12 Oct 2011 - 16:15:19 MSK