Có một bản ghi ghi lại sự tắt máy trong Linux không?


38

Tôi đã tự hỏi nếu có một tệp nhật ký trong Linux mà ghi lại mỗi khi máy tính bị tắt?

Lý do tôi hỏi là tôi đang thực hiện một số thử nghiệm liên quan đến thời lượng pin laptop của tôi kéo dài trong một số điều kiện nhất định. Máy tính xách tay của tôi được cấu hình để tự động tắt khi còn khoảng 10 phút pin, vì vậy nếu có tệp nhật ký ở đâu đó ghi lại khi máy tính tắt, điều này sẽ giúp việc kiểm tra của tôi dễ dàng hơn nhiều.

Tôi đang chạy Ubuntu 10.04. Cảm ơn!

Câu trả lời:


15

Các /var/log/messagestập tin thực sự cần có cái gì liên quan đến tắt máy trong nó, cho tôi ví dụ (CentOS 5) có dòng như thế này:

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.

Kiểm tra /etc/syslog.confhoặc /etc/rsyslog.confhoặc tương đương của bạn để đảm bảo các bản ghi sẽ đến đó. Bạn có thể sẽ cần quyền root để đọc các tệp nhật ký.

Ngoài ra, trong khi nó không tắt máy mỗi lần, lệnh "cuối cùng" sẽ báo cáo khởi động lại.

Có thực sự không có gì trong các bản ghi trong khoảng thời gian bạn tắt máy lần cuối?

Đối với thử nghiệm của bạn, hãy nhớ rằng máy tính của bạn chỉ biết rằng nó còn 10 phút nữa vì thông tin mà pin đang báo cáo, điều này có thể chính xác hoặc không chính xác. Thay vì chờ tắt máy, bạn có thể xem thông tin ACPI trực tiếp. Trên máy tính xách tay của tôi, nó ở đây:

/proc/acpi/battery/BAT0/

Trong đó, các tập tin "trạng thái" và "thông tin" trông thú vị. Bạn có thể xem dung lượng còn lại trong tệp trạng thái trong khi bạn đang chạy máy tính xách tay của mình trong các điều kiện khác nhau để xem nó giảm nhanh như thế nào.


3
Trừ khi tôi thiếu nó, tôi không thấy bất kỳ loại thông báo "tắt" nào trong / var / log / message. Thông báo "Ghi nhật ký hạt nhân (Proc) đã dừng" đôi khi xuất hiện, nhưng không phải lúc nào cũng vậy. Tuy nhiên, chạy last -xcông trình. Lệnh này hiển thị một dòng giống như sau: shutdown system down 2.6.32-23-generi Sun Jul 25 09:12 - 19:00 (-14815+-13: Cảm ơn về mẹo thông tin pin. Hệ thống của tôi cũng có cái này, vì vậy tôi sẽ phải kiểm tra cái này! Nó dường như cập nhật các tệp này cứ sau 5 giây hoặc lâu hơn. Cảm ơn!
Michael

Cảm ơn một lần nữa. Kết quả của tôi là đây: mangstacular.blogspot.com/2010/07/ Kẻ
Michael


5

Đầu tiên, hãy để tôi bắt đầu bằng cách nói rằng tôi biết đây là một chủ đề cũ hơn. Tôi chỉ bình luận để những người khác tìm thấy điều này trong khi chọc vào mạng (như tôi đã làm hôm nay) sẽ có câu trả lời rõ ràng.

Thứ hai, xin lưu ý rằng lệnh sau đây là thông lệ xấu và thuộc danh mục "sử dụng con mèo vô dụng" (tìm kiếm trên google) ...

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

Dòng đó nên được thay đổi thành:

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

grep và hầu hết các lệnh unix / linux (sed, awk, v.v.) cho vấn đề đó không yêu cầu mèo đọc nội dung tệp. Nó là đủ để đặt đường dẫn tệp và tên theo lệnh để vượt qua nó như là một đối số. Thêm một đường ống và một lệnh bên ngoài khác (con mèo) chỉ là lãng phí thời gian và tài nguyên.

Cuối cùng, về nơi để tìm một bản ghi tắt máy và / hoặc khởi động lại hệ thống, hãy sử dụng lệnh cuối cùng vì đó chính xác là ý nghĩa của nó. Nó đọc tệp nhật ký / var / log / wtmp cho tất cả các mục đăng nhập / đăng xuất. Bởi vì tắt máy và khởi động lại thực sự là một sự kiện đăng nhập / đăng xuất ở cấp hệ thống, chúng được ghi lại ở đây. Điều tương tự áp dụng cho tắt máy console, đó là một sự kiện đăng xuất.

Thí dụ:

last -5 reboot shutdown root

Điều này sẽ cung cấp cho bạn 5 mục khởi động lại, tắt máy và root (bao gồm tắt máy console) trong nhật ký wtmp.

Kết quả:

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

Tôi hy vọng điều này sẽ giúp bất cứ ai tình cờ gặp chủ đề này. :-)


