LINUX.ORG.RU

Сообщения saymyname

 

Работа с БД (передача значений в json)

Всем привет. Есть скрипт, который запрашивает информацию о пользователе в БД:

mysql -u $usr -p$pas &db -N -e "select phone, FName, SName from $tb where login = 'ivanov')";

для примера мы получаю из БД:

+---------+--------+-------+----------+--------------+ 
| user_id | login  | phone | FName    | SName        | 
+---------+--------+-------+----------+--------------+ 
|       1 | ivanov |  3123 | ivan     | ivanov       |
+---------+--------+-------+----------+--------------+

Нужно замапить phone, FName, SName в json:

"user_info": { 
    "givenname": "FName", 
    "phone": "phone", 
    "surname": "SName", 
}

пока что пришел только к такому формату:

FName=$(mysql -u $usr -p$pas &db -N -e "select FName from $tb where login = 'ivanov')";
phone=$(mysql -u $usr -p$pas &db -N -e "select phone from $tb where login = 'ivanov')";
SName=$(mysql -u $usr -p$pas &db -N -e "select SName from $tb where login = 'ivanov')";

echo "\"user_info\": { 
    \"givenname\": \"$FName\", 
    \"phone\": \"$phone\", 
    \"surname\": \"$SName\"
}"

Как это можно оптимизировать? Читал что можно передавать в массив а потом вычитывать оттуда но не вижу в этом смысла.. Буду рад помощи.

 ,

saymyname
()

Построчное чтение и добавление в DB (Bash)

Всем привет. Есть функция которая читает ldap и возвращает список пользователей :

function get_info { 
                info=$(ldapsearch -h $host -D $user -w $pass -b $base_name $group  -LLL  | \ 
                grep member |\ 
                awk -F '[=,]' '{print $2}') 
                if [ "$info" ]; then 
                    echo "$info" 
                else 
                    echo "Oooupss" 
                    exit 1 
                fi 
}

Нужно добавить пользователей в БД mysql, для этого написал скрипт:

mysql -u $usr -p%pas &db -e "insert $tb (login) values ('$info')";

и получаю в базе запись виде:

 |      13 | adb 
acs 
asc 
asd 
qwe 
cde                                         |        NULL |

Как мне построчно читать файл и вводить в БД каждое значение отдельно? Или может есть идеи как поступить лучше?

 ,

saymyname
()

Как сделать маппинг в curl запрос BASH

Я новичок в работе с BASH, буду признателен помощи.

Общая идея: Есть скрипт, который периодически делает поиск пользователей в группе LDAP и записывает вывод в массив. Далее сравниваются 2 массива( 1 с добавленным пользователем, 2 с пользователями до добавления нового) => делается запрос ко вьюшке sql для получения данных.

При добавлении пользователя нужно «выкусывать» и «мапить» его имя в запрос, как это сделать и возможно ли это используя BASH?

 , ,

saymyname
()

RSS подписка на новые темы