अंतिम बार खोजें यम अद्यतन चलाया गया था


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कि लॉन्च की गई तारीख सफल रही और सफल रही। यदि मैं उदाहरण के लिए जाँच करता हूँ, तो लेनदेन आईडी १० 108 जो १ launched तारीख को शुरू की गई "अपडेट" के रूप में चिह्नित है, मुझे इस yum updateविशेष तिथि के लिए आदेश नहीं मिला :

history |grep 2015 |grep "yum update"

 5182  20150313-054444 > yum update

एक और रास्ता मैंने कोशिश की थी, /var/log/yum.logलेकिन yum.logइंस्टॉल और अपडेट भी दिखाएगा। यदि पैकेज e: g: स्थापित करते समय एक पैकेज को अपडेट किया जाता है yum install varnishऔर इसके लिए कुछ विशेष पैकेजों के अपडेट की आवश्यकता होती है जैसे: (वार्निश-लिबास-2.1.5-5.el6.i686, 3.0.7-1.el6.i686 आदि) yum.log में अद्यतन के रूप में दिखाया जाएगा

क्या yum updateलॉन्च की गई तारीख को खोजने का कोई तरीका है और यह सफल रहा?


1
का डुप्लीकेट serverfault.com/questions/389650/... "कैसे जब यम अद्यतन पिछले रन था जांच करने के लिए"
स्टीव

जवाबों:


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इसकी आवश्यकता नहीं है क्योंकि पूंछ प्रति डिफ़ॉल्ट दस लाइनें दिखाती है: इसलिए यह बेहतर है:grep Updated: /var/log/yum.log | tail
sebelk

1
आप बिल्कुल राइट हैं! लेकिन वह सब कुछ बिल्ली करने की एक पुरानी आदत है) 10 (5 से बदला हुआ) की आवश्यकता है क्योंकि आप किसी भी संख्या में रिकॉर्ड को चुन सकते हैं। यही कारण है कि मैं grep के साथ संख्या में वृद्धि हुई है।
obohovyk

यह केवल अंतिम 5 अद्यतन पैकेज दिखाता है। नीचे दिए गए सेनारियो पर विचार करें: यदि पैकेज e: g: yum स्थापित करने के दौरान कोई पैकेज अपडेट किया जाता है और इसके लिए कुछ पैकेजों के अपडेट की आवश्यकता होती है जैसे: (वार्निश-लिबास-2.1.5-5.el6.i686,3.0.7-1 .el6.i686 आदि) यह yum.log में अद्यतन के रूप में दिखाया जाएगा। जबकि मैं चाहता था कि जब yum updateलॉन्च किया गया था और पिछले 5 अपडेट किए गए पैकेजों के अनुसार, सफलतापूर्वक चलाया गया था।
खेशव सेवाकुंड

आप ऑडिट का उपयोग करना चाहते हैं और यम निष्पादन के लिए नियम बना सकते हैं।
sebelk

1
यह संभव है कि yum.log को हटा दिया गया है यदि लॉग को घुमाए जाने के बाद यम का उपयोग नहीं किया गया है। अगर ऐसी बात है आप के माध्यम से जैसे grep कर सकते हैं /var/log/yum.log-20180101आदि
user8675309

6

पहले आपको परिभाषित करने की आवश्यकता है कि "अपग्रेड" का क्या मतलब है। उदाहरण के लिए। केवल एक नए कर्नेल के साथ अपग्रेड करना एक इंस्टॉल (और पुराने के मिटाए जाने की संभावना) होगा। यदि कोई "उन्नयन फू" करता है तो क्या वह गणना करता है? "डिस्ट्रो-सिंक" के बारे में क्या जो अपग्रेड करने का काम करता है (या यदि ऐसा नहीं है)? क्या यह गणना करता है कि क्या लेनदेन विफल हो गया?

फिर उत्पादन बंद करो, यह केवल दर्द और पीड़ा को जन्म देगा।

एपीआई का उपयोग करना बहुत सरल है, उदाहरण के लिए (नवीनतम समय में किसी भी पैकेज को अपग्रेड करने के लिए लेनदेन शुरू किया गया था):

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 के बाहर स्थापित पैकेज भी शामिल हो सकते हैं। यह आदेश रूट विशेषाधिकार के बिना भी चल सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.