Linux วางข้อความของการบูทไว้ที่ไหน


39

ฉันต้องการหาสถานที่ที่ Linux เขียนข้อความบูตทั้งหมด คุณรู้:

facility one    [STARTED]
facility two    [STARTED]
facility three  [FAILED]

ฉันค้นหาด้วย

find . -print0 | xargs -0 grep -i "words from boot messages"

ใน / var / log / แต่ไม่พบอะไรเลย

ฉันมี CentOS 5.5
ตัวอย่างเช่นตอนบูตเครื่องฉันมี: "การกำหนดข้อมูล IP สำหรับ eth0 ... ล้มเหลวไม่มีลิงก์ตรวจสอบสายเคเบิล"
ฉันไม่สนใจข้อผิดพลาดที่เฉพาะเจาะจง แต่ฉันไม่พบบันทึกที่มีข้อผิดพลาดนี้

dmesg | grep "no link present" ไม่ส่งคืนอะไรด้วย


1
คุณเรียกใช้findคำสั่งด้วยสิทธิ์ root หรือไม่ findจะพิมพ์ไฟล์ทั้งหมดที่คุณสามารถแสดงได้ แต่grepสามารถตรวจสอบได้เฉพาะไฟล์ที่คุณสามารถอ่าน & ไฟล์บันทึกบางไฟล์อาจเป็นของรูทด้วยสิทธิ์การอ่านสำหรับผู้ใช้รายอื่น นอกจากนี้อย่างน้อย GNU grep ก็รองรับ-lตัวเลือกth เพื่อพิมพ์ชื่อของไฟล์ที่มีการจับคู่แทนการจับคู่บรรทัด นี่อาจเป็นประโยชน์มากสำหรับการค้นหาไฟล์ที่มีข้อความบางอย่าง ดังนั้นลองsu -c 'find /var/log -print0 | xargs -0 grep -l -i "words from boot messages"'หรือsudo find /varlog -print0 | xargs -0 sudo grep -l -i "words from boot messages"
mschilli

ทุกวันนี้ด้วย systemd นี่คือคำตอบ
Pablo

คำตอบ:


24

dmesgส่วนใหญ่ของข้อความบูตจะใส่ในกันชนที่คุณสามารถเข้าถึงโดยใช้คำสั่ง ในลีนุกซ์ส่วนใหญ่เอาต์พุตนั้นจะถูกเก็บไว้ใน

/var/log/dmesg.log

ที่คุณสามารถดูด้วย

tail -n 100 /var/log/dmesg.log

1
ตัวอย่างเช่นฉันมีเวลาบูต: "การกำหนดข้อมูล IP สำหรับ eth0 ... ล้มเหลวไม่มีลิงก์ตรวจสอบสายเคเบิลหรือไม่" ฉันไม่สนใจข้อผิดพลาดนี้เป็นพิเศษ แต่เมื่อฉัน: dmesg | grep "ไม่มีลิงก์อยู่" ฉันไม่ได้อะไรเลย ... ที่จริงฉันได้รับบรรทัดมากด้วย grep "eth0" แต่ไม่มีข้อผิดพลาดที่เป็นรูปธรรม ดังนั้นจะมีวิธีการหาคำอธิบายข้อผิดพลาดการบูตคอนกรีตหรือไม่ (ขอบคุณสำหรับการตอบกลับถึงจุด)
Rodnower

ลองใช้Nanoคำสั่ง 's ^ w (whereis) โดยพื้นฐานแล้วคือคำสั่ง Find หรือgrepด้วย regexp ที่ผ่อนคลาย หากคุณกังวลเกี่ยวกับเอาต์พุตของคำสั่งเฉพาะคุณสามารถเข้าไปในinit.dไฟล์และเปลี่ยนการบันทึก STDOUT หรือ STDERR ของคำสั่งที่ละเมิด
Mat คาร์ลสัน

ไม่ได้/var/log/dmesg.logบน Lubuntu 18.04
Marco Sulla

17

ทุกรายการที่ยอดเยี่ยมระหว่างการบู๊ตจะอยู่ใน/var/log/syslogอาจเป็นได้/var/log/boot.msg


ฉันมี CentOS 5.5 และฉันไม่มี syslog ใน / var / log /
Rodnower

boot.log (โดยทั่วไป boot.log (x) โดยที่ x เป็นจำนวนเต็มบวกหรือไม่มีอะไร) ว่างเปล่า
Rodnower

1
ลอง / var / log / messages
pjc50

1
/var/log/boot.msg เป็นสิ่งที่ถูกต้องบน linux mint
MaxV

อาจมีรายการที่ไม่พิเศษ
Abdull

8

วิธีนี้ใช้ได้กับระบบ Debian แน่นอน แต่อาจมีประโยชน์อยู่ดี

ในการจัดเก็บข้อความทั้งหมดที่แสดงในระหว่างการบู๊ตคุณต้องเริ่มบริการที่เรียกว่าbootlogdหลังจากการรีบูตครั้งถัดไปคุณสามารถอ่านข้อความ/var/log/bootได้


เมื่อวันที่ debian wheezy ฉันได้รับroot@wheezy:/home/jrx# service bootlogd start bootlogd: unrecognized service
Jérôme Radix

4
@ JérômeRadixบางทีคุณควรติดตั้งมันก่อน?
behrooz

3

พิมพ์ dmesg> ~ / dmesg.log เพื่อคัดลอกข้อความบูตทั้งหมดลงในสำเนาของคุณเอง คุณสามารถเพิ่มวันที่และเวลาหากคุณต้องการเก็บสำเนาหลายชุดและคุณสามารถทำให้เป็นแบบอัตโนมัติภายในสคริปต์การเข้าสู่ระบบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.