Есть ли способ в реальном времени увидеть подключения к моему серверу и через какие домены?
Не проверяя файл access.log, я хотел бы вместо этого запустить монитор в оболочке.
Веб-сервер Ubuntu 10: lighttpd
Спасибо
Пример строки из access.log
::ffff:000.00.00.000 www.domain.com - [10/Nov/2010:12:42:49 +0100] "GET / HTTP/1.1" 200 295 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10"
Есть пакет под названием iptraf
который покажет вам подключения к вашему серверу.
Вы можете установить его, выполнив sudo apt-get install iptraf
Вы также можете использовать следующую команду для извлечения информации из журнала access.log.
tail -f access.log | awk '{print $1 "\t" $2}'
В моем случае это список удаленного IP и имени хоста HTTP 1.1, предоставленного UA.
Итак, давайте кратко рассмотрим команду, которую я показал выше:
На самом деле это две команды с именем tail
и awk
. tail
обычно выводит последние 10 строк файла, но с -f
Мы просим его продолжать смотреть в файл и печатать новые строки по мере их записи в файл.
Труба (|
) - хорошо известный символ, поскольку он использует выходные данные программы (т.е. tail
) как ввод другой программы (т.е. awk
).
Наконец вторая команда awk '{print $1 "\t" $2}'
принимает входные данные из хвоста и ограничивает выход необходимыми столбцами. (В моем примере это были первые столбцы, поэтому я использовал $1
и $2
. Если в вашем access.log используется другой порядок столбцов, вы можете соответствующим образом изменить числа.
Это сгенерирует список в реальном времени, похожий на этот:
92.17.166.190--pacey.me
92.17.166.191--pacey.me
92.17.166.192--anotherdomain.com
92.17.166.193--anotherdomain.com
Я попытался воспроизвести ошибку, которую вы получаете, с помощью следующей команды.
echo ::ffff:000.00.00.000 www.domain.com - [10/Nov/2010:12:42:49 +0100] "GET / HTTP/1.1" 200 295 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10" | awk '{print $1 "\t" $2}'
Но даже чем это сработало для меня:
::ffff:000.00.00.000 www.domain.com
попробуйте topvhost
Поскольку формат журнала почти такой же, как у Apache, Apachetop может сработать для вас.
Он доступен в репозиториях пакетов Ubuntu, поэтому sudo apt-get install apachetop
должен установить его в кратчайшие сроки.
Использование: apachetop -f /path/to/your/access.log