วิธีตรวจสอบว่าการอัปเดตยำครั้งสุดท้ายถูกเรียกใช้


12

มีวิธีบัญญัติมาตรฐานเพื่อค้นหาครั้งล่าสุดที่yum updateทำงานบนระบบหรือไม่?

การตั้งค่าของเราคือเรามีเซิร์ฟเวอร์การแสดงละครที่เรียกใช้การอัปเดตอัตโนมัติและหากไม่ล้มเหลวเราจะอัปเดตเซิร์ฟเวอร์การผลิตของเราด้วยตนเองประมาณเดือนละครั้ง (ยกเว้นการอัปเดตที่สำคัญ) (ฉันพูดด้วยตนเองนึกคิดฉันต้องการทริกเกอร์การอัปเดตด้วยตนเองทั้งหมด แต่นั่นเป็นปัญหาอื่น)

แต่คุณยุ่งงานลื่น ฯลฯ ดังนั้นฉันต้องการตั้งค่าการตรวจสอบ nagios ที่จะเริ่มรบกวนเราถ้าเราปล่อยมันนานเกินไป

การค้นหาเว็บไม่ได้ทำให้ฉันไปไกลมาก สิ่งที่ดีที่สุดที่ฉันพบในตอนนี้คือ:

grep Updated /var/log/yum.log | tail -1 | cut -d' ' -f 1-2

ซึ่งให้บางอย่างกับMar 12ฉันซึ่งฉันสามารถแปลงเป็นวันที่ได้ มีปัญหาเล็กน้อยบางอย่างเกี่ยวกับว่าวันนี้เป็นปีนี้หรือปีที่แล้วและฉันจำเป็นต้องตรวจสอบ/var/log/yum.log.1ในกรณีที่ตรวจสอบทันทีหลังจาก logrotate แต่นั่นเป็นเพียงรายละเอียดสคริปต์

แน่นอนว่านี่อาจ 'หลง' โดยการอัปเดตเป็นแพ็คเกจเดียวมากกว่าการอัพเดททั่วไป

ดังนั้นจึงมีวิธีที่ยอมรับมากขึ้นเพื่อดูเมื่อyum updateถูกเรียกใช้?

แก้ไข:ตอนนี้ฉันเขียนปลั๊กอิน Nagios NRPE ที่ใช้ความคิดที่ฉันหยิบยกไว้ในคำถาม คุณสามารถคว้าได้จากhttps://github.com/aptivate/check_yum_last_update

คำตอบ:


20

ตัวเลือกประวัติ yum ช่วยให้ผู้ใช้สามารถดูสิ่งที่เกิดขึ้นในการทำธุรกรรมที่ผ่านมา เพื่อให้ง่ายขึ้นคุณสามารถ grep Updateจากประวัติยำ

# yum  history
Loaded plugins: fastestmirror, refresh-packagekit
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    41 | root <root>              | 2012-04-27 20:17 | Install        |   19   
    40 | root <root>              | 2011-11-20 10:09 | Install        |   10   
    39 | root <root>              | 2011-11-20 08:14 | Install        |    1 E<
    38 | root <root>              | 2011-11-19 15:46 | Update         |    1 

1
คุณกำลังใช้เวอร์ชันใดของยัม - ฉันดูเหมือนจะไม่มีhistoryคำสั่งให้ใช้ (ส่วนใหญ่เรายังคงใช้ CentOS 5) ที่จริงแล้วเพิ่งลองและ CentOS 6 มี แต่มันไม่สากลพอสำหรับจุดประสงค์ของเรา - แต่มันดูมีประโยชน์สำหรับผู้อื่น
Hamish Downer

1
ใช่นี่เป็น centos 6.x กับ yum เวอร์ชั่น 3.2.29 ขอบคุณ
จักรี

1
โปรดทราบว่าหากมีการรวมกันของการติดตั้งและการปรับปรุงคอลัมน์การกระทำบอกว่าI, Uทำให้ grep ซับซ้อนขึ้นเล็กน้อย กรณีนี้อาจเกิดขึ้นได้หากแพ็คเกจที่อัปเดตนั้นขึ้นอยู่กับแพคเกจใหม่ทำให้แพ็คเกจใหม่นั้นติดตั้ง
Hamish Downer

เนื่องจากบางครั้งการอัปเดตเกิดขึ้นขณะติดตั้งสิ่งอื่นหากคุณต้องการเห็นสิ่งเหล่านั้นเช่นกันอาจส่งผ่านเอาต์พุตผ่าน grep ดังนี้: yum history | grep 'U' ซึ่งจะตรวจจับการวิ่งทั้งหมดที่เกี่ยวข้องกับการอัพเดท
JJC

2

psacctผมคิดว่าวิธีเดียวที่คุณจะแน่ใจจริงๆคือการทำงาน

lastcomm yumนี้จะช่วยให้คุณสามารถเรียกใช้ หากคุณแยกวิเคราะห์เรื่องนี้คุณจะรู้ว่าใครเป็นคนวิ่งและเมื่อไหร่


1

ฉันเดาว่าคุณกำลังชี้ชุดเซิร์ฟเวอร์ 'Dev' ไปยัง Repo Dev yum หรือไม่?

คุณสามารถทำการอัปเกรดอัตโนมัติในสคริปต์ cron / puppet / chef ซึ่งเมื่อสำเร็จแล้วเขียนลงไฟล์ (พูด/etc/yum_last)

จากนั้นคุณสามารถใช้yum check-updatecron / อื่น ๆ เป็นระยะ ๆ บนเซิร์ฟเวอร์ Dev เพื่อดูว่ามีการปรับปรุงใด ๆ หากคำสั่งนี้ระบุว่า> มีการอัปเดตจำนวน 0 รายการคุณเปรียบเทียบวันที่ปัจจุบันกับเวลาประทับของไฟล์ที่คุณสร้างเมื่อคุณอัปเกรดอัตโนมัติครั้งล่าสุด

หากความแตกต่างของวันที่เพิ่มขึ้นในไม่กี่วันคุณสามารถแจ้งเตือน Nagios ได้

คุณสามารถดูPulp ได้หากมันเหมาะสมกับความต้องการของคุณ


0

คำสั่งต่อไปนี้แสดงรายการแพ็กเกจ RPM ที่เพิ่งติดตั้งหรืออัพเดต:

rpm -qa --last  | head

อาจรวมถึงแพ็คเกจที่ติดตั้งภายนอก YUM ด้วย คำสั่งนี้ยังสามารถรันได้โดยไม่มีสิทธิ์รูท

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