LINUX.ORG.RU

Не отрабатывает awk.


0

0

Всем здрям. Есть скрипт который парсит лог сквида и помещает его в мускл, он имеет вид:
awk '{print "INSERT INTO squid (ip,bytes,link,trans,time) VALUES(\""$3"\","$5",\""$7"\",\""$9"\",from_unixtime("$1"));"};' < /tmp/squidforparse.log

в сквиде версии 2.6 все работало нормально, перешли на третью версию и в access.log при встрече со строкой типа:
1253253187.027 1137 172.24.23.67 TCP_MISS/404 566 GET http://www.inosmi.ru/i/t.gif" - DIRECT/195.230.73.21 text/html
1253344343.552 1099 172.24.23.67 TCP_MISS/404 566 GET http://www.inosmi.ru/i/t.gif" - DIRECT/195.230.73.21 text/html
1253344434.701 0 172.24.23.67 TCP_NEGATIVE_HIT/404 574 GET http://www.inosmi.ru/i/t.gif" - NONE/- text/html
1253344632.023 1104 172.24.23.67 TCP_MISS/404 566 GET http://inosmi.ru/i/t.gif" - DIRECT/195.230.73.21 text/html
1253423437.093 1089 172.24.23.67 TCP_MISS/404 566 GET http://www.inosmi.ru/i/t.gif" - DIRECT/195.230.73.21 text/html
1253424044.022 1111 172.24.23.67 TCP_MISS/404 566 GET http://inosmi.ru/i/t.gif" - DIRECT/195.230.73.21 text/html
1253425940.137 1110 172.24.23.67 TCP_MISS/404 566 GET http://inosmi.ru/i/t.gif" - DIRECT/195.230.73.21 text/html
1253596019.452 3487 172.24.23.67 TCP_MISS/404 566 GET http://inosmi.ru/i/t.gif" - DIRECT/195.230.73.21 text/html
1253596224.327 1120 172.24.23.67 TCP_MISS/404 566 GET http://www.inosmi.ru/i/t.gif" - DIRECT/195.230.73.21 text/html

Выдается ошибка синтаксиса mysql, я так понял что это из-за линка с gif" который попадает в $7. Подскажите как можно заносить данные строки или перед передачей в mysql убирать " ?

★★★★★

Re: Не отрабатывает awk.

Отсутствие экранирования символов чревато инъекцией. Постарайтесь либо думать об этом сразу, либо вообще никогда не писать ничего исполняемого.

nnz ★★★★ ()
Ответ на: Re: Не отрабатывает awk. от splinter

Re: Не отрабатывает awk.

Угу. Написание соответствующего GET-запроса оставляю в качестве самостоятельного упражнения. Подсказка: сначала закрыть кавычку, потом корректно закончить запрос, точка с запятой, необходимая операция, точка с запятой, символ комментария «--». А ля
1254144189.757 13 127.0.0.1 TCP_DENIED/400 0 GET lalala", "la", "la"); drop database test; -- - NONE/- text/html

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