Bagaimana admin sistem saya tahu bahwa saya belum mem-boot ulang sistem saya?

35

Saya mendapat email dari administrator sistem saya yang mengatakan bahwa saya perlu me-reboot sistem saya untuk menerapkan beberapa tambalan. Saya sudah lupa tentang hal itu dan setelah beberapa jam saya mendapat surat lain yang mengatakan bahwa saya belum me-reboot sistem saya.

Sejak itu saya me-reboot sistem saya, tetapi saya terkejut bagaimana mereka tahu jika saya me-reboot mesin saya atau tidak. Adakah yang bisa menjelaskan cara kerjanya?

nikhil
sumber
10
Mungkin Anda harus bertanya padanya?
Marco Ceppi
1
Wow, saya tidak pernah menyadari bahwa ada banyak cara. Terima kasih kawan!
nikhil

Jawaban:

43

Cara cepat untuk memeriksa ini dari jarak jauh dapat dilakukan menggunakan SNMP (asalkan SysAdmin Anda telah mengatur ini di jaringan Anda):

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

Kemungkinan besar, data akan disurvei dan disimpan dalam semacam manajemen jaringan / sistem pemantauan (mis. Nagios atau Cacti).

Jika ada yang tertarik untuk bermain-main dengan snmpwalkperintah, lihat jawabannya di sini untuk mendapatkan konfigurasi SNMP dasar yang telah diatur di sistem Anda.

Kevin Bowen
sumber
Bagus Seseorang di sini membuat skrip yang terlihat agak sulit untuk dipelihara dan liner yang satu ini terlihat bagus: D Terima kasih dan dapatkan upvote;)
Rinzwind
@Rinzwind Terima kasih. Inilah satu kalimat lain yang kadang saya gunakansudo hping3 -c 2 -p 80 --tcp-timestamp -S <IPaddress> 2>&1 | grep uptime
Kevin Bowen
Setiap perangkat lunak pemantauan reguler dapat melakukan ini, namun SNMP adalah yang paling umum dan ini contoh yang bagus. +1.
gertvdijk
28

Metode sederhana akan memeriksa output dari uptimeperintah, yang menunjukkan berapa lama Anda telah menjalankan sistem tanpa shutdown / restart.

Output sampel:

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

Dikatakan bahwa sistem saya telah dinyalakan selama 3 jam dan 8 menit.

Admin dapat mengatur skrip shell untuk menggunakan uptimeatau menggunakan beberapa metode lain, sebagaimana dirinci dalam tautan ini . Metode lain yang dapat digunakan admin adalah mengatur email untuk dikirim pada saat sistem dimatikan atau dihidupkan ulang, detailnya tersedia di tautan ini .

disajikan89
sumber
BISA ini dilakukan dari jarak jauh jika mereka tidak memiliki akses untuk masuk ke mesin saya?
nikhil
1
Seorang admin pasti akan memiliki akses ke sistem Anda, untuk keperluan administrasi. :)
saji89
5
tidak mungkin @ saji89 Seorang admin memiliki hal-hal yang lebih baik untuk dilakukan kemudian memeriksa setiap sistem secara lokal untuk waktu aktif ...
Rinzwind
2
@Rinzwind, saya tidak mengatakan bahwa dia seharusnya menggunakannya. Saya baru saja menunjukkan bahwa dia akan memiliki akses ke mesin. Dalam kasus khusus ini, admin punya alasan untuk memeriksa. :)
saji89
1
Ah baiklah. Tapi aku punya hal-hal yang lebih baik untuk dilakukan kemudian untuk memeriksa uptime sistem;) @ saji89
Rinzwind
9

@ saji89 menyebutkan uptimeperintah. Saya akan turun satu langkah lebih rendah, dan hanya berpendapat bahwa sysadmin memiliki skrip di suatu tempat yang terhubung ke setiap komputer dan melakukan cat /proc/uptime(atau sesuatu yang setara). Bidang pertama dari output adalah waktu, dalam detik, sejak sistem terakhir kali di-boot ulang, yang jauh lebih mudah untuk diurai daripada output dari uptime. Sebagai contoh, komputer saya memberikan bidang uptime pertama 1441218.24dengan uptimepengembalian up 16 days, 16:20. 1441218 detik adalah 16 hari plus 58818 detik, dan 58818 detik adalah 16 1/3 jam. 16 hari 16 1/3 jam.

Ketika Anda mengetahui jangka waktu maksimum sejak sistem seharusnya di -reboot, data ini membuatnya mudah untuk memeriksa untuk melihat apakah sistem telah di-reboot sejak saat itu atau tidak.

