занесение пользователей в бд

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
k0s
рядовой
Сообщения: 18
Зарегистрирован: 2011-04-05 10:44:19

занесение пользователей в бд

Непрочитанное сообщение k0s » 2011-04-11 17:11:27

доброго времени суток, друзья.
есть задача :
существует примерно 5000 папок вида
name.sname.macnt иногда без sname в каждой такой папке лежить файлик account.settings где записаны разные настройки и строка Password с паролем юзера.
необходимо в базу postgresql в таблицу eperson записать поля
eperson_id - порядковый номер
email строится из имени папки name.sname@www.www
password из строки Password файла account.settings
firstname name - если нет то null
lastname sname - если нет то null

все что у меня пока получилось это:

Код: Выделить всё

echo | ls | grep macnt | awk -F\. '{print substr($1,1)"." substr ( $2,1 ) "@www.www" }' | sed 's/[.]*macnt//' >> accounts
получается файлик со списком вида name.sname@www.www, и наверное потом нада туда еще както записывать пароли, а то как это отправить в postgresql я вообще не представляю.. :unknown:

я новичек и возможно проблема решается совершенно подругому.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Re: занесение пользователей в бд

Непрочитанное сообщение FiL » 2011-04-12 3:58:32

дык файлик надо сделать со списком вида "insert into eperson eperson_id, email, password, firstname, lastname values (.........);"
и потом его уже можно без проблем скормить в psql.
Да, займет немного времени пропарсить всё и получить нужные строчки. Такой скрипт в одну сточку писать не стоит, запутаешься. Но задачка хорошая. И ничего особо сложного, и как раз опыт наберется.

k0s
рядовой
Сообщения: 18
Зарегистрирован: 2011-04-05 10:44:19

Re: занесение пользователей в бд

Непрочитанное сообщение k0s » 2011-04-12 15:03:18

FiL писал(а):дык файлик надо сделать со списком вида "insert into eperson eperson_id, email, password, firstname, lastname values (.........);"
и потом его уже можно без проблем скормить в psql.
Да, займет немного времени пропарсить всё и получить нужные строчки. Такой скрипт в одну сточку писать не стоит, запутаешься. Но задачка хорошая. И ничего особо сложного, и как раз опыт наберется.
разобрался, получил файлик с огромным списком:
name.sname@www.www password
....
теперь если вам не сложно обьясните по поводу "insert into eperson eperson_id, email, password, firstname, lastname values (.........);"
у меня пароли в виде обычных символов, а в базу нада заносить в виде md5.
и насколько я понял это будет файлик *.sql и как потом его скормить базе?
да и по поводу eperson_id надо же както увеличивать очередное значение?

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Re: занесение пользователей в бд

Непрочитанное сообщение FiL » 2011-04-12 23:49:35

с ID просто - при создании таблицы объяви его как auto_increment -
create table eperson (eperson_id serial primary key, email varchar(60), password char(32), firstname varchar(40), lastname varchar(40));
Далее, переделай свой файл, чтоб в нем были не просто пары "name.sname@www.www password", а полные запросы -
insert into eperson (email, password, firstname, lastname) values ("name.sname@www.www", MD5('password'), "name", "sname");
потом запускаешь psql и подключаешься к своей базе.
И из приглашения Psql запускаешь

Код: Выделить всё

\i filename
Оно тебе выполнит все твои инсерты.

k0s
рядовой
Сообщения: 18
Зарегистрирован: 2011-04-05 10:44:19

Re: занесение пользователей в бд

Непрочитанное сообщение k0s » 2011-04-13 11:25:05

огромное спасибо за помощь, все получилось :)

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Re: занесение пользователей в бд

Непрочитанное сообщение FiL » 2011-04-13 20:14:43

"если у вас всё получилось с первого раза, значит вы чего-то не заметили" (с)законы мерфи