LINUX.ORG.RU
ФорумAdmin

bash и psql


0

0

Мне надо интерактивно писать лог squid-а в БД PostgreSQL.
Как мне вот это:
tail -f /var/squid/logs/access.log | awk '{ print "INSERT INTO traf (client_ip) VALUES (\x27" $3 "\x27); \n" ; }'
передать в psql ?

Пробовал так:
tail -f /var/squid/logs/access.log | awk '{ print "INSERT INTO traf (client_ip) VALUES (\x27" $3 "\x27); \n" ; }' | /usr/local/pgsql/bin/psql squid_db -U pgsql
Не работает.
Что посоветуете ?

anonymous

Ответ на: комментарий от anonymous

Если написать:
tail -f /var/squid/logs/access.log | awk '{ print "INSERT INTO traf (client_ip) VALUES (\x27" $3 "\x27); \n" ; }' | /usr/local/pgsql/bin/psql squid_db -U pgsql -c

или чтоб запрос был в кавычках ""

tail -f /var/squid/logs/access.log | awk '{ print " \"INSERT INTO traf (client_ip) VALUES (\x27" $3 "\x27);\" \n" ; }' | /usr/local/pgsql/bin/psql squid_db -U pgsql -c

то получаю в обоих случаях:
/usr/local/pgsql/bin/psql: option requires an argument -- c
Try "psql --help" for more information.

хотя

/usr/local/pgsql/bin/psql squid_db -U pgsql -c "INSERT INTO traf (client_ip) VALUES ('10.1.1.64');"

нормально работает.

Нужен совет !!!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.