info@celere.ru
+7(952)81-37-468
+7(952)81-37-468
Выгрузка результата sql - запроса в csv из командной строки (MySQL, Percona, Maria и т.д.).
Опишу два способа:
Не заходя в mysql, непосредственно из командной строки:
mysql -uлогинвбазу -p -h localhost -Dимябазы -ss -e "select items.name as itname, items.key_ as itkey, items.state as itstate, triggers.description as trigdescr, triggers.expression as trigex, hosts.host as zhhost, hosts.name as zhname, applications.name as aplname from items, triggers, hosts, functions, applications, items_applications where items.hostid=hosts.hostid and functions.itemid = items.itemid and functions.triggerid = triggers.triggerid and hosts.status in (0, 1) and items.flags in (0, 4) and triggers.flags IN (0,4) and items.itemid=items_applications.itemid and items_applications.applicationid=applications.applicationid; " | sed 's/"/""/g;s/\t/","/g;s/.*/"\0"/' > yourdump.csv
в итоге sed перелопатит выхлоп селекта и в файл yourdump.csv запишутся данные в формате, приемлемом для excell (open office)
Способ второй - из mysql непосредственно. Более корректный.
И так, заходим: mysql -uлогин -pпароль
Выбираем базу: use имябд;
Ну и, собственно, выполняем тот же селект, но дописываем к нему кой-чего еще :-)
select
items.name as itname, items.key_ as itkey, items.state as itstate,
triggers.description as trigdescr, triggers.expression as trigex,
hosts.host as zhhost, hosts.name as zhname, applications.name as aplname
from
items, triggers, hosts, functions, applications, items_applications
where
items.hostid=hosts.hostid
and functions.itemid = items.itemid
and functions.triggerid = triggers.triggerid
and hosts.status=3 and items.flags in (0, 4) and triggers.flags IN (0,4)
and items.itemid=items_applications.itemid
and items_applications.applicationid=applications.applicationid
INTO OUTFILE '/tmp/hit_templates.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Указывать можно свои разделители, свой путь и тд.
в итоге выгрузится результат выполнения в /tmp/hit_templates.csv .
Да, кстати, почему здесь /tmp/ папка: для того чтобы не заморачиваться с правами на запись.
Ноя 19 2015