Hoặc đơn giản là last -xhoặc last -F -R -x runlevel. Đối với mục đích giám sát pin trong Ubuntu, grep hooks /var/log/pm-suspend.logcũng có thể hữu ích để hiển thị tạm dừng và tiếp tục. Thật không may, pm-powersave.log không lưu trữ lần khi nguồn AC được kết nối (trừ khi bạn thêm móc riêng của mình). help.ubfox.com/community/PowerManloyment/ReducesPower có thể đáng để đọc.
Hiệp sĩ Cedric

Về UUoC, $ CPU time << $ Brain time ...
MikeP

1
Mỗi người đề cập đến "việc sử dụng mèo vô dụng" có lẽ dành nhiều thời gian hơn để chỉ ra sự thật so với tổng thời gian CPU dành cho việc sử dụng mèo vô dụng của tất cả các máy tính trên trái đất (và đôi khi chúng không cần thiết phải trả lời câu trả lời hay ho khác của họ như một tác dụng phụ - - như thế này)
ndemou

4

Tệp / var / log / message nên chứa thông tin này


Tôi không thấy bất cứ điều gì trong tập tin đó liên quan đến việc tắt. :( Tôi đã thử grepping tất cả các tệp khác trong thư mục đó bằng cách sử dụng dấu thời gian của thời gian tôi tắt máy tính, nhưng không may mắn:grep -r "Jul 24 14:" /var/log/*
Michael

Tệp không tồn tại trên linux mint mate 17.
Eric Wang

2

Nếu bạn muốn theo dõi xem máy tính của bạn đã hoạt động được bao lâu trong quá khứ, bạn có thể sử dụng một cái gì đó như được nâng cấp.

nó đi kèm với một chương trình được gọi là uprecords cho bạn biết máy tính của bạn đã hoạt động được bao lâu.


1

Dưới đây là một lớp lót để liệt kê tất cả các tin nhắn từ ngày hiện tại:

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

Điều này đã được thử nghiệm trên CentOS vì vậy YMMV.

Và tất nhiên là có last rebootlast shutdown(như đã đề cập), nhưng điều này quá đơn giản cho nhu cầu của tôi (chỉ cung cấp ngày).


1

last reboot làm việc cho tôi trên CentOS 6.7.

Để hiển thị năm trong sản lượng, vì vậy sẽ thực sự có ý nghĩa nếu bạn có hồ sơ trị giá hơn một năm, hãy làm

last -F reboot

Mặc dù tôi nhận thấy rằng công tắc -F không hoạt động trên một số hệ thống, như Solaris. Tuy nhiên, đây rõ ràng là một phần của GNU.

Cảm ơn https://unix.stackexchange.com/a/97597/174520


0

nếu không có nhật ký, bạn có thể thử thêm một số 'ngày >> mylog' vào tập lệnh tắt máy (trong một số dists, nó được gọi là rc.shutdown)

hoặc, đó cũng là một cách mà không cần phải thắng thế. chạy:

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

và đuôi mylog vào phiên tiếp theo.

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.