Apakah ada log yang mencatat shutdown di Linux?

38

Saya bertanya-tanya apakah ada file log di Linux yang mencatat setiap kali komputer dimatikan?

Alasan saya bertanya adalah saya melakukan beberapa tes yang melibatkan berapa lama baterai laptop saya bertahan dalam kondisi tertentu. Laptop saya dikonfigurasikan untuk mati secara otomatis ketika daya baterai tersisa sekitar 10 menit, jadi jika ada file log di suatu tempat yang mencatat ketika komputer dimatikan, ini akan membuat pengujian saya jauh lebih mudah.

Saya menjalankan Ubuntu 10,04. Terima kasih!

Michael
sumber

Jawaban:

15

The /var/log/messagesberkas benar-benar harus memiliki sesuatu yang berkaitan dengan shutdowns di dalamnya, untuk tambang misalnya (CentOS 5) memiliki garis seperti ini:

Jul 18 23:00:13 nero shutdown[2649]: shutting down for system halt
...
Jul 18 23:00:27 nero kernel: Kernel logging (proc) stopped.
Jul 18 23:00:27 nero kernel: Kernel log daemon terminating.

Periksa /etc/syslog.confatau /etc/rsyslog.confatau setara memastikan log akan ada. Anda mungkin membutuhkan hak akses root untuk membaca file log.

Selain itu, walaupun ini bukan shutdown, perintah "terakhir" harus melaporkan reboot.

Apakah benar-benar tidak ada sama sekali dalam log di sekitar saat Anda terakhir kali ditutup?

Untuk pengujian Anda, ingatlah bahwa komputer Anda hanya tahu bahwa waktunya tinggal 10 menit karena informasi yang dilaporkan baterai, yang mungkin akurat atau tidak. Daripada menunggu shutdown, Anda bisa melihat informasi ACPI secara langsung. Di laptop saya ada di sini:

/proc/acpi/battery/BAT0/

Di sana, file "state" dan "info" terlihat menarik. Anda dapat menonton kapasitas yang tersisa di file status saat Anda menjalankan laptop Anda dalam berbagai kondisi untuk melihat seberapa cepat ia turun.

AN Lainnya
sumber
3
Kecuali jika saya melewatkannya, saya tidak melihat pesan "mematikan" di / var / log / messages. Pesan "Kernel logging (proc) dihentikan" terkadang muncul, tetapi tidak selalu. Namun, menjalankannya last -xberfungsi. Perintah ini menampilkan garis yang terlihat seperti berikut: shutdown system down 2.6.32-23-generi Sun Jul 25 09:12 - 19:00 (-14815+-13: Terima kasih atas tip info baterai. Sistem saya juga memiliki ini, jadi saya harus memeriksanya! Tampaknya memperbarui file-file ini setiap 5 detik atau lebih. Terima kasih!
Michael
Terima kasih lagi. Hasil saya di sini: mangstacular.blogspot.com/2010/07/...
Michael
28

Bagaimana dengan perintah last -x shutdown?

Janne Pikkarainen
sumber
5

Pertama, izinkan saya memulai dengan mengatakan saya tahu ini adalah utas yang lebih tua. Saya hanya berkomentar sehingga orang lain yang menemukan ini sambil menyodok jaring (seperti yang saya lakukan hari ini) akan memiliki jawaban yang jelas.

Kedua, harap perhatikan bahwa perintah berikut ini adalah praktik buruk dan termasuk dalam kategori "penggunaan kucing yang tidak berguna" (pencarian google untuk itu) ...

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Baris itu harus diubah menjadi:

grep "`LC_ALL=en_en.utf8 date +"%b %e"`" /var/log/messages

grep, dan sebagian besar perintah unix / linux (sed, awk, dll ...) dalam hal ini tidak memerlukan cat untuk membaca isi file. Cukup untuk menempatkan path file dan nama setelah perintah untuk meneruskannya sebagai argumen. Menambahkan pipa dan perintah eksternal lain (kucing) hanya membuang-buang waktu dan sumber daya.

Akhirnya, Seperti ke mana menemukan catatan shutdowns sistem dan / atau reboot, gunakan perintah terakhir karena itulah yang dimaksudkan untuk itu. Bunyinya file log / var / log / wtmp untuk semua entri login / logout. Karena shutdown dan reboot sebenarnya adalah peristiwa login / logout level sistem, mereka direkam di sini. Hal yang sama berlaku untuk shutdown konsol root, ini adalah acara logout.

Contoh:

last -5 reboot shutdown root

Ini akan memberi Anda 5 entri terakhir reboot, shutdown, dan root (konsol shutdown termasuk) di log wtmp.

Hasil:

reboot    ~                         Mon Mar 23 14:51
shutdown  ~                         Mon Mar 23 14:49
root      console                   Mon Mar 23 14:49 - shutdown  (00:00)
reboot    ~                         Mon Mar 16 09:54
shutdown  ~                         Thu Mar 12 17:41

Saya harap ini membantu siapa saja yang tersandung di utas ini. :-)

