Làm thế nào để quản trị hệ thống của tôi biết rằng tôi chưa khởi động lại hệ thống của mình?


35

Tôi nhận được một email từ quản trị viên hệ thống của tôi nói rằng tôi cần khởi động lại hệ thống của mình để áp dụng một số bản vá. Tôi đã quên nó và sau một vài giờ tôi nhận được một bức thư khác nói với tôi rằng tôi vẫn chưa khởi động lại hệ thống của mình.

Tôi đã khởi động lại hệ thống của mình nhưng tôi ngạc nhiên làm sao họ biết tôi có khởi động lại máy hay không. Ai đó có thể giải thích làm thế nào điều này hoạt động?


10
Có lẽ bạn chỉ nên hỏi anh ấy?
Marco Ceppi

1
Wow, tôi không bao giờ nhận ra rằng có rất nhiều cách. Cảm ơn các bạn!
nikhil

Câu trả lời:


43

Cách nhanh chóng để kiểm tra điều này từ xa có thể được thực hiện bằng SNMP (với điều kiện SysAdmin của bạn đã thiết lập điều này trên mạng của bạn):

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

Nhiều khả năng, dữ liệu sẽ được thăm dò và lưu trữ trong một hệ thống quản lý / giám sát mạng thuộc loại nào đó (ví dụ Nagios hoặc Cacti).

Trong trường hợp bất cứ ai quan tâm đến việc chơi xung quanh với snmpwalklệnh, hãy xem câu trả lời tại đây để có được cấu hình SNMP cơ bản được thiết lập trên hệ thống của bạn.


Đẹp một. Một người nào đó ở đây đã tạo ra một kịch bản có vẻ hơi khó để duy trì và đoạn phim này trông rất hay: D Cảm ơn và có một upvote;)
Rinzwind

@Rinzwind Cảm ơn. Đây là một lớp lót khác đôi khi tôi sử dụngsudo hping3 -c 2 -p 80 --tcp-timestamp -S <IPaddress> 2>&1 | grep uptime
Kevin Bowen

Mọi phần mềm giám sát thông thường đều có thể thực hiện điều này, tuy nhiên SNMP là phần mềm phổ biến nhất và đây là một ví dụ hay. +1.
gertvdijk

28

Một phương pháp đơn giản sẽ là kiểm tra đầu ra của uptimelệnh, cho biết bạn đã chạy hệ thống bao lâu mà không tắt / khởi động lại.

Đầu ra mẫu:

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

Nó nói rằng hệ thống của tôi đã được bật trong 3 giờ 8 phút.

Quản trị viên có thể thiết lập một tập lệnh shell để sử dụng uptimehoặc sử dụng một số phương thức khác, như chi tiết trong liên kết này . Một phương pháp khác mà quản trị viên có thể sử dụng là thiết lập một email sẽ được gửi khi tắt hệ thống hoặc khởi động lại, các chi tiết có sẵn tại liên kết này .


COuld điều này được thực hiện từ xa nếu họ không có quyền truy cập để đăng nhập vào máy của tôi?
nikhil

1
Một quản trị viên chắc chắn sẽ có quyền truy cập vào hệ thống của bạn, cho mục đích quản trị. :)
saji89

5
không có khả năng @ saji89 Một quản trị viên có nhiều việc phải làm sau đó để kiểm tra mọi hệ thống cục bộ về thời gian hoạt động ...
Rinzwind

2
@Rinzwind, tôi đã không nói rằng anh ta nên sử dụng nó. Tôi chỉ chỉ ra rằng anh ta sẽ có quyền truy cập vào máy. Trong trường hợp cụ thể này, quản trị viên có lý do để kiểm tra. :)
saji89

1
À được rồi Nhưng tôi đã có những điều tốt hơn để làm sau đó để kiểm tra thời gian hoạt động của hệ thống;) @ saji89
Rinzwind

9

@ saji89 đã đề cập đến uptimelệnh. Tôi sẽ đi thấp hơn một bước, và chỉ cần khẳng định rằng sysadmin có một đoạn script ở đâu đó kết nối với mỗi máy tính và thực hiện một cat /proc/uptime(hoặc một cái gì đó tương đương). Trường đầu tiên của đầu ra là thời gian, tính bằng giây, do hệ thống được khởi động lại lần cuối, việc phân tích cú pháp dễ dàng hơn nhiều so với đầu ra của uptime. Ví dụ, máy tính của tôi cung cấp trường thời gian hoạt động đầu tiên 1441218.24với việc uptimequay lại up 16 days, 16:20. 1441218 giây là 16 ngày cộng với 58818 giây và 58818 giây là 16 1/3 giờ. 16 ngày 16 1/3 giờ.

Khi bạn biết độ dài tối đa thời gian kể từ khi hệ thống nên đã được khởi động lại, dữ liệu này làm cho nó tầm thường để kiểm tra xem hệ thống đã được khởi động lại kể từ đó hay không.

