Назад | Перейти на главную страницу

HTTP-мониторинг apache2 на Debian Lenny

Можно ли узнать, обращается ли пользователь к файлу php на моем сервере?

Есть ли команда, которую я могу использовать через ssh, которая перечислит все IP-адреса и какую страницу они запрашивают?

Моя конечная цель - запустить задание cron для выполнения определенного файла php, если он еще не доступен ни одному пользователю.

Вы можете проверить файл журнала доступа к apache. Он показывает следующие поля: дата / время, IP-адрес, URL-адрес, включая параметры, и другие.

Для просмотра файла;

$ less /var/log/apache/access.log

Для поиска файла:

$ grep keyword /var/log/apache/access.log

Будьте осторожны, просмотр имени файла PHP в журнале apache не гарантирует, что он все еще работает, пока вы выполняете свой скрипт.

РЕДАКТИРОВАТЬ: Если вы хотите видеть HTTP-соединения во время их установки, вы можете использовать tcpdump следующим образом:

$ sudo tcpdump -XX -vv -n -w /tmp/http_trace.pcap port 80

Я не уверен на 100% в синтаксисе фильтра «порт 80», но он будет захватывать только HTTP-трафик, предназначенный для порта 80. Кроме того, вы можете использовать эту команду для просмотра установленных подключений:

$ netstat -an | grep ESTABLISHED 

Чтобы постоянно следить за этой командой, вы можете использовать команду watch:

$ watch -n1 netstat -an

-n1 означает запускать команду каждую секунду.

чтобы получить более подробную информацию о вашей статистике apache, вы можете получить отчет из файла access.log, используя Анализатор журнала запросов ( https://github.com/wvanbergen/request-log-analyzer/wiki )

Образец отчета: https://github.com/wvanbergen/request-log-analyzer/wiki/Sample-output

Для этого вам нужно убедиться, что php работает в режиме, который находится под пользователем, а не как пользователь apache.

ps aux | grep php 

Это должно работать нормально ...