Як мій адміністратор sys знає, що я не перезавантажив систему?


35

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

З тих пір я перезавантажив свою систему, але я здивований, як вони могли б знати, чи перезавантажив я машину чи ні. Чи може хтось пояснити, як це працює?


10
Може, варто просто попросити його?
Марко Цеппі

1
Нічого собі, я ніколи не зрозумів, що існує стільки способів. Дякую, хлопці!
nikhil

Відповіді:


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 або Кактуси).

У разі якщо комусь цікаво пограти з 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або використання іншого методу, як це детально описано в цьому посиланні . Інший спосіб, який адміністратор може використовувати, - це налаштувати електронний лист, який надсилатиметься при відключенні або перезавантаженні системи, детальна інформація доступна за цим посиланням .


Чи можна це зробити дистанційно, якщо вони не мали доступу до моєї машини?
nikhil

1
Адміністратор, безумовно, матиме доступ до вашої системи в адміністративних цілях. :)
saji89

5
навряд чи @ saji89 У адміністратора є краще робити, щоб перевірити кожну систему на місцевості для
безперервного

2
@Rinzwind, я не говорив, що він повинен ним користуватися. Я тільки вказував, що він матиме доступ до машини. У цьому конкретному випадку у адміністратора були причини перевірити. :)
saji89

1
Ну, тоді добре. Але мені було краще зробити, щоб перевірити час роботи системи;) @ saji89
Rinzwind

9

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

Коли ви знаєте максимальну довжину часу , так як система повинна бути перезавантажена, ці дані роблять його тривіальним , щоб перевірити, якщо система була перезавантажена з тих пір чи ні.

Це можна зробити через інструмент моніторингу, такий як Nagios, або через окремий скрипт, який систематик зберігає на своєму комп’ютері (або, скоріше, доступний через нього, я думаю, що), який підключається до кожного комп'ютера по черзі або паралельно і друкує час з останньої перезавантаження в якомусь форматі. Все залежить від того, наскільки складно це зробити.


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'

7

Коли пакет , який вимагає перезавантаження оновлений через apt, файл з ім'ям reboot-requiredстворюється в /var/run/. Sysadmin може перевірити наявність цього файлу віддалено, щоб визначити, чи потрібна перезавантаження через оновлення.


ОП попросило sysadmin перезавантажити комп'ютер, "щоб застосувати деякі виправлення". Принаймні, для мене це означає, що фактичне оновлення відбувається через якийсь механізм під час завантаження . (Можливо, сценарій завантаження виконує щось за рядками apt-get -y upgrade.) Тому цього не було б, reboot-requiredоскільки з точки зору apt перезавантаження ще не потрібно.
CVn

2
Я сумніваюся, що це так, тому що користувачеві доведеться перезавантажити двічі, якщо для оновлення потрібна перезавантаження після встановлення, а якщо немає оновлень, які потребують перезавантаження, sysadmin може просто віддалено запустити цей самий сценарій та оновити у фоновому режимі . Не знаючи більше, я б здогадався, що відбулося оновлення зображення ядра (або щось інше, що вимагає перезавантаження), і користувачеві довелося перезавантажити, щоб застосувати нове ядро. Але це лише здогадки.
onik

2

Цей ...

застосувати деякі патчі

є ключовою частиною.

Якщо адміністратор корисний, він, ймовірно, встановив оновлення з його машини, тому ПК не повинен завантажувати той самий файл з Інтернету. Якщо так, він може бачити з власної машини, яка завантажувала патчі.

Тоді йому залишається лише подивитися IP-адреси тих систем, які завантажували патчі, а також надсилати та надсилати електронну пошту тим, хто цього не зробив. Цей електронний лист навіть може бути автоматично створеною поштою. Уявіть, що там 500 машин. Перевірка кожного з них вручну - це марна трата часу, якщо існує кілька методів, де він може зробити з власної махімії.

1 дуже важлива причина для цього таким чином: адміністратору необхідно мати контроль над тим, що відбувається в системах, які він повинен підтримувати. Тому він повинен завжди мати єдину точку управління (тобто свою власну машину, де він має всі інструменти), де він може бачити стан будь-якої машини.


3
Можливо, вам доведеться перезавантажити, щоб застосувати виправлення, ніякої гарантії, що завантаження відбудеться лише при перезавантаженні.
Karthik T

2

Існує кілька дійсних методів, описаних у відповідях. Увійти в систему та перевірити час роботи для великої компанії було б дивним, але для меншої. Sysadmin міг перевірятись за допомогою SNMP, але там же може бути використаний той самий аргумент "неприємності".

Що стосується мене, найімовірніші ситуації:

  1. Система керує якоюсь програмою перевірки, можливо, Nagios, яка перевіряє кластери комп'ютера на наявність проблем. Щось на зразок плагіну NRPE буде використовуватися для більшості систем і може показати вам час роботи (крім диска, ввійшли користувачів тощо).
  2. Подібний метод можна використовувати для перевірки того, що працює де. Якщо патчі, що підлягають оновленню, можна перевірити (яке ядро ​​ви використовуєте), сценарій "усі користувачі оновлені" все ще вказуватиме на ваш комп'ютер на те, що він знаходиться в поганому стані.

1

Якщо система підключена до мережі, яку він контролює, sysadmin може просто подивитися на комутатор або dhcp-сервер, щоб побачити, як довго ваше мережне з'єднання було активним. Це також скаже йому, що ви не перезавантажувались.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.