Чтение и запись в YML конфиг файлы в perl

Posted in Новости on октября 28, 2013 by admin

Имеем конфиг в YAML формате :

config:
mysql1:
user: myuser1
password: mypassword1
mysql2:
user: myuser2
password: mypassword2

Требуется посмотреть и изменить нужный параметр. Допустим, требуется изменить password у user в секции mysql1 . Для этого в perl существует библиотека для стандарта YAML.

Фактически, конфиг представляет собой хеш массив, поэтому yaml распарсивает данные.


#!/usr/bin/perl

use strict;
use warnings;

use YAML qw(LoadFile Dump); # подключаем нужный модуль с нужными функциями

my $config = LoadFile('config.yml'); # загружаем конфиг
my $user1_pass = $config->{'config'}->{mysql1}->{password}; # находим значение по ключу
print "$user1_pass";

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


#!/usr/bin/perl

use strict;
use warnings;

use YAML qw(LoadFile Dump); # подгружаем нужный модуль с нужными параметрами

my $config = LoadFile('config.yml'); # загружаем конфиг
$config->{'config'}->{mysql1}->{password} = '123123'; # меняем значение ключа
open F, '>', 'config.yml'; # открываем файл на запись
print F Dump($config); # пишем output в хендлер файла
close F; # закрываем хэндлер

Tags: ,

dpkg: warning: files list file for package missing; assuming package has no files currently installed

Posted in Новости on октября 16, 2013 by admin

dpkg: warning: files list file for package 'libmpfr4:amd64' missing; assuming package has no files currently installed
dpkg: warning: files list file for package 'gcc-4.7' missing; assuming package has no files currently installed

1. Создаем кеш пакетов нужных :

apt-get install --reinstall `apt-get install --reinstall libgomp1 | awk '{print $8}' | cut -f2 -d"'" | grep amd64`

Подавляющее большинство пакетов должно будет пофикситься. К оставшимся применим магию.

2. Ищем точное имя пакета :


find /var/cache/apt/archives/ -name "gcc-4.7*"

3. Исправляем :


dpkg-deb -c /var/cache/apt/archives/gcc-4.7-base_4.7.2-5_amd64.deb | awk {'print $6'} | cut -f2- -d. | sed 's|^/$|/.|' | sed 's|/$||' > /var/lib/dpkg/info/gcc-4.7.list

Tags: , ,

Тестирование корректности работы почтовых редиректов в Postfix + MySQL

Posted in Новости on октября 15, 2013 by admin

postmap -q test2@test.ru mysql:/etc/postfix/mysql-aliases.cf

В ответ сервер должен выдать либо ничего ( нет редиректов ), либо список редиректов :


root@XXX:/etc/postfix# postmap -q test2@test.ru mysql:/etc/postfix/mysql-aliases.cf
XXX@YYY, XWX@WER.ru

Tags: , , ,