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

Проверить журналы доступа для конкретного файла

Я пытаюсь узнать, сколько раз был осуществлен доступ к определенному веб-файлу. У меня есть root-доступ к серверу, но я не знаю, где искать. Единственное место, которое я просмотрел, - это / home / FTPUSER / access-logs, который представляет собой символическую ссылку на / usr / local / apache / domlogs / perrysre, и в этом журнале доступа есть данные только за 1 день.

Любая помощь будет принята с благодарностью.

Если ваш журнал доступа содержит данные только за день, он, вероятно, обновляется каждый день. Вам нужно будет решить, как это настроить. Если вы используете Linux, это может быть с logrotate -- смотреть в /etc/logrotate.d/ или /etc/logrotate.conf если они существуют. Во FreeBSD ротация журналов настраивается в /etc/newsyslog.conf.

Apache также может делать это через ротация журналов. Если так, это будет настроено в CustomLog строка в конфигурации сервера (httpd.conf), который мог быть в /etc/httpd или, что более вероятно, учитывая местоположение вашего журнала, /usr/local/apache/conf.

Если ничего из этого не работает, спросите человека, который это настраивал!

Я думаю, поскольку, судя по вашему вопросу, я не могу оспорить системные настройки, в которых вы работаете, универсальный способ поиска файлов, используемых процессом, может помочь.

Попробуйте использовать lsof -p <PID_OF_APACHE_DAEMON>.

Вы можете получить PID несколькими способами, можно посмотреть на netstat -tlnop вывод, другой использует lsof -i, и так далее.

Это POC, который может работать:

lsof -p $(lsof -i :80 | head -2 | tail -1 | awk '{print $2}') | grep log

httpd   2618 root  mem    REG  253,0           64072 /usr/lib/httpd/modules/mod_logio.so (path inode=63267)
httpd   2618 root  mem    REG  253,0           64070 /usr/lib/httpd/modules/mod_log_config.so (path inode=63265)
httpd   2618 root    2w   REG  253,2    1461  720904 /var/log/httpd/error_log
httpd   2618 root    6w   REG  253,2    1461  720904 /var/log/httpd/error_log
httpd   2618 root    7w   REG  253,2    4483  720899 /var/log/httpd/access_log

Здесь я предположил, что ваш демон apache, конечно, прослушивает стандартный tcp-порт 80.

все журналы Apache обычно хранятся в:

/var/log/apache(2)/access.log

/var/log/apache(2)/error.log

/ var / log / apache (2) / custom .log

мне нравится хорошая команда, чтобы что-то посчитать:

cat /var/log/apache2/access.log | grep WORD-TO-LOOK | wc -l

тогда у вас будет номер. Предположим, у вас есть журналы FTP, и каждый раз, когда Джон подключается, появляется строка «Джон открыл сеанс». Итак, вы сделаете:

cat /var/log/ftp.log | grep John opened a session | wc -l

покажет, сколько раз Джон открывал сеанс. Если вам нужен период времени и т. Д., Вы также можете это сделать