Tìm lần cập nhật yum lần cuối được chạy


13

Đang xây dựng một kịch bản để tìm hiểu khi nào một danh sách các máy chủ được cập nhật đầy đủ lần cuối yum update.

history |grep "yum update"|head -n 1Tuy nhiên, tôi có thể tìm thấy nó bởi một vấn đề là người dùng có thể đã tắt nó nhưng không gõ "y" trong lời nhắc.

Một cách khác tôi đã thử là với yum history

ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
   109 | <xyz user>              | 2015-08-20 07:18 | Erase          |   1 E<
   108 | root <root>              | 2015-08-18 08:56 | Update         |    3 >
   107 | root <root>              | 2015-08-14 07:39 | Update         |    1
   106 | root <root>              | 2015-08-14 07:38 | Update         |    1
   105 | root <root>              | 2015-08-14 07:38 | Update         |    3
   104 | root <root>              | 2015-08-13 07:31 | Update         |    1
   103 | root <root>              | 2015-08-11 05:46 | Update         |    1
   102 | root <root>              | 2015-08-11 05:46 | Update         |    2
   101 | root <root>              | 2015-08-11 05:45 | Update         |    3
   100 | root <root>              | 2015-08-11 05:45 | Update         |    3
    99 | root <root>              | 2015-08-10 20:41 | Update         |    1
    98 | root <root>              | 2015-08-05 02:35 | Update         |    1
    97 | root <root>              | 2015-05-14 10:52 | Update         |    1
    96 | root <root>              | 2015-05-01 02:59 | Obsoleting     |    2
    95 | root <root>              | 2015-04-09 16:06 | Update         |    1  <
    94 | <xyz.user>            | 2015-03-28 08:49 | Update         |    1 ><
    93 | <xyz.usert>            | 2015-03-28 08:14 | Erase          |    3 ><
    92 | <xyz.user>            | 2015-03-13 07:46 | Install        |    6 ><
    91 | <xyz.user>             | 2015-03-13 05:45 | I, U           |   24 >
    90 | root <root>              | 2015-03-04 01:24 | Update         |    3

Nhưng tôi không thể tìm ra cách xác định ngày yum updatera mắt và đã thành công. Vì nếu tôi kiểm tra, ví dụ: ID giao dịch 108 được đánh dấu là "Cập nhật" được khởi chạy vào ngày 18, tôi không tìm thấy lệnh yum updatecho ngày cụ thể đó:

history |grep 2015 |grep "yum update"

 5182  20150313-054444 > yum update

Một con đường khác tôi đã thử là /var/log/yum.lognhưng yum.logsẽ hiển thị cài đặt và cập nhật. Nếu một gói được cập nhật trong khi cài đặt gói e: g: yum install varnishvà nó yêu cầu cập nhật một số gói nhất định, ví dụ: (var Vec-libs-2.1.5-5.el6.i686, 3.0.7-1.el6.i686, v.v.) sẽ được hiển thị như được cập nhật trong yum.log

Có cách nào để tìm ngày a yum updateđược đưa ra và nó đã thành công?


1
Bản sao của serverfault.com/questions/389650/ Mạnh "Cách kiểm tra khi cập nhật yum lần cuối"
steve

Câu trả lời:


15

Bạn gần như đã trả lời câu hỏi của bạn. Dưới đây là cách bạn có thể tìm thấy 5 gói cập nhật mới nhất:

grep Updated: /var/log/yum.log | tail -5

Ví dụ đầu ra:

Aug 05 13:28:34 Updated: virt-manager-common-1.1.0-9.git310f6527.fc21.noarch
Aug 05 13:28:34 Updated: glusterfs-libs-3.5.5-2.fc21.i686
Aug 05 13:28:35 Updated: virt-manager-1.1.0-9.git310f6527.fc21.noarch
Aug 05 13:28:36 Updated: virt-install-1.1.0-9.git310f6527.fc21.noarch
Aug 05 13:28:38 Updated: glusterfs-3.5.5-2.fc21.i686

1
con mèo bị sử dụng sai (hãy xem Giải thưởng sử dụng con mèo vô dụng ) và -10không cần thiết vì đuôi hiển thị mười dòng trên mỗi mặc định: vì vậy tốt hơn: grep Updated: /var/log/yum.log | tail
sebelk

1
Bạn hoàn toàn đúng! Nhưng đó là một thói quen cũ để nuôi mèo mọi thứ) 10 (thay đổi thành 5) là cần thiết bởi vì bạn có thể chọn bất kỳ số lượng hồ sơ nào để grep. Đó là lý do tại sao tôi tăng số với grep.
obohovyk

Điều này chỉ hiển thị 5 gói cập nhật mới nhất. Xem xét Senario bên dưới: Nếu một gói được cập nhật trong khi cài đặt gói e: g: yum cài đặt véc ni và nó yêu cầu cập nhật một số gói nhất định, ví dụ: (var Vec-libs-2.1.5-5.el6.i686,3.0.7-1 .el6.i686, v.v.) điều này sẽ được hiển thị như được cập nhật trong yum.log. Trong khi đó tôi muốn chính xác khi nào yum updateđược phát hành và được chạy thành công, không phải là 5 gói cập nhật mới nhất.
Kheshav Sewnundun

Bạn có thể muốn sử dụng audd và tạo quy tắc để thực hiện yum.
sebelk

1
Có thể yum.log đã bị xóa nếu yum không được sử dụng kể từ khi các bản ghi được xoay. Nếu đó là trường hợp bạn có thể grep qua, /var/log/yum.log-20180101v.v.
user8675309

6

Trước tiên, bạn cần xác định "nâng cấp" nghĩa là gì. Ví dụ. nâng cấp chỉ với một kernel mới hơn sẽ là một bản cài đặt (và có khả năng là xóa một cái cũ hơn). Nếu ai đó "nâng cấp foo" thì có tính không? Điều gì về "đồng bộ hóa" cuối cùng chỉ thực hiện nâng cấp (hoặc nếu không)? Có tính nếu giao dịch thất bại?

Sau đó ngừng greping đầu ra, nó sẽ chỉ dẫn đến đau đớn và đau khổ.

Sử dụng API khá đơn giản, ví dụ: (lần gần đây nhất một giao dịch được bắt đầu để nâng cấp bất kỳ gói nào):

import yum
import time

yb = yum.YumBase()
for old in yb.history.old():
    if "Update" in (hpkg.state for hpkg in old.trans_data):
        print "Latest Update:", time.ctime(old.beg_timestamp)
        break

1

Các lệnh sau liệt kê các gói RPM được cài đặt hoặc cập nhật gần đây:

rpm -qa --last  | head

Nó có thể bao gồm các gói được cài đặt bên ngoài YUM. Lệnh này cũng có thể chạy mà không có quyền root.

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.