David Dreggors
sumber
Atau secara sederhana last -xatau last -F -R -x runlevel. Untuk keperluan pemantauan baterai di bawah Ubuntu, grep hooks /var/log/pm-suspend.logmungkin juga bermanfaat untuk menampilkan penangguhan dan resume. Sayangnya, pm-powersave.log tidak menyimpan kali daya AC tersambung (kecuali jika Anda menambahkan kait Anda sendiri). help.ubuntu.com/community/PowerManagement/ReducedPower mungkin layak dibaca.
Cedric Knight
Mengenai UUoC, $ CPU time << $ Brain time ...
MikeP
1
Setiap orang yang menyebutkan "penggunaan kucing yang tidak berguna" mungkin menghabiskan lebih banyak waktu untuk menunjukkan fakta daripada total waktu CPU yang dihabiskan untuk penggunaan kucing yang tidak berguna oleh semua komputer di bumi (dan kadang-kadang mereka tidak perlu mengasapi jawaban mereka yang bagus sebagai efek samping - - seperti ini)
ndemou
4

File / var / log / messages harus berisi informasi ini

ennuikiller
sumber
Saya tidak melihat apa pun dalam file yang terkait dengan mematikan. :( Saya mencoba menangkap semua file lain di direktori itu menggunakan stempel waktu saat saya mematikan komputer, tetapi tidak berhasil:grep -r "Jul 24 14:" /var/log/*
Michael
File tidak ada di linux mint mate 17.
Eric Wang
2

jika Anda ingin melacak berapa lama komputer Anda telah menyala di masa lalu Anda dapat menggunakan sesuatu seperti uptimed.

itu datang dengan sebuah program yang disebut uprecords yang menunjukkan berapa lama komputer Anda telah hidup.

pengguna43856
sumber
1

Berikut ini adalah satu-baris untuk mendaftar semua pesan dari hari ini:

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Ini diuji pada CentOS jadi YMMV.

Dan tentu saja ada last rebootdan last shutdown(sebagaimana disebutkan), tetapi ini terlalu sederhana untuk kebutuhan saya (hanya memberikan tanggal).

Nux
sumber
1

last reboot bekerja untuk saya di CentOS 6.7.

Untuk menunjukkan tahun dalam output, jadi masuk akal jika Anda memiliki nilai lebih dari satu tahun, lakukan

last -F reboot

Meskipun saya tahu bahwa -F switch tidak berfungsi pada beberapa sistem, seperti Solaris. Ini tampaknya merupakan bagian dari GNU terakhir.

Terima kasih untuk https://unix.stackexchange.com/a/97597/174520

Aaron Wallentine
sumber
0

jika tidak ada log, Anda dapat mencoba menambahkan 'date >> mylog' ke skrip shutdown (dalam beberapa dist, ini disebut rc.shutdown)

atau, ada juga cara yang tanpa pencegahan diperlukan. menjalankan:

while [ 1 ];do sleep 5;date>mylog;sync;done

dan tail mylog pada sesi berikutnya.

Banyol
sumber