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 power, dll?
/var/log/acpid
: ternyata tombol power dipukul. Ada ide lain, di mana mencarinya jika acpid tidak memberikan petunjuk?Jawaban:
Hanya root program istimewa yang dapat mematikan sistem dengan anggun. Jadi ketika sebuah 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 akan mengirim peringatan.
Baru-baru ini saya memiliki sistem yang mulai berulang kali mati tanpa daya, ternyata itu terlalu panas dan mobo dikonfigurasi untuk hanya mematikan 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 itu intrusi ... semoga berhasil, dan jika ini adalah shutdown dingin, kesempatan terbaik Anda untuk mengetahuinya adalah mengontrol dan memantau lingkungannya.
sumber
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:
Bagaimana mencari tahu siapa atau apa yang menghentikan sistem saya
sumber
last -x shutdown
Ada beberapa hal yang perlu diperiksa:
Periksa output dari perintah -x terakhir
Jalankan perintah ini * dan bandingkan hasilnya dengan contoh di bawah ini:
Contoh shutdown normal
Shutdown dan power-up yang normal terlihat seperti ini (perhatikan bahwa Anda memiliki acara shutdown dan kemudian peristiwa boot sistem):
Dalam beberapa kasus, Anda mungkin melihat ini (perhatikan bahwa tidak ada baris tentang shutdown tetapi sistem pada runlevel 0 yang merupakan "keadaan berhenti"):
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):
Periksa log di / var / log
Perintah bash untuk memfilter pesan log paling menarik adalah ini:
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:
Ketika sistem mati karena pengguna menekan tombol daya Anda mendapatkan log seperti ini:
Hanya ketika sistem dimatikan tertib Anda mendapatkan log seperti ini:
Ketika sistem dimatikan karena terlalu panas Anda mendapatkan log seperti ini:
Jika Anda memiliki UPS dan menjalankan daemon untuk memantau daya dan shutdown, Anda harus memeriksa lognya (NUT log on / var / log / messages tetapi log apcupsd di / var / log / apcupsd *)
Catatan
*: Berikut deskripsi dari
last
halaman manualnya:Kami menggunakan
head
untuk menyimpan 10 acara terbaru dan kami gunakantac
untuk membalikkan pemesanan sehingga kami tidak bingung dengan fakta bahwa cetakan terakhir dari yang terbaru ke yang paling baru.sumber
tac
perintahBeberapa file log yang mungkin untuk dijelajahi: (menemukan sistem Ubuntu, tapi saya berharap mereka ada di sebagian besar sistem Linux / Unix)
Sekali lagi, file-file log ini hadir pada sistem Ubuntu, jadi nama file mungkin berbeda. The
tail
perintah adalah teman Anda.sumber
Sederhanakan menggunakan
last
tampilan entri shutdown sistem dan jalankan perubahan level dan pemfilteran padashutdown
danreboot
:sumber
cat foo | grep bar
vsgrep bar foo
, tampaknya yang terakhir mampu menyaring dirinya sendiri.Tidak sepenuhnya memuaskan
Saya memiliki kebutuhan serupa pada Debian 7.8 dan mengamati bahwa pada dasarnya tidak ada pesan yang jelas dan eksplisit dalam log, yang sedikit mengejutkan.
Grep through
/var/log
akan memberi tahu waktu mesin dimatikan, menunjukkan daemon shutdown yang tepat, dll, tetapi bukan alasan awal.Solusi lain yang disebutkan (
last -x
) tidak banyak membantu.Mencari cara kerjanya
Bacaan
/etc/acpi/powerbtn-acpi-support.sh
yang meliputi:Perhatikan bahwa teks eksplisit diberikan sebagai parameter dari
shutdown
perintah. Saya berharap string itu akan dicatat secara otomatis oleh program shutdown.Menyesuaikan log yang lebih baik
Pokoknya, untuk mendapatkan pesan eksplisit saya letakkan teks di bawah ini (sebagai root) di
/etc/acpi/powerbtn.sh
executable yang baru dibuatchmod a+x /etc/acpi/powerbtn.sh
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 berikutnyaacpi-support-base
.Perhatikan bahwa Ubuntu 14.04 melakukannya secara berbeda (
/etc/acpi/powerbtn.sh
sudah ada dengan konten yang berbeda dariacpid
paket). 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
/var/log/messages
,/var/log/syslog
dan/var/log/user.log
:Nah, itu pesan eksplisit di log.
sumber
acpi-support-base
danacpid
paket. Saya belum menguji diri saya. Bisakah Anda menguraikan distribusi dan versi mana yang menghasilkan manfaat?Saya hanya punya ide canggung, tapi mungkin berhasil untuk Anda: masukkan perintah
last
dan periksa informasi masuk untuk semua pengguna. kemudian, filter pengguna dengan izin yang diperlukan untukhalt
yang telah masuk pada saat itu. kemudian periksa.bash_history
file mereka untuk melihat apakah mereka telah menghentikan atau tidak.sumber
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:
sumber
Hanya chip di VM KVM saya (di mana saya bertanya-tanya apakah host reboot melakukan shutdown bersih tamu), saya menemukan apa yang saya butuhkan
/var/log/auth.log
(selainlast -x shutdown
menunjukkan hal yang sama). Di sana garis-garis ini muncul:last -x
menunjukkan garis-garis ini, perhatikan bahwa mereka sedang dicetak dalam urutan paling baru-baru-pertama (yaitu membaca baris terakhir pertama, dan kemudian naik), tetapi karena pengaturan ulang jam (23:56 sebelum boot, 23:55 setelah) juga terlihat pada baris sebelumnya, urutannya agak membingungkan: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:
sumber
alias shutdown ke skrip
, skrip harus memberikan semua parameter, dll ke shutdown asli yang dapat dieksekusi
NAMUN: skrip harus mencatat semua yang ini
sumber
last -x
)dalam kasus saya itu adalah perangkat lunak up mematikan server.
sumber