/bin/echo ",,," | /sbin/sfdisk -L /dev/sdX
понедельник, 25 апреля 2011 г.
Как создать раздел на весь диск?
Подобное может понадобиться в скрипте. Итак, создать раздел на весь диск размером можно следующей командой:
Восстановление MyISAM таблиц при восстановлении раздела из снапшота
Оставлю здесь, путь лежит
find /$PATH/db/ -name "*.MYI" -exec myisamchk --silent --force --fast --update-state {} \;
вторник, 19 апреля 2011 г.
среда, 13 апреля 2011 г.
YAML в perl'отворчестве
Задача: вы пишите большой perl-скрипт, который должен выполнять длительные/рутинные операции. Вы взрослый мальчик и не боитесь CPAN. Вы используете самые вкусные модули, которые помогают вам писать быстро и без изобретения велосипедов. Некоторые длительные операции порождают объекты (да, вы совсем взрослый мальчик), с которыми вы и работаете дальше.
Проблема: Чем длительнее операции, которые выполняются скриптом, тем больше времени вам требуется чтобы отладить скрипт... Например, скрипт добирается до места отладки только через 15 минут. А если при этом каждый раз выделяются значительные ресурсы?
Решение: Сериализация/десериализация объектов.
В частности, мне подошла реализация YAML из модуля (Хотя тут поговаривают, что JSON захватит мир...)
Достаточный минимум:
Проблема: Чем длительнее операции, которые выполняются скриптом, тем больше времени вам требуется чтобы отладить скрипт... Например, скрипт добирается до места отладки только через 15 минут. А если при этом каждый раз выделяются значительные ресурсы?
Решение: Сериализация/десериализация объектов.
В частности, мне подошла реализация YAML из модуля (Хотя тут поговаривают, что JSON захватит мир...)
Достаточный минимум:
use YAML qw(DumpFile LoadFile);
DumpFile('object.yml', $obj);
my $obj = LoadFile('object.yml');
вторник, 12 апреля 2011 г.
Противная ошибка в Crypt::DES
Проблема: При использовании модуля Net::SSH::Perl при попытке выполнения некоторых команд в $ssh->cmd() можно получить следующюю ошибку:
Причина: модуль Net::SSH::Perl реализован на чистом Perl и все методы шифрования пользует свои, в том числе и Crypt::DES. А последний плохо дружит в UTF-8, поэтому и отгребает ошибку.
Фикс: добавить 'utf8::downgrade($data);' в проблемный DES.pm прямо перед строкой, на которую ссылается ошибка. Например, в мое случае я заменил
на
Решение нашел на perlmonks.org.
P.S. Та же беда с Cryprt::Blowfish. Фиксится так же.
P.P.S. Можно еще попробовать чиперы другие использовать. Я не пробовал.
input must be 8 bytes long at /usr/local/lib/perl/5.10.1/Crypt/DES.pm line 57.
Причина: модуль Net::SSH::Perl реализован на чистом Perl и все методы шифрования пользует свои, в том числе и Crypt::DES. А последний плохо дружит в UTF-8, поэтому и отгребает ошибку.
Фикс: добавить 'utf8::downgrade($data);' в проблемный DES.pm прямо перед строкой, на которую ссылается ошибка. Например, в мое случае я заменил
my ($self,$data) = @_;
return Crypt::DES::crypt($data, $data, $self->{'ks'}, 1);
на
my ($self,$data) = @_;
utf8::downgrade($data);
return Crypt::DES::crypt($data, $data, $self->{'ks'}, 1);
Решение нашел на perlmonks.org.
P.S. Та же беда с Cryprt::Blowfish. Фиксится так же.
P.P.S. Можно еще попробовать чиперы другие использовать. Я не пробовал.
воскресенье, 3 апреля 2011 г.
Удаление триггеров bucardo в Postgres
Для сервисных нужд я иногда использую bucardo. Утилита внятная. Четкая документация. Работает и не жужжит :)
У нее есть одна особенность - она не удаляет триггеры из базы, даже если мы убираем ее из обработки. Это было бы не страшно, если бы лишние триггеры не замедляли работу базы. Поэтому для удаления bucardo-триггеров была написана следующая функция:
Исполнение, как обычно:
У нее есть одна особенность - она не удаляет триггеры из базы, даже если мы убираем ее из обработки. Это было бы не страшно, если бы лишние триггеры не замедляли работу базы. Поэтому для удаления bucardo-триггеров была написана следующая функция:
Исполнение, как обычно:
select strip_bucardo_triggers();
Подписаться на:
Сообщения (Atom)