Itu bisa dilakukan melalui alat pemantauan seperti Nagios, atau melalui skrip terpisah yang disimpan sysadmin di komputernya (atau lebih tepatnya dapat diakses melaluinya, saya bayangkan) yang menghubungkan ke setiap komputer secara bergantian atau paralel dan mencetak waktu. sejak reboot terakhir dalam beberapa format. Itu semua tergantung bagaimana rumitnya membuatnya.

sebuah CVn
sumber
8

Cara lain, hanya demi kelengkapan, adalah dengan melihat /var/log/wtmpmelalui perintah terakhir . Contoh:

$ 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

Metode ini adalah favorit karena kebetulan juga merupakan mnemonik yang sempurna.

Q: When did the last reboot occur? 
A: Just type 'last reboot'
diri sendiri
sumber
7

Ketika sebuah paket yang membutuhkan reboot telah diperbarui via apt, file yang dipanggil reboot-requireddibuat menjadi /var/run/. Sysadmin dapat memeriksa keberadaan file ini dari jarak jauh untuk menentukan apakah reboot diperlukan karena pembaruan.

onik
sumber
OP diminta oleh sysadmin untuk me-reboot komputer "untuk menerapkan beberapa tambalan". Setidaknya bagi saya, ini menyiratkan bahwa pembaruan aktual terjadi melalui beberapa mekanisme selama proses boot . (Mungkin skrip boot menjalankan sesuatu di sepanjang baris apt-get -y upgrade.) Jadi tidak akan ada reboot-requiredkarena dari sudut pandang apt, reboot belum diperlukan.
CVn
2
Saya ragu bahwa ini masalahnya, karena pengguna harus reboot dua kali jika pembaruan memerlukan reboot setelah menginstal, dan jika tidak ada pembaruan yang memerlukan reboot, sysadmin hanya bisa menjalankan skrip yang sama dan memperbarui di latar belakang. . Tanpa tahu lebih banyak, saya kira ada peningkatan citra kernel (atau sesuatu yang membutuhkan reboot), dan pengguna harus reboot untuk menerapkan kernel baru. Tapi ini hanya dugaan saja.
onik
2

Ini ...

untuk menerapkan beberapa tambalan

adalah bagian kuncinya.

Jika adminnya bagus, dia mungkin mengatur pembaruan dari mesin HIS sehingga PC tidak perlu mengunduh file yang sama dari web. Jika demikian, ia dapat melihat dari mesinnya sendiri yang mengunduh patch.

Dia kemudian hanya perlu melihat alamat IP dari sistem yang memuat patch dan mengirim dan mengirim email ke yang tidak. Email itu bahkan dapat berupa surat yang dibuat secara otomatis. Bayangkan ada 500 mesin. Memeriksa masing-masing secara manual adalah buang-buang waktu jika ada beberapa metode yang bisa ia lakukan dari machime sendiri.

Salah satu alasan yang sangat penting untuk melakukannya dengan cara ini: admin perlu memiliki kendali atas apa yang terjadi pada sistem yang perlu dipelihara. Jadi ia harus selalu memiliki satu titik kontrol (yaitu. Mesinnya sendiri di mana ia memiliki semua alat) di mana ia dapat melihat status mesin apa pun.

Rinzwind
sumber
3
Anda mungkin perlu reboot untuk menerapkan tambalan, tidak ada jaminan bahwa unduhan hanya terjadi pada saat reboot.
Karthik T
2

Ada beberapa metode valid yang dijelaskan dalam jawaban. Masuk dan memeriksa uptime akan aneh untuk perusahaan besar, tetapi bisa dilakukan untuk yang lebih kecil. Sysadmin bisa saja memeriksa melalui SNMP, tetapi argumen "masalah" yang sama bisa digunakan di sana.

Situasi yang paling mungkin adalah, sejauh yang saya ketahui:

  1. Sysadmin menjalankan semacam pemeriksaan-perangkat lunak, mungkin Nagios, yang memeriksa kelompok komputer untuk masalah. Sesuatu seperti plugin NRPE akan digunakan untuk sebagian besar sistem dan dapat menunjukkan Anda uptime (terlepas dari disk, pengguna yang masuk, dll).
  2. Metode serupa dapat digunakan untuk memeriksa apa yang sedang berjalan di mana. Jika patch yang harus diperbarui dapat diperiksa (kernel apa yang Anda gunakan), skrip "semua pengguna diperbarui" masih akan menunjuk ke komputer Anda karena berada dalam kondisi 'buruk'.
Nanne
sumber
1

Jika sistem terhubung ke jaringan yang dikontrolnya, sysadmin dapat dengan mudah melihat sakelar atau server dhcp untuk melihat berapa lama koneksi jaringan Anda telah aktif. Itu juga akan memberitahunya Anda belum reboot.

Dennis Kaarsemaker
sumber