Temukan pembaruan yum terakhir kali dijalankan

13

Saya sedang membuat skrip untuk mencari tahu kapan daftar server terakhir diperbarui sepenuhnya yum update.

Namun saya dapat menemukannya dengan history |grep "yum update"|head -n 1, masalahnya adalah bahwa pengguna dapat melakukannya tetapi tidak mengetikkan "y" pada prompt.

Cara lain yang saya coba adalah dengan 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

Tetapi saya tidak dapat menemukan cara untuk menentukan tanggal yum updatediluncurkan dan berhasil. Karena jika saya memeriksa, misalnya, ID transaksi 108 yang ditandai sebagai "Pembaruan" diluncurkan pada tanggal 18, saya tidak menemukan perintah yum updateuntuk tanggal tertentu:

history |grep 2015 |grep "yum update"

 5182  20150313-054444 > yum update

Jalur lain yang saya coba adalah dengan /var/log/yum.logtetapi yum.logakan menunjukkan instalasi dan pembaruan juga. Jika sebuah paket diperbarui saat menginstal paket e: g: yum install varnishdan itu membutuhkan pembaruan dari paket-paket tertentu misalnya: (varnish-libs-2.1.5-5.el6.i686, 3.0.7-1.el6.i686 dll) ini akan ditampilkan sebagai diperbarui di yum.log

Apakah ada cara untuk menemukan tanggal yum updatediluncurkan dan itu berhasil?

Kheshav Sewnundun
sumber
1
Duplikat serverfault.com/questions/389650/… "Cara memeriksa kapan pembaruan yum terakhir dijalankan"
steve

Jawaban:

15

Anda hampir menjawab pertanyaan Anda. Berikut adalah cara Anda dapat menemukan 5 paket terbaru:

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

Contoh keluaran:

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
obohovyk
sumber
1
kucing disalahgunakan (lihat The Useless Use of Cat Award ), dan -10tidak diperlukan karena ekornya menunjukkan sepuluh baris per default: jadi lebih baik: grep Updated: /var/log/yum.log | tail
sebelk
1
Anda benar-benar cerdas! Tapi itu kebiasaan lama untuk mengecat segalanya) 10 (diubah menjadi 5) diperlukan karena Anda dapat memilih sejumlah catatan untuk dipahami. Itu sebabnya saya meninggalkan nomor dengan grep.
obohovyk
Ini hanya menampilkan 5 paket terakhir yang diperbarui. Pertimbangkan Senario di bawah ini: Jika sebuah paket diperbarui saat menginstal paket e: g: yum instal pernis dan itu membutuhkan pembaruan dari paket-paket tertentu misalnya: (varnish-libs-2.1.5-5.el6.i686,3.0.7-1 .el6.i686 dll) ini akan ditampilkan sebagai diperbarui di yum.log. Padahal saya ingin persis ketika yum updatediluncurkan dan dijalankan dengan sukses, bukan 5 paket terakhir yang diperbarui.
Kheshav Sewnundun
Anda mungkin ingin menggunakan auditd dan membuat aturan untuk eksekusi yum.
sebelk
1
Mungkin saja yum.log telah dihapus jika yum belum digunakan sejak log diputar. Jika demikian, Anda dapat melihat misalnya /var/log/yum.log-20180101dll
user8675309
6

Pertama, Anda perlu mendefinisikan apa yang dimaksud dengan "peningkatan". Misalnya. upgrade dengan hanya kernel yang lebih baru akan menjadi instalasi (dan kemungkinan menghapus yang lebih lama). Jika seseorang melakukan "upgrade foo" apakah itu masuk akal? Bagaimana dengan "distro-sync" yang akhirnya hanya melakukan upgrade (atau jika tidak)? Apakah itu dihitung jika transaksi gagal?

Kemudian berhenti menggerutu keluaran, itu hanya akan menyebabkan rasa sakit dan penderitaan.

Menggunakan API sangat sederhana, misalnya (waktu terakhir transaksi dimulai untuk memutakhirkan paket apa pun):

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
James Antill
sumber
1

Perintah berikut mencantumkan paket RPM yang baru saja diinstal atau diperbarui:

rpm -qa --last  | head

Ini mungkin termasuk paket yang diinstal di luar YUM juga. Perintah ini juga dapat dijalankan tanpa root privilege.

Seff
sumber