Можно ли узнать, обращается ли пользователь к файлу 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
Это должно работать нормально ...