it-swarm-id.com

Bagaimana cara mengetahui dari log apa yang menyebabkan shutdown sistem?

Misalnya. Saya melihat ini di /var/log/messages:

Mar 01 23:12:34 hostname shutdown: shutting down for system halt

Apakah ada cara untuk mengetahui apa yang menyebabkan shutdown? Misalnya. apakah dijalankan dari konsol, atau seseorang menekan tombol daya, dll?

123
alex

Hanya root program istimewa yang dapat mematikan sistem dengan anggun. Jadi ketika sistem dimatikan dengan cara normal, itu adalah pengguna dengan hak akses root atau skrip acpi. Dalam kedua kasus, Anda dapat mengetahuinya dengan memeriksa log. Sebuah shutdown acpi dapat disebabkan oleh tombol power tekan, terlalu panas atau baterai rendah (laptop). Saya lupa alasan ketiga, perangkat lunak UPS ketika catu daya gagal, yang tetap akan mengirim peringatan.

Baru-baru ini saya memiliki sistem yang mulai berulang kali untuk mematikan dengan tidak berterima kasih, ternyata itu terlalu panas dan mobo dikonfigurasi untuk hanya mematikan lebih awal. Sistem tidak memiliki kesempatan untuk menyimpan log, tetapi untungnya memantau suhu sistem menunjukkan sistem mulai meningkat sesaat sebelum dimatikan.

Jadi, jika ini adalah shutdown normal, itu akan dicatat, jika ini intrusi ... semoga berhasil, dan jika ini adalah shutdown dingin, kesempatan terbaik Anda untuk mengetahuinya adalah mengontrol dan memantau lingkungannya.

50
forcefsck

Coba perintah berikut:

Tampilkan daftar entri reboot terakhir: last reboot | less

Tampilkan daftar entri shutdown terakhir: last -x | less

atau lebih tepatnya: last -x | grep shutdown | less

Anda tidak akan tahu siapa yang melakukannya. Jika Anda ingin tahu siapa yang melakukannya, Anda perlu menambahkan sedikit kode yang berarti Anda akan tahu lain kali.

Saya menemukan sumber ini daring. Mungkin bermanfaat bagi Anda:

Cara mencari tahu siapa atau apa yang menghentikan sistem saya

127

Anda harus memeriksa 2 hal:

  1. Output dari perintah -x terakhir
  2. File log di /var/log/

Gunakan 2 perintah ini dan terus membaca untuk informasi lebih lanjut.

last -x | head | tac

grep -iv ': starting\|kernel: .*: Power Button\|watching system buttons\|Stopped Cleaning Up\|Started Crash recovery kernel' \
  /var/log/messages /var/log/syslog /var/log/apcupsd* \
  | grep -iw 'recover[a-z]*\|power[a-z]*\|shut[a-z ]*down\|rsyslogd\|ups'

1) Mengenai output dari perintah -x terakhir

Jalankan perintah ini * dan bandingkan hasilnya dengan contoh di bawah ini:

last -x | head | tac

Contoh shutdown normal

Shutdown dan power-up yang normal terlihat seperti ini (perhatikan bahwa Anda memiliki acara shutdown dan kemudian peristiwa boot sistem):

runlevel (to lvl 0)   2.6.32- Sat Mar 17 08:48 - 08:51  (00:02) 
shutdown system down  ... <-- first the system shuts down   
reboot   system boot  ... <-- afterwards the system boots
runlevel (to lvl 3)       

Dalam beberapa kasus, Anda mungkin melihat ini (perhatikan bahwa tidak ada baris tentang shutdown tetapi sistem pada runlevel 0 yang merupakan "keadaan berhenti"):

runlevel (to lvl 0)   ... <-- first the system shuts down (init level 0)
reboot   system boot  ... <-- afterwards the system boots
runlevel (to lvl 2)   2.6.24-... Fri Aug 10 15:58 - 15:32 (2+23:34)   

Contoh shutdown yang tidak terduga

Shutdown yang tak terduga dari kehilangan daya terlihat seperti ini (perhatikan bahwa Anda memiliki acara boot sistem tanpa kejadian shutdown sistem sebelumnya):

runlevel (to lvl 3)   ... <-- the system was running since this momemnt
reboot   system boot  ... <-- then we've a boot WITHOUT a prior shutdown
runlevel (to lvl 3)   3.10.0-693.21.1. Sun Jun 17 15:40 - 09:51  (18:11)    

