( यह प्रश्न एक समान समस्या से संबंधित है, लेकिन यह एक घुमाए गए लॉग फ़ाइल के बारे में बात करता है।)
आज मुझे बहुत कम /var
जगह के बारे में एक सिस्टम संदेश मिला है।
हमेशा की तरह मैंने लाइन में कमांड्स को अंजाम दिया, sudo apt-get clean
जिससे परिदृश्य में थोड़ा सुधार हुआ। फिर मैंने रोटेट की गई लॉग फ़ाइलों को हटा दिया जो फिर से बहुत कम सुधार प्रदान करती हैं।
जांच करने पर मैंने पाया कि कुछ लॉग फाइलें /var/log
बहुत बड़ी हो गई हैं। विशिष्ट होने के लिए, ls -lSh /var/log
देता है,
total 28G -rw-r----- 1 syslog adm 14G Aug 23 21:56 kern.log -rw-r----- 1 syslog adm 14G Aug 23 21:56 syslog -rw-rw-r-- 1 root utmp 390K Aug 23 21:47 wtmp -rw-r--r-- 1 root root 287K Aug 23 21:42 dpkg.log -rw-rw-r-- 1 root utmp 287K Aug 23 20:43 lastlog
जैसा कि हम देख सकते हैं, पहले दो अपमानजनक हैं। मैं हल्के से हैरान हूं कि इतनी बड़ी फाइलें क्यों नहीं घुमाई गईं।
तो मुझे क्या करना चाहिए? बस इन फ़ाइलों को हटा दें और फिर रिबूट करें? या कुछ और विवेकपूर्ण कदम उठाए?
मैं Ubuntu 14.04 का उपयोग कर रहा हूं।
अद्यतन १
शुरू करने के लिए, सिस्टम केवल कई महीने पुराना है। मुझे हार्ड डिस्क क्रैश के बाद कुछ महीने पहले स्क्रैच से सिस्टम को स्थापित करना था।
अब, जैसा कि इस उत्तर में सलाह दी गई है , मैंने पहली बार उपयोग की जाने वाली लॉग फ़ाइलों की जाँच की tail
, इसमें कोई आश्चर्य की बात नहीं है। फिर, गहन निरीक्षण के लिए, मैंने इस स्क्रिप्ट को उसी उत्तर से निष्पादित किया ।
for log in /var/log/{syslog,kern.log}; do
echo "${log} :"
sed -e 's/\[[^]]\+\]//' -e 's/.*[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}//' ${log} \
| sort | uniq -c | sort -hr | head -10
done
प्रक्रिया में कई घंटे लग गए। आउटपुट की लाइन में था,
/var/log/syslog : 71209229 Rafid-Hamiz-Dell kernel: sda3: rw=1, want=7638104968240336200, limit=1681522688 53929977 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 17280298 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 1639 Rafid-Hamiz-Dell kernel: EXT4-fs warning (device sda3): ext4_end_bio:317: I/O error -5 writing to inode 6819258 (offset 0 size 4096 starting block 54763121030042024) <snipped> /var/log/kern.log.1 : 71210257 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 71209212 Rafid-Hamiz-Dell kernel: sda3: rw=1, want=7638104968240336200, limit=1681522688 1639 Rafid-Hamiz-Dell kernel: EXT4-fs warning (device sda3): ext4_end_bio:317: I/O error -5 writing to inode 6819258 (offset 0 size 4096 starting block 954763121030042024)
( /dev/sda3
मेरी घर निर्देशिका है। जैसा कि हम पा सकते हैं,
lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk ├─sda1 8:1 0 122.1G 0 part / ├─sda2 8:2 0 7.6G 0 part [SWAP] └─sda3 8:3 0 801.8G 0 part /home
एक प्रक्रिया सीमा से परे क्यों लिखना चाहेगी यह वास्तव में मेरी समझ के दायरे से बाहर है। शायद मैं इस मंच में एक अलग सवाल पूछना चाहता हूँ अगर यह सिस्टम अपडेट के बाद भी जारी रहता है। "
फिर, से इस जवाब (आप देखना चाहें इस बारे में बेहतर समझ के लिए), मैं मार डाला,
sudo su -
> kern.log
> syslog
अब, इन फ़ाइलों का आकार शून्य है। रिबूट से पहले और बाद में सिस्टम ठीक चल रहा है।
मैं अगले कुछ दिनों में इन फाइलों (दूसरों के साथ) को देखूंगा और वापस रिपोर्ट करुंगा कि क्या
उन्हें आउट-ऑफ-लाइन व्यवहार करना चाहिए ।
अंतिम नोट के रूप में, दोनों ऑफेंडिंग फाइलें ( kern.log
और syslog
), शो के grep
अंदर
फाइलों (निरीक्षण) के निरीक्षण के रूप में, घुमाए जाने के लिए सेट हैं /etc/logrotate.d/
।
अद्यतन २
लॉग फ़ाइलों को वास्तव में घुमाया जाता है। लगता है कि एक ही दिन में बड़े आकार प्राप्त हुए।