
Я ищу метод / команду Linux для получения времени безотказной работы open-ssh
сервера и Nginx
сервера, работающего на моей системе Ubuntu. Я хочу узнать время безотказной работы для расчета некоторых внутренних статистических данных. Я ищу что-то похожее на mysqladmin status
команду.
Спасибо
решение1
Ну, на самом деле, у openssh нет времени безотказной работы. Вы можете проверить, активен ли он или сколько у него подключений. Или можете узнать время последнего перезапуска, посмотрев на/var/run/sshd.pid
ls -l /var/run/sshd.pid
-rw-r--r-- 1 root root 4 2012-12-15 21:26 /var/run/sshd.pid
Этот файл обновляется при запуске/перезапуске демона. Так что можно делать расчеты на основе этого.
Для nginx вы можете установить модуль статуса (http://wiki.nginx.org/HttpStubStatusModule) и затем использовать это, чтобы получить некоторую информацию, но увы, время безотказной работы там не отображается. Вероятно, можно использовать ту же идею, просматривая файлы pid nginx, но это просто скажет вам с момента последнего перезапуска и т. д., а не будет на 100% указывать на время безотказной работы.
решение2
Проверьте следующий ответ, чтобы получить эту информацию из ps. https://stackoverflow.com/questions/5731234/how-to-get-the-start-time-of-a-long-running-linux-process
Вам нужно будет проанализировать этот вывод (на ум приходят awk, Perl или Python).
В качестве альтернативы вы можете использовать ctime (например)
/proc/PID_OF_NGINX_MASTER_PROCESS
но я не уверен в этом на 100%.