2) Mengenai log di/var/log /

Perintah bash untuk memfilter pesan log paling menarik adalah ini:

grep -iv ': starting\|kernel: .*: Power Button\|watching system buttons\|Stopped Cleaning Up\|Started Crash recovery kernel' \
  /var/log/messages /var/log/syslog /var/log/apcupsd* \
  | grep -iw 'recover[a-z]*\|power[a-z]*\|shut[a-z ]*down\|rsyslogd\|ups'

Ketika matikan yang tidak terduga atau kegagalan perangkat keras terjadi, sistem file tidak akan di-unmount dengan benar sehingga pada boot berikutnya Anda mungkin mendapatkan log seperti ini:

EXT4-fs ... INFO: recovery required ... 
Starting XFS recovery filesystem ...
systemd-fsck: ... recovering journal
systemd-journald: File /var/log/journal/.../system.journal corrupted or uncleanly shut down, renaming and replacing.

Ketika sistem mati karena pengguna menekan tombol daya Anda mendapatkan log seperti ini:

systemd-logind: Power key pressed.
systemd-logind: Powering Off...
systemd-logind: System is powering down.

Hanya ketika sistem dimatikan tertib Anda mendapatkan log seperti ini:

rsyslogd: ... exiting on signal 15

Ketika sistem dimatikan karena terlalu panas Anda mendapatkan log seperti ini:

critical temperature reached...,shutting down

Jika Anda memiliki UPS dan menjalankan daemon untuk memantau daya dan shutdown, Anda harus memeriksa log-nya (NUT log on/var/log/messages tetapi log apcupsd di/var/log/apcupsd *)


Catatan

*: Inilah uraian last dari halaman manualnya:

last [...] prints information about connect times of users. 
Records are printed from most recent to least recent.  
[...]
The special users reboot and shutdown log in when the system reboots
or (surprise) shuts down. 

Kami menggunakan head untuk menyimpan 10 acara terbaru dan kami menggunakan tac untuk membalikkan urutan sehingga kami tidak bingung dengan fakta bahwa cetakan terakhir dari yang paling baru hingga yang paling baru.

26
ndemou

Beberapa file log yang mungkin untuk dijelajahi: (menemukan sistem Ubuntu, tapi saya berharap mereka ada di sebagian besar sistem Linux/Unix)

/var/log/debug
/var/log/syslog (will be pretty full and may be harder to browse)
/var/log/user.log
/var/log/kern.log
/var/log/boot

Sekali lagi, file-file log ini hadir pada sistem Ubuntu, jadi nama file mungkin berbeda. Perintah tail adalah teman Anda.

11
user6148

Sederhanakan menggunakan last menampilkan entri shutdown sistem dan menjalankan perubahan level dan memfilter pada shutdown dan reboot:

last -x shutdown reboot
8
jhvaras

Tidak sepenuhnya memuaskan

Saya memiliki kebutuhan yang sama pada Debian 7.8 dan mengamati bahwa pada dasarnya tidak ada pesan yang jelas dan eksplisit dalam log, yang sedikit mengejutkan.

Grep melalui /var/log akan memberi tahu waktu mesin dimatikan, menunjukkan daemon shutdown yang tepat, dll, tetapi bukan alasan awal.

shutdown[25861]: shutting down for system halt

Solusi lain yang disebutkan (last -x) tidak banyak membantu.

Mencari cara kerjanya

Membaca /etc/acpi/powerbtn-acpi-support.sh yang meliputi:

 jika [-x /etc/acpi/powerbtn.sh]; lalu 
 # Kompatibilitas dengan skrip konfigurasi lama dari paket acpid 
 /etc/acpi/powerbtn.sh[.____.[Elif [-x /etc/acpi/powerbtn.sh.dpkg-bak] ; lalu 
 # Kompatibilitas dengan skrip konfigurasi lama dari paket acpid 
 # yang masih ada karena diubah oleh admin 
 /etc/acpi/powerbtn.sh.dpkg-bak 
 else 
 # Penanganan normal. 
/sbin/shutdown -h -P sekarang "Tombol daya ditekan" 
 fi 

Perhatikan bahwa teks eksplisit diberikan sebagai parameter dari perintah shutdown. Saya berharap string itu akan dicatat secara otomatis oleh program shutdown.

Menyesuaikan log yang lebih baik

Bagaimanapun, untuk mendapatkan pesan eksplisit saya meletakkan teks di bawah ini (sebagai root) di /etc/acpi/powerbtn.sh yang baru dibuat dapat dieksekusi dengan chmod a+x /etc/acpi/powerbtn.sh

 #!/bin/sh 
 logger di /etc/acpi/powerbtn.sh, mungkin "Tombol daya ditekan" 
/sbin/shutdown -h -P sekarang "Tombol daya ditekan "

Melakukannya dengan cara ini mungkin akan membuat perubahan yang lebih tahan lama daripada memodifikasi /etc/acpi/powerbtn-acpi-support.sh. Opsi terakhir mungkin akan kehilangan efeknya pada peningkatan paket acpi-support-base berikutnya.

Perhatikan bahwa Ubuntu 14.04 melakukannya secara berbeda (/etc/acpi/powerbtn.sh sudah ada dengan konten berbeda dari paket acpid). Juga, Debian 8 mungkin melakukannya secara berbeda. Jangan ragu untuk menawarkan varian.

Keuntungan!

Dan sekarang ketika tombol power ditekan, garis seperti di bawah ini muncul di /var/log/messages, /var/log/syslog dan /var/log/user.log:

logger: in /etc/acpi/powerbtn.sh, presumably Power button pressed

Nah, itu pesan eksplisit di log.

8

Saya hanya punya ide canggung, tapi mungkin itu bekerja untuk Anda: masukkan perintah last dan periksa informasi login untuk semua pengguna. kemudian, filter pengguna dengan izin yang diperlukan untuk halt yang telah masuk pada saat itu. kemudian periksa file .bash_history mereka untuk melihat apakah mereka telah menghentikan atau tidak.

4
sazary

Dalam kasus saya, saya punya masalah overheating dan menemukan log in/var/log/syslog oleh 'grep shut *' di folder/var/log.

Kesalahan yang dicatat adalah ini:

Feb 23 15:59:49 luca-LIFEBOOK-A530 kernel: [24746.497174] thermal thermal_zone0: critical temperature reached(99 C),shutting down
1
luandrea

Hanya chip di itu pada KVM VM (di mana saya bertanya-tanya apakah Host reboot melakukan shutdown bersih tamu), saya menemukan apa yang saya butuhkan di /var/log/auth.log (sebagai tambahannya last -x shutdown menunjukkan hal yang sama). Di sana garis-garis ini muncul:

Sep  3 23:56:31 Web systemd-logind[531]: Power key pressed.
Sep  3 23:56:31 Web systemd-logind[531]: Powering Off...
Sep  3 23:56:31 Web systemd-logind[531]: System is powering down.
Sep  3 23:55:45 Web systemd-logind[591]: New seat seat0.
Sep  3 23:55:45 Web systemd-logind[591]: Watching system buttons on /dev/input/event0 (Power Button)
Sep  3 23:55:54 Web sshd[805]: Server listening on 0.0.0.0 port 22.
Sep  3 23:55:54 Web sshd[805]: Server listening on :: port 22.

last -x menunjukkan baris-baris ini, perhatikan bahwa mereka sedang dicetak --- paling baru-baru-pertama urutan (yaitu membaca baris terakhir terlebih dahulu, dan kemudian naik), tetapi karena reset jam (23: 56 sebelum boot, 23:55 setelah) juga terlihat pada baris sebelumnya, urutannya agak membingungkan:

runlevel (to lvl 2)   3.13.0-129-gener Sun Sep  3 23:55 - 22:04  (22:08)    
reboot   system boot  3.13.0-129-gener Sun Sep  3 23:55 - 22:04  (22:08)    
shutdown system down  3.13.0-123-gener Sun Sep  3 23:56 - 23:55  (00:00)    
runlevel (to lvl 0)   3.13.0-123-gener Sun Sep  3 23:56 - 23:56  (00:00)

Untuk bagian saya, memeriksa bahwa tamu benar-benar ditutup ketika Host di-boot, saya juga bisa masuk ke (ssh) salah satu tamu, dan tetap di sana ketika saya mem-boot Host, mendapatkan baris-baris ini di terminal:

[email protected]:~#
Broadcast message from [email protected]
        (unknown) at 22:25 ...

The system is going down for power off NOW!
Connection to web closed by remote Host.
Connection to web closed.
1
stolsvik

alias shutdown ke skrip
skrip harus memberikan semua parameter, dll ke eksekusi shutdown asli
TAPI: skrip harus mencatat ini

0
LanceBaynes