Как мой системный администратор узнал, что я не перезагружал свою систему?

35

Я получил электронное письмо от системного администратора, в котором говорилось, что мне нужно перезагрузить систему, чтобы применить некоторые исправления. Я забыл об этом, и через пару часов мне пришло другое письмо, в котором говорилось, что я еще не перезагрузил систему.

С тех пор я перезагрузил свою систему, но я удивлен, как они узнали бы, перезагрузил ли я свою машину или нет. Может кто-нибудь объяснить, как это работает?

Нихилу
источник
10
Может быть, вы должны просто спросить его?
Марко Чеппи
1
Вау, я так и не понял, что существует так много способов. Спасибо, парни!
Нихил

Ответы:

43

Быстрый способ проверить это удаленно можно с помощью SNMP (при условии, что ваш SysAdmin настроил это в вашей сети):

admin@yourcompany:~$ snmpwalk -v 2c -c <snmpstring> MachineName sysUpTimeInstance
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (9461615) 1 day, 2:16:56.15

Скорее всего, данные будут опрашиваться и храниться в какой-либо системе управления / мониторинга сети (например, Nagios или Cacti).

Если кому-то интересно поиграть с snmpwalkкомандой, посмотрите ответ здесь, чтобы получить базовую конфигурацию SNMP, установленную в вашей системе.

Кевин Боуэн
источник
Хороший. Кто-то здесь создал сценарий, который выглядит немного сложным в обслуживании, и этот лайнер выглядит неплохо: D Спасибо и приветствуем;)
Rinzwind
@Rinzwind Спасибо. Вот еще одна строчка, которую я иногда используюsudo hping3 -c 2 -p 80 --tcp-timestamp -S <IPaddress> 2>&1 | grep uptime
Кевин Боуэн
Это можно сделать с помощью любого обычного программного обеспечения для мониторинга, однако SNMP является наиболее распространенным, и это хороший пример. +1.
gertvdijk
28

Простым способом будет проверка выходных данных uptimeкоманды, которая показывает, как долго вы работали с системой без выключения / перезапуска.

Пример вывода:

saji@geeklap:~$ uptime
12:41:29 up  3:08,  2 users,  load average: 1.06, 0.85, 0.86

Там написано, что моя система была включена 3 часа 8 минут.

Администратор может настроить сценарий оболочки, чтобы использовать uptimeили использовать какой-либо другой метод, как подробно описано в этой ссылке . Другой метод, который может использовать администратор, - настроить электронную почту, которая будет отправлена ​​при выключении или перезагрузке системы, подробности доступны по этой ссылке .

saji89
источник
Может ли это быть сделано удаленно, если у них не было доступа для входа на мою машину?
Нихил
1
Администратор наверняка будет иметь доступ к вашей системе в административных целях. :)
saji89
5
неправдоподобно @ saji89 У администратора есть дела поважнее, чем локально проверять каждую систему на работоспособность ...
Rinzwind
2
@Rinzwind, я не говорил, что он должен использовать это. Я просто указывал, что у него будет доступ к машине. В данном конкретном случае у администратора были причины для проверки. :)
saji89
1
Ах хорошо. Но у меня есть дела поважнее, чтобы проверить работоспособность систем;) @ saji89
Rinzwind
9

@ saji89 упомянул uptimeкоманду. Я пойду на шаг ниже и просто скажу, что у системного администратора есть сценарий, который подключается к каждому компьютеру и выполняет cat /proc/uptime(или что-то эквивалентное). Первое поле выходных данных - это время в секундах с момента последней перезагрузки системы, которое гораздо проще анализировать, чем выходные данные uptime. Например, мой компьютер выдает первое поле доступности 1441218.24с uptimeвозвратом up 16 days, 16:20. 1441218 секунд - это 16 дней плюс 58818 секунд, а 58818 секунд - 16 1/3 часа. 16 дней 16 1/3 часа.

Когда вы знаете максимальный промежуток времени, с которого система должна была быть перезагружена, эти данные упрощают проверку того, была ли система перезагружена с тех пор или нет.

