Как узнать время работы (uptime) в Linux

Узнать, как долго работает система Linux, можно несколькими простыми командами: uptime, who, top и чтение /proc/uptime. Особенно полезно для администраторов при диагностике, планировании перезагрузок и мониторинге стабильности.
Когда система была в последний раз запущена? Время работы (uptime) — это интервал от последнего старта ОС до текущего момента. Это полезная метрика для оценки стабильности, планирования обслуживания и быстрой диагностики проблем.
Важно: в контейнерах и виртуальных машинах значение uptime может отражать время работы гостевой ОС или хоста в зависимости от настроек. Всегда сверяйте контекст запуска.
Краткое определение
Uptime — время, прошедшее с последнего запуска или перезагрузки системы. Load average — средняя загрузка CPU за 1, 5 и 15 минут. /proc — виртуальная файловая система ядра, дающая доступ к системным данным.
Основные способы узнать uptime
Ниже перечислены простые и надёжные методы, которые работают в большинстве дистрибутивов Linux.
1. Команда uptime
Команда uptime даёт быстрый свод по времени работы, текущему времени, числу пользователей и load average.
Пример синтаксиса:
uptime [options]Простой вызов:
uptimeПример вывода:
09:24:43 up 1:53, 1 user, load average: 0.16, 0.07, 0.03Вывод в более читабельном формате:
uptime -pup 1 hour, 55 minutesПоказать точное время последней загрузки:
uptime -s2023-02-10 07:31:00Примечание: опция -s обычно выводит время в формате ISO; при желании можно локализовать вывод, преобразовав его через date/awk для отображения локальных форматов.
2. Команда who
Команда who показывает, кто сейчас в системе, и может показать время последней загрузки:
who -bВывод будет напоминать:
system boot 2023-02-10 07:313. Команда top
top — интерактивный монитор процессов. В первой строке отображается время работы в формате “up hh:mm”.
topНа первой строке вы увидите что-то вроде:
top - 09:24:43 up 1:53, 1 user, load average: 0.16, 0.07, 0.034. Чтение /proc/uptime
Файл /proc/uptime содержит время работы системы в секундах (первое число) и время простой системы в секундах (второе число). Простой способ прочитать его:
cat /proc/uptimeТипичный вывод:
7234.56 1234.56Первое число — общее число секунд с момента загрузки. Чтобы преобразовать в человекочитаемый формат, используйте awk или python.
Пример преобразования в человекочитаемую форму:
awk '{print int($1/3600)"h "int(($1%3600)/60)"m "int($1%60)"s"}' /proc/uptimeБыстрый список команд (cheat sheet)
| Команда | Описание |
|---|---|
| uptime | Быстрый отчёт: текущее время, время работы, users, load average |
| uptime -p | Читабельный формат времени работы |
| uptime -s | Время последней загрузки (ISO-подобно) |
| who -b | Время последней загрузки (альтернативный вывод) |
| top | Интерактивный монитор; uptime в первой строке |
| cat /proc/uptime | Время работы в секундах |
Когда показания могут быть неточными или вводящими в заблуждение
- Контейнеры (Docker, LXC): uptime может отражать время работы контейнера, а не хоста. Проверьте, где вы выполняете команду.
- Виртуальные машины: если гипервизор делает миграции или временные корректировки, значения могут отличаться.
- Переход в режим гибернации/сна: некоторые системы увеличивают время работы, несмотря на suspend-to-disk.
- Сбой /proc или нестандартные ядра: файл /proc/uptime доступен во всех стандартных Linux, но в сильно урезанных образах (busybox) поведение может отличаться.
Альтернативные подходы и инструменты
- systemd — посмотреть время загрузки через journalctl:
journalctl -b -0 --no-pager | head- Для централизованного мониторинга используйте Prometheus/Grafana: экспортеры собирают метрику uptime и позволяют строить графики и оповещения.
- В облачных средах (AWS, GCP) сверяйте внутренние метрики инстансов для корреляции с uptimes.
Чек-листы по ролям
Для системного администратора:
- Проверить uptime перед обновлением или миграцией.
- Сопоставить load average и uptime при анализе деградации производительности.
- Убедиться, что долгие uptimes покрыты планом обслуживания.
Для пользователя/разработчика:
- Быстро проверить uptime перед отладкой проблем с временными метками.
- При подозрении на странное поведение контейнера убедиться, что команда выполняется внутри контейнера.
Краткая методология проверки (mini-methodology)
- Запустите uptime и/или uptime -p для быстрой оценки.
- Сверьте с who -b или uptime -s для точного времени загрузки.
- Если есть подозрения, проверьте /proc/uptime и преобразуйте секунды в часы/минуты.
- При корреляции инцидентов сопоставьте время загрузки с журналами (journalctl, /var/log/*).
Примечание: для автоматизации проверок добавьте команду в скрипт мониторинга или настройте оповещения в системе мониторинга.
Критерии приёмки
- Команда uptime возвращает корректный формат и значение времени работы.
- Load average сопоставим с ожидаемой нагрузкой для данного времени работы.
- В среде контейнеров подтверждена контекстность (контейнер/хост).
Небольшой глоссарий (1 строка)
- uptime: время с последней загрузки системы.
- load average: средняя загрузка системы за 1/5/15 минут.
- /proc: виртуальная файловая система ядра для получения системной информации.
Советы по диагностике и отладке
- Если uptime показывает очень малое значение, проверьте логи на частые перезагрузки: journalctl -b -1 -e.
- Если uptime не совпадает с ожидаемым после миграций, уточните момент переключения в виртуализации.
- Для автоматизированных проверок используйте скрипт, который парсит /proc/uptime и отправляет оповещение при неожиданных перезагрузках.
Итог
Знание времени работы системы — простая и важная навык для администраторов и пользователей. Команды uptime, who, top и чтение файла /proc/uptime дают необходимые данные для оценки стабильности, диагностики и планирования обслуживания.
Поддерживайте короткие регулярные проверки и автоматически логируйте аномалии для своевременного реагирования.
Ключевые действия: проверьте uptime, сверьте с журналами и настройте мониторинг для долгосрочного наблюдения.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента