सवाल स्थापना के बाद से लिनक्स सिस्टम की "आयु" कैसे निर्धारित करें?


मैंने सोचा कि मैं आसानी से विशेष फ़ाइलों के टाइमस्टैम्प की जांच कर सकता हूं। तब मुझे एहसास हुआ कि जब मैंने टाइमस्टैम्प की तरह देखा तो यह इतना आसान नहीं होगा 1991


37
2018-01-12 02:31


मूल


मुझे इन सभी उत्तरों से प्यार है, और कुछ लोगों को उखाड़ फेंक दिया है, और उनसे सीखा है। लेकिन यह मेरे लिए होता है कि सवाल अच्छी तरह से परिभाषित नहीं है: उदाहरण के लिए, मेरे कोलोएड बॉक्स मदरबोर्ड के दो अवतारों और दस वर्षों में एचडीडी के चार पूर्ण परिवर्तनों के माध्यम से चल रहा है, एफएस के डंप के साथ। हर बार बहाल किया। मेरी सभी एसएसएच सार्वजनिक कुंजी दिनांक 1 9 फरवरी 2001 को हैं; लेकिन रूट एफएस जून 11 2010, 20:59:01 बनाया गया था, जब mobo को अंतिम बार अपग्रेड किया गया था (डिस्क के साथ); फिर भी अन्य परीक्षण अभी तक अलग-अलग परिणाम देते हैं, और यह मेरे लिए होता है: आप लिनक्स सिस्टम की उम्र को परिभाषित (खोज नहीं) कैसे करते हैं? - MadHatter
जाहिर है इसे इनस समस्या के जहाज के रूप में भी जाना जाता है; देख en.wikipedia.org/wiki/Ship_of_Theseus । - MadHatter
जब मैं एक नई ड्राइव खरीदता हूं या ताजा कर्नेल के साथ एक नया रूट विभाजन बनाता हूं, तो मुझे हमेशा उस विभाजन के साथ एक छिपकली होती है जो मौजूद है ... मैंने उन सभी चीजों को रखा है जहां मुझे बैक अप लेने की ज़रूरत है ... लेकिन यह मेरे साथ नहीं हुआ :-) - lisak


जवाब:


सबसे आसान तरीका शायद होगा (एसडीए 1 मानना ​​आपका / रूट / है):

tune2fs -l / dev / sda1 | grep बनाया गया

यह आपको उस तारीख को दिखाएगा जिस पर फाइल सिस्टम बनाया गया था। Ext2 पर ext4 पर काम करने की पुष्टि की, अन्य फाइल सिस्टम के बारे में सुनिश्चित नहीं है!


46
2018-01-12 02:35



जब मुझे अपने पीसी के लिए एक नया ड्राइव मिलता है तो मैं आमतौर पर इसके बाद विभाजन बना देता हूं cp -a डेटा खत्म तो संक्षेप में: सभी मामलों में सिस्टम की उम्र निर्धारित करना संभव नहीं है। - Hubert Kario
शायद उपयोग कर रहे हैं /dev/root थोड़ा और सामान्य है। - camh
मैंने एसडीए 1 एफएस को रखते हुए पिछले एक पर एक नई प्रणाली स्थापित की, और इस प्रकार नीचे मिहाईएम का समाधान (एसएसएच कुंजी) अधिक सटीक था। - Ring Ø


एक तंत्र जिसे मैं अक्सर उपयोग करता हूं वह रूट होम निर्देशिका के भीतर फ़ाइलों पर परिवर्तन समय (सीटाइम) की जांच करना है। के बाद से /root घर निर्देशिका स्थापित समय पर बनाई गई है, और अक्सर इसे शायद ही कभी इस्तेमाल किया जाता है, यह अपेक्षाकृत अच्छा अनुमान प्रदान कर सकता है। जैसा कि टिप्पणियों में काइल द्वारा स्पष्ट किया गया है, चूंकि सीईटी इनोड को संदर्भित करता है, न कि डेटा, फ़ाइल सामग्री को संशोधित करने से सीटाई नहीं बदलेगी।

डिफ़ॉल्ट रूप से, ls आदेश फ़ाइल के संशोधन समय (mtime) मुद्रित करता है। तो अगर इस तरह के ctime विकल्प में विकल्प,

ls -alct /root

यह सभी फाइलों को प्रिंट करेगा, समय का समय प्रदर्शित करेगा, और समय के अनुसार क्रमबद्ध करेगा।

उदाहरण के तौर पर, यहां 3 सबसे पुरानी फाइलों का नमूना है /root मेरे सिस्टम में से एक से निर्देशिका।

ls -alt install.log.syslog .cshrc .tcshrc
-rw-r--r--. 1 root 10238 Feb 18  2010 install.log.syslog
-rw-r--r--. 1 root   129 Dec  3  2004 .tcshrc
-rw-r--r--. 1 root   100 Sep 22  2004 .cshrc

और फिर परिवर्तन समय की जांच करके

ls -alct install.log.syslog .cshrc .tcshrc
-rw-r--r--. 1 root   100 Feb 18  2010 .cshrc
-rw-r--r--. 1 root 10238 Feb 18  2010 install.log.syslog
-rw-r--r--. 1 root   129 Feb 18  2010 .tcshrc

18 फरवरी 2010 की तारीख निश्चित रूप से अनुमानित समय के साथ ट्रैक करती है कि मैंने पहले उस सिस्टम को स्थापित किया होगा।


13
2018-01-12 02:54



ctime वास्तव में एक फ़ाइल का निर्माण समय नहीं है, बल्कि परिवर्तन समय है। आखिरी बार जब मैं इनोड में बदल गया था। यदि आप किसी फ़ाइल की अनुमतियां या मालिक बदलते हैं तो यह बदलेगा। संभावना है कि / रूट फ़ोल्डर के मालिक या अनुमतियां स्वयं नहीं बदली हैं, यही कारण है कि यह अस्तर है। (मुझे नहीं पता कि सी वास्तव में क्या खड़ा है - एकल यूनिक्स विनिर्देशन में "time_t st_ctime अंतिम स्थिति परिवर्तन का समय" है। - Kyle Brandt♦
दरअसल, इंस्टॉलर लॉग की तिथि / समय। आपके वितरण / ओएस के आधार पर कौन सा हो सकता है या नहीं। - Koos van den Hout


प्रयत्न

ls -alp /etc/ssh/ssh_host_dsa_key.pub | cut -d " " -f6

जब आप ओएस स्थापित करते हैं तो कुंजी उत्पन्न होती हैं।


6
2018-01-12 14:24



यह एक अच्छा विचार है हालांकि कुछ कमजोरियों को एसएसएच कुंजी में पाया गया है और यदि आपने सिस्टम अपडेट किए हैं (और आपको सिस्टम अपडेट करना चाहिए!) तो चाबियाँ फिर से उत्पन्न हो जातीं। - Josh
उत्कृष्ट विचार! हालांकि, अगर कुंजी काफी नया है, ls तारीख को अलग-अलग दिखाता है (कम से कम मेरी मशीन पर) तो cut आदेश सही काम नहीं करता है। अब मैं उपयोग करूंगा stat -c %y /etc/ssh/ssh_host*pub। साथ ही, मुझे आश्चर्य है कि क्यों फ़ाइल निर्माण के समय लिनक्स पर अधिक प्यार नहीं मिला है ... - Rennex


यदि आपके पास पहुंच है तो हार्डवेयर की जांच करना एक अच्छा शर्त होगा। जब आप इकट्ठे हुए थे तो एक अच्छा विचार पाने के लिए आप सिस्टम और / या हार्डवेयर घटकों का निरीक्षण कर सकते थे।

वैकल्पिक रूप से, यदि आप BIOS स्क्रीन तक पहुंच प्राप्त कर सकते हैं तो वहां अक्सर तारीख की जानकारी होती है जिसका उपयोग यह निर्धारित करने के लिए किया जा सकता है कि मशीन कितनी पुरानी है।

यदि आप हार्ड ड्राइव पर स्मार्ट जानकारी तक पहुंच प्राप्त कर सकते हैं (smartctl -a /dev/sda) वहां जाने के लिए कुछ हो सकता है। मुझे SMART में एक विशिष्ट टाइमस्टैम्प नहीं दिखाई देता है लेकिन कम से कम एक घंटे का उपयोग काउंटर है। यह मशीन पर कितनी पुरानी है इस पर निचली बाध्यता प्रदान करेगी (क्योंकि यदि हार्ड ड्राइव 100 घंटों तक चल रही है, तो सिस्टम 100 घंटों से छोटा नहीं हो सकता है)।

फाइल सिस्टम जांच के लिए, आप तारीख की जानकारी देख सकते हैं /lost+found - उस निर्देशिका को बनाया गया था जब फाइल सिस्टम बनाया गया था। उस तारीख को पिछले जवाब से tunefs जानकारी से सहमत होना चाहिए।


3
2018-01-12 02:50



के लिए +1 /lost+found संकेत, क्योंकि यह जानकारी गैर-विशेषाधिकार प्राप्त उपयोगकर्ताओं के लिए उपलब्ध है। रूट फाइल सिस्टम पर tune2fs जैसे बैच ऑपरेशन को चलाने के रूप में सुपरसुर थोड़ा चिंताजनक है। इसके अलावा, यह समाधान फ्रीबीएसडी और गैर-ext2 / 3/4 फाइल सिस्टम पर काम करता है। - Stefan Lasiewski


रेडहाट और डेरिवेटिव के साथ, फ़ाइल आयु और अन्य सिस्टम फ़ाइलों के संयोजन के माध्यम से ओएस संस्करण / विंटेज का सामान्य विचार प्राप्त करना बहुत आसान है। मैं आमतौर पर जांच करूँगा /root/anaconda-ks.cfg फ़ाइल, क्योंकि इसमें प्रारंभिक सर्वर सेटअप और पैकेज पैरामीटर शामिल हैं। कभी कभी uname -a कर्नेल निर्माण की तारीख के बारे में अच्छी जानकारी होगी। उसी तारीख के साथ फाइलों का समूह भी होगा /etc; आम तौर पर आरसीएक्सडी लिंक, आरसी स्क्रिप्ट, इनिटाब इत्यादि।


3
2018-01-12 03:44





यह Red Hat सिस्टम के लिए भी काम करता है:

rpm -qi basesystem | grep "Install Date"

3
2017-08-01 19:08



ध्यान दें कि यह (और tune2fs चाल) आभासी मशीनों के साथ कम अच्छी तरह से काम करता है, अगर वे एक आम छवि से फैल रहे हैं। हालांकि, एसएसएच होस्ट कुंजी की जांच मेरे लिनोड पर सटीक है। - cjc