Nó có thể được thực hiện thông qua một công cụ giám sát như Nagios hoặc thông qua một tập lệnh riêng biệt mà sysadmin giữ trên máy tính của anh ấy (hoặc có thể truy cập thông qua nó, tôi tưởng tượng) kết nối với từng máy tính hoặc in song song và in thời gian kể từ lần khởi động lại cuối cùng ở một số định dạng. Đó là tất cả phụ thuộc vào cách làm công phu để làm cho nó.


8

Một cách khác, chỉ vì mục đích hoàn chỉnh, là xem /var/log/wtmpqua lệnh cuối cùng . Thí dụ:

$ 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

Phương pháp này là một yêu thích bởi vì nó cũng xảy ra là ghi nhớ hoàn hảo.

Q: When did the last reboot occur? 
A: Just type 'last reboot'

7

Khi một gói yêu cầu khởi động lại đã được cập nhật thông qua apt, một tệp được gọi reboot-requiredsẽ được tạo vào /var/run/. Sysadmin có thể kiểm tra sự hiện diện của tệp này từ xa để xác định xem có cần khởi động lại do cập nhật hay không.


OP được sysadmin yêu cầu khởi động lại máy tính "để áp dụng một số bản vá". Ít nhất với tôi, điều này ngụ ý rằng bản cập nhật thực tế xảy ra thông qua một số cơ chế trong quá trình khởi động . (Có thể một tập lệnh khởi động thực thi một cái gì đó dọc theo dòng apt-get -y upgrade.) Vì vậy, sẽ không có reboot-requiredbởi vì từ quan điểm của apt, chưa cần phải khởi động lại.
một CVn

2
Tôi nghi ngờ rằng đây là trường hợp, bởi vì người dùng sẽ phải khởi động lại hai lần nếu các bản cập nhật yêu cầu khởi động lại sau khi cài đặt và nếu không có bản cập nhật nào yêu cầu khởi động lại, sysadmin có thể chạy từ xa cùng tập lệnh đó và cập nhật trong nền . Không cần biết thêm, tôi đoán rằng đã có nâng cấp hình ảnh kernel (hoặc một cái gì đó khác yêu cầu khởi động lại) và người dùng phải khởi động lại để áp dụng kernel mới. Nhưng đây chỉ là phỏng đoán.
onik

2

Điều này ...

để áp dụng một số bản vá

là phần quan trọng.

Nếu quản trị viên giỏi, có lẽ anh ta sẽ thiết lập các bản cập nhật từ máy NGÀI để PC không phải tải xuống cùng một tệp từ web. Nếu vậy anh ta có thể nhìn thấy từ chính máy của mình, người đã tải xuống các bản vá.

Sau đó, anh ta chỉ phải xem các địa chỉ IP của những hệ thống đã tải các bản vá và gửi và gửi email cho những người không có. Email đó thậm chí có thể là một thư được tạo tự động. Hãy tưởng tượng có 500 máy. Kiểm tra thủ công từng người trong số họ là một sự lãng phí thời gian nếu có một số phương pháp mà anh ta có thể làm từ máy móc của chính mình.

1 lý do rất quan trọng để thực hiện theo cách này: quản trị viên cần có quyền kiểm soát những gì đang xảy ra trên các hệ thống mà anh ta cần duy trì. Vì vậy, anh ta phải luôn có một điểm kiểm soát duy nhất (ví dụ: máy riêng của anh ta nơi anh ta có tất cả các công cụ) nơi anh ta có thể thấy trạng thái của bất kỳ máy nào.


3
Bạn có thể cần phải khởi động lại để áp dụng các bản vá, không đảm bảo rằng việc tải xuống chỉ xảy ra khi khởi động lại.
Karthik T

2

Có một số phương pháp hợp lệ được mô tả trong các câu trả lời. Đăng nhập và kiểm tra thời gian hoạt động sẽ là lạ đối với một công ty lớn, nhưng có thể làm được cho một công ty nhỏ hơn. Sysadmin có thể đã được kiểm tra thông qua SNMP, nhưng đối số "rắc rối" tương tự có thể được sử dụng ở đó.

Các tình huống rất có thể là, theo như tôi quan tâm:

  1. Sysadmin chạy một số loại phần mềm kiểm tra, có thể là Nagios, kiểm tra các cụm máy tính xem có vấn đề gì không. Một cái gì đó như plugin NRPE sẽ được sử dụng cho hầu hết các hệ thống và có thể hiển thị cho bạn thời gian hoạt động (ngoài đĩa, người dùng đã đăng nhập, v.v.).
  2. Một phương pháp tương tự có thể được sử dụng để kiểm tra những gì đang chạy ở đâu. Nếu các bản vá được cập nhật có thể được kiểm tra (bạn đang sử dụng kernel nào), tập lệnh "tất cả người dùng được cập nhật" sẽ vẫn chỉ vào máy tính của bạn ở trạng thái 'xấu'.

1

Nếu hệ thống được kết nối với mạng mà anh ta điều khiển, sysadmin có thể chỉ cần nhìn vào công tắc hoặc máy chủ dhcp để xem kết nối mạng của bạn đã hoạt động được bao lâu. Điều đó cũng sẽ cho anh ta biết bạn chưa khởi động lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.