Это может быть сделано с помощью инструмента мониторинга, такого как Nagios, или с помощью отдельного скрипта, который системный администратор хранит на своем компьютере (или, скорее, через него, я думаю, доступным), который подключается к каждому компьютеру по очереди или параллельно и печатает время. с момента последней перезагрузки в каком-то формате. Это все зависит от того, насколько тщательно это сделать.

CVn
источник
8

Другой способ, просто ради полноты, посмотреть /var/log/wtmpчерез последнюю команду. Пример:

$ last reboot
reboot   system boot  3.2.0-36-generic Thu Jan 24 16:25 - 17:42 (1+01:17)   

wtmp begins Tue Jan  1 06:30:03 2013

Этот метод является любимым, потому что он также является идеальной мнемоникой.

Q: When did the last reboot occur? 
A: Just type 'last reboot'
arielf
источник
7

Когда пакет , который требует перезагрузки обновлен через apt, файл с именем reboot-requiredсоздается в /var/run/. Системный администратор может удаленно проверить наличие этого файла, чтобы определить, требуется ли перезагрузка из-за обновлений.

Оник
источник
Системный администратор попросил OP перезагрузить компьютер, чтобы «применить некоторые исправления». По крайней мере, для меня это означает, что фактическое обновление происходит через какой-то механизм во время процесса загрузки . (Может быть, загрузочный скрипт выполняет что-то вроде apt-get -y upgrade.) Так что не будет, reboot-requiredпотому что с точки зрения apt, перезагрузка еще не требуется.
CVN
2
Я сомневаюсь, что это так, потому что пользователю придется дважды перезагружаться, если обновления требуют перезагрузки после установки, и если нет обновлений, требующих перезагрузки, системный администратор может просто удаленно запустить этот же скрипт и обновить в фоновом режиме. , Не зная больше, я бы предположил, что произошло обновление образа ядра (или что-то еще, требующее перезагрузки), и пользователь должен был перезагрузиться, чтобы применить новое ядро. Но это только догадки.
onik
2

Это ...

применить некоторые патчи

это ключевая часть.

Если администратор хорош, он, вероятно, настроил обновления с компьютера HIS, чтобы ПК не загружал один и тот же файл из Интернета. Если это так, он может видеть со своей машины, кто скачал патчи.

Затем ему нужно только посмотреть IP-адреса тех систем, которые загрузили исправления и отправить их по электронной почте тем, кто этого не сделал. Это письмо может быть даже автоматически сгенерированным. Представьте, что есть 500 машин. Проверка каждого из них вручную - пустая трата времени, если есть несколько методов, которые он может сделать из своего собственного оборудования.

Одна очень важная причина сделать это следующим образом: администратор должен контролировать, что происходит в системах, которые он должен поддерживать. Таким образом, у него всегда должна быть единственная точка контроля (т. Е. Его собственная машина, где у него есть все инструменты), где он может видеть состояние любой машины.

Rinzwind
источник
3
Вам может потребоваться перезагрузка, чтобы применить исправления, без гарантии, что загрузка происходит только при перезагрузке.
Картик T
2

Есть несколько допустимых методов, описанных в ответах. Вход в систему и проверка работоспособности были бы странными для большой компании, но выполнимыми для небольшой. Системный администратор мог проверять через SNMP, но там мог использоваться тот же аргумент «проблема».

Насколько мне известно, наиболее вероятные ситуации:

  1. Системный администратор запускает какое-то программное обеспечение для проверки, возможно, Nagios, которое проверяет кластеры компьютера на наличие проблем. Нечто подобное плагину NRPE будет использоваться для большинства систем и может показать вам время безотказной работы (кроме диска, зарегистрированных пользователей и т. Д.).
  2. Подобный метод может быть использован для проверки того, что работает где. Если можно проверить исправления, которые будут обновлены (какое ядро ​​вы используете), сценарий «все пользователи обновлены» будет по-прежнему указывать на ваш компьютер, который находится в «плохом» состоянии.
Nanne
источник
1

Если система подключена к сети, которой он управляет, системный администратор может просто посмотреть на коммутатор или dhcp-сервер, чтобы увидеть, как долго ваше сетевое соединение активно. Это также скажет ему, что вы еще не перезагрузились.

Деннис Каарсемакер
источник