yum 업데이트가 마지막으로 실행 된 시간 찾기


13

서버 목록이 마지막으로 완전히 업데이트 된시기를 확인하는 스크립트를 작성 중입니다 yum update.

history |grep "yum update"|head -n 1그러나 나는 그것을 찾을 수 있지만 문제는 사용자가 그것을 시작할 수는 있지만 프롬프트에 "y"를 입력하지 않았다는 것입니다.

내가 시도한 또 다른 방법은 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

그러나 yum update출시 날짜 와 성공 날짜를 결정하는 방법을 찾을 수 없습니다 . 예를 들어 18 일에 "업데이트"로 표시된 트랜잭션 ID 108을 확인하면 yum update해당 날짜에 대한 명령 을 찾을 수 없습니다 .

history |grep 2015 |grep "yum update"

 5182  20150313-054444 > yum update

내가 노력하는 또 다른 경로로했다 /var/log/yum.log하지만 yum.log또한 설치하고 업데이트를 표시합니다. 패키지 e : g :를 설치하는 동안 패키지가 업데이트되고 yum install varnish특정 패키지 (예 : (varnish-libs-2.1.5-5.el6.i686, 3.0.7-1.el6.i686 등)의 업데이트가 필요한 경우) yum.log에 업데이트 된 것으로 표시됩니다

a yum update가 출시되었고 성공한 날짜를 찾는 방법이 있습니까?


1
serverfault.com/questions/389650/…의 중복 "… yum 업데이트가 마지막으로 실행 된시기를 확인하는 방법"
steve

답변:


15

당신은 거의 당신의 질문에 대답했습니다. 다음은 최신 5 개의 업데이트 된 패키지를 찾는 방법입니다.

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

출력 예 :

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
고양이가 잘못 사용되었으며 (고양이 의 쓸모없는 사용 보너스를보십시오 ) -10꼬리는 기본적으로 10 줄을 표시하므로 필요하지 않습니다.grep Updated: /var/log/yum.log | tail
sebelk

1
당신은 절대적으로 라이트입니다! 그러나 grep 할 레코드의 수를 선택할 수 있기 때문에 모든 것을 고양이로 처리하는 것은 오래된 습관입니다. 10 (5로 변경). 그래서 grep으로 번호를 남겼습니다.
obohovyk

최근에 업데이트 된 5 개의 패키지 만 표시됩니다. 아래의 Senario를 고려하십시오. e : g : yum install varnish 패키지를 설치하는 동안 패키지가 업데이트되고 특정 패키지의 업데이트가 필요한 경우 : (varnish-libs-2.1.5-5.el6.i686,3.0.7-1 .el6.i686 등) 이는 yum.log에 업데이트 된 것으로 표시됩니다. 을 (를) yum update시작하고 성공적으로 실행 한 시점을 정확히 원하는 반면 마지막 5 개의 업데이트 된 패키지는 아닙니다.
Kheshav Sewnundun

yum 실행을 위해 감사 및 생성 규칙을 사용할 수 있습니다.
sebelk

1
로그가 회전 된 후 yum을 사용하지 않으면 yum.log가 지워졌을 수 있습니다. 이 경우 /var/log/yum.log-20180101등을 통해 grep 할 수 있습니다
user8675309

6

먼저 "업그레이드"의 의미를 정의해야합니다. 예 : 최신 커널만으로 업그레이드하면 설치가됩니다 (이전 커널은 지워질 수 있습니다). 누군가 "foo 업그레이드"를하면 그 계산이 중요합니까? 업그레이드 만하는 (또는 그렇지 않은 경우) "distro-sync"는 어떻습니까? 트랜잭션이 실패한 경우 계산합니까?

그런 다음 greping 출력을 중지하면 통증과 고통으로 이어질 것입니다.

API 사용은 매우 간단합니다 (예 : 트랜잭션이 패키지를 업그레이드하기 시작한 최신 시간).

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

다음 명령은 최근에 설치되었거나 업데이트 된 RPM 패키지를 나열합니다.

rpm -qa --last  | head

YUM 외부에 설치된 패키지도 포함될 수 있습니다. 이 명령은 루트 권한 없이도 실행될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.