एक हार्ड डिस्क सो जाओ और केवल जब जरूरत जगाओ


10

मैं अपने कंप्यूटर पर एक और हार्ड डिस्क कनेक्ट करना चाहता हूं, जिसे मैं 99% समय पर सोना चाहता हूं। मैं केवल कुछ चीजों के लिए इसका उपयोग करूंगा, लेकिन मुझे इसे हर समय माउंट करने की आवश्यकता है।

इसे प्राप्त करने के लिए मैं जानना चाहूंगा:

  1. मैं कैसे लॉग इन करता हूं जो एक उपकरण तक पहुंचता है? मुझे यह बताने में सक्षम होने के लिए लॉगिंग की आवश्यकता है कि हार्ड डिस्क जागने के कारण क्या हो रहा है, इसलिए मैं इस पर कार्रवाई कर सकता हूं।
  2. क्या कोई विशेष कर्नेल सेटिंग्स हैं जिन्हें मुझे बनाने की आवश्यकता है ताकि डिवाइस लंबे समय तक सो सके?
  3. मैं हार्ड डिस्क के स्लीप अंतराल को कैसे सेट करूं?

जवाबों:


13

स्लीप इंटरवल को "एपीएम" (स्वचालित विद्युत प्रबंधन) और स्पिंडाउन_टाइम कहा जाता है। इसे hdparmइस तरह से नियंत्रित किया जाता है :

hdparm -B 50 -S 36 /dev/disk/by-label/BACKUP-HDD

यह ~ 3min निष्क्रियता पर अपने HDD को फैलाने के लिए बना देगा।


4

जैसा कि आप लिनक्स पर हैं, आप नई fatraceउपयोगिता का उपयोग कर सकते हैं , जो हर फ़ाइल एक्सेस को लॉग करता है और आपको बताता है कि कौन सी प्रक्रिया जिम्मेदार है:

https://launchpad.net/fatrace

अधिक जानकारी यहाँ:

http://www.piware.de/2012/02/fatrace-report-system-wide-file-access-events/

यह लिनक्स कर्नेल 2.6.37 के बाद से उपलब्ध linux fanotify API ( अधिक विवरण ) का उपयोग करता है ।

fatrace जुलाई 2014 तक सभी वितरणों द्वारा पैक नहीं किया गया है (यह हाल ही में डेबियन परीक्षण में प्रवेश किया है, इसलिए 'जेसी' में जहाज करना चाहिए), लेकिन स्रोत से स्थापित करना आसान है।


1
मुझे नहीं पता कि आपके "सबसे" वितरणों का क्या मतलब है। हमेशा की तरह डेबियन कुछ पाने के लिए आखिरी डिस्ट्रो है। मैंने इसे फेडोरा पर कुछ समय के लिए उपलब्ध किया है ...
माइकल हैम्पटन

3

http://en.wikipedia.org/wiki/Fuser_%28Unix%29 - fuser एक UNIX कमांड है जिसका उपयोग यह दिखाने के लिए किया जाता है कि कौन सी प्रक्रिया एक निर्दिष्ट फ़ाइल, फ़ाइल सिस्टम या सॉकेट का उपयोग कर रही है।

http://sourceforge.net/projects/hdparm/ - लिनक्स के तहत ATA / SATA ड्राइव पैरामीटर प्राप्त करें / सेट करें (-S विकल्प खोजें)

http://sg.danny.cz/sg/sg3_utils.html - sg3_utils पैकेज में ऐसी उपयोगिताएँ हैं जो SCSI कमांड को उपकरणों पर भेजती हैं। परंपरागत रूप से एससीएसआई (sg_start के लिए देखो) के साथ जुड़े ट्रांसपोर्ट पर डिवाइस


आपके जानकारीपूर्ण उत्तर के लिए धन्यवाद! ऐसा लगता है कि फ्यूज़र केवल मुझे बताता है कि कौन सी प्रक्रियाएं एक फ़ाइल का उपयोग कर रही हैं, कमांड जारी करने के उदाहरण पर फाइलसिस्टम ऑच सॉकेट। हालांकि यह बहुत उपयोगी है अगर कोई प्रक्रिया कुछ जल्दी करती है, जैसे कि डिवाइस रूट डायरेक्टरी की सामग्री को सूचीबद्ध करें, तो मुझे यह याद आ सकती है, भले ही मेरे पास एक लूप में चलने वाला फ्यूज़र हो। यदि कोई ऐसी चीज होती जो प्रतीक्षा करती और सभी गतिविधि को लॉग इन करती, जब तक कि मैं इसे रोकने के लिए नहीं कहता, तो यह इस स्थिति में और भी मददगार होती। किसी के बारे में पता है?
हटा दिया गया

मुझे लगता है कि hdparam क्या है जो मैं सोने से पहले प्रतीक्षा समय सेटअप करने के लिए उपयोग करूँगा? और sg3_utils सिर्फ एक शक्तिशाली उपकरण है, लेकिन मैं इस मामले में इसका इस्तेमाल नहीं करूंगा? (मुझे लगता है कि जैसा कि मैंने मैन्युअल निर्दिष्ट करने जब HDD hdparam का उपयोग कर इसे सेट करने के बाद सो जाना चाहिए नहीं होगा?)
नष्ट कर दिया गया

3

btraceया blktrace(एक आवरण btrace) ट्रैक कर्नेल ब्लॉक I / O को ट्रैक कर सकता है और आपकी सहायता कर सकता है।


2

lsof +D /path/to/mount आपको प्रत्येक प्रक्रिया को दिखाना चाहिए जिसमें संकेतित पथ में कोई भी खुली हुई फ़ाइल है।


0

मेरा भी ऐसा ही मुद्दा है। मेरे पास एसएसडी है, /dev/sdbओएस के साथ (लिनक्स टकसाल 18.1 उबंटू ज़ेनियल पर आधारित) और एचडीडी, /dev/sdaडेटा के साथ, जिसका मैं समय-समय पर उपयोग करता हूं। दोनों डिस्क एन्क्रिप्टेड हैं। एचडीडी के विभाजन माउंट नहीं हैं। और वैसे भी कई मिनटों की अवधि में एचडीडी जागता है, फिर सोता है, फिर उठता है। मैस।

यहां सहायक उत्तर के साथ एक डुप्लिकेट प्रश्न है , जो auditdखराब व्यवहार प्रक्रिया को खोजने का सुझाव देता है।

apt-get install auditd
auditctl -w /dev/sda -p rwa

फिर मैंने HDD को सोने के लिए मजबूर किया hdparm -Y /dev/sda। तब तक प्रतीक्षा करें जब तक कि मैं एचडीडी को फिर से कताई नहीं सुनता। फिर चला ausearch -f /dev/sda। मेरे मामले में यह निम्न की तरह प्रविष्टियाँ दिखाता है।

time->Sat Feb 25 12:38:17 2017
type=PROCTITLE msg=audit(1488022697.651:1744): proctitle=2F7573722F6C69622F756469736B73322F756469736B7364002D2D6E6F2D6465627567
type=PATH msg=audit(1488022697.651:1744): item=0 name="/dev/sda" inode=376 dev=00:06 mode=060660 ouid=0 ogid=6 rdev=08:00 nametype=NORMAL
type=CWD msg=audit(1488022697.651:1744):  cwd="/"
type=SYSCALL msg=audit(1488022697.651:1744): arch=c000003e syscall=2 success=yes exit=12 a0=f3fb90 a1=800 a2=7f4745221f64 a3=30 items=1 ppid=1 pid=18520 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="pool" exe="/usr/lib/udisks2/udisksd" key=(null)

प्रासंगिक भाग exe = "/ usr / lib / udisks2 / udisksd" है । हालांकि मेरे पास भी था smartmontoolsजिसका smartdअपराधी भी था। मैंने अनइंस्टॉल smartmontoolsकर दिया और udisk2सेवा बंद कर दी service udisks2 stop। उसके बाद उम्मीद के मुताबिक एचडीडी सोता है।

ध्यान दें कि udisks2स्वचालित रूप से शुरू हो जाएगा जब मैं, उदाहरण के लिए, डिस्क अनुप्रयोग खोलें , तो मुझे इसे फिर से रोकना होगा। एक और नकारात्मक पहलू यह है कि SMART पैरामीटर को दोनों डिस्क के लिए मॉनिटर नहीं किया जाता है, जो कि अच्छा नहीं है लेकिन वर्कअराउंड के रूप में यह फिट बैठता है।

इसके अलावा एक बात जो स्पष्ट नहीं है, वह यह है कि यह बग रिपोर्ट कहती udisks2है कि मतदान डिस्क नहीं है जो अब कर्नेल द्वारा किया जाता है। लेकिन प्रमाण इसके विपरीत प्रतीत होते हैं।

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