আমি কীভাবে নিখরচায় এই স্থির ক্ষতি বন্ধ করব?


15

আমি স্বাভাবিক হিসাবে উবুন্টু চালাচ্ছিলাম, হঠাৎ যখনই আমার কাছে একটি ডায়ালগ বাক্স পেল যা বলেছিল যে আমার কাছে কেবলমাত্র 1.2 গিগাবাইট খালি জায়গা বাকি আছে। এক ঘন্টা আগে, আমার কাছে 30 জিবি ফ্রি স্পেস ছিল।

আমি কিছু জিনিস মুছে ফেলেছি এবং 25 জিবি অবধি বিনামূল্যে স্থান নিয়ে এসেছি। তবে তা কমতে থাকে। আমি পুরানো লগ ফাইলগুলি সরানোর চেষ্টা করেছি এবং লগ ফাইলগুলি কেটে ফেলছি এবং এগুলি হ্রাস অব্যাহত রয়েছে!

আমি ডিস্ক অ্যানালাইজারটি ব্যবহার করার চেষ্টা করেছিলাম যে এই সমস্ত ফাঁকা জায়গার ক্ষতি কোথা থেকে এসেছিল এবং এটি কার্যকর হয়নি, কারণ এটি সবকিছু যেমনটি হওয়া উচিত তাই দেখায়। আমি রিবুট করলাম এবং শেষ পর্যন্ত উবুন্টু একটি ডিস্ক চেক করল যে কোনওভাবে মুক্ত স্থানটি 40 গিগাবাইটে ফিরিয়ে নিয়েছে তবে এটি এখনও প্রায় 10 জিবি দিনে কমতে থাকে। আমি স্থান খালি করার নতুন উপায়গুলি চেষ্টা করে দেখতে এবং এটি চালিয়ে যাচ্ছি, তবে এটি ডিস্কের স্থান হ্রাস করার একটি স্বয়ংক্রিয় প্রক্রিয়ার মতো যা আমি থামাতে পারি না।

আমি কি করতে হবে তা জানি না. কীভাবে আমি কারণটি সন্ধান করতে পারি এবং আমার মুক্ত স্থান হ্রাস হওয়া থেকে থামাতে পারি?

এখানে থেকে আউটপুট sudo du -sh /var/* ~/.xsession-errors:

13M /var/backups
204M    /var/cache
112M    /var/crash
4.0K    /var/games
503M    /var/lib
4.0K    /var/local
0       /var/lock
9.5G    /var/log
85M     /var/mail
4.0K    /var/metrics
24K     /var/opt
0       /var/run
1.7M    /var/spool
391M    /var/tmp
11G     /var/tvmobili
20K     /var/www
224K    /home/school/.xsession-errors

2
আপনি কি আউটপুট সংযুক্ত করতে পোস্ট সম্পাদনা করতে পারেন sudo du -sh /var/* ~/.xsession-errorsদয়া করে? (এই দুটি জায়গা আমি বোকামি করে কিছু আছে তবে আমি উড়ে যাব বলে আশা করব)। অন্যথায়, আমি এলিয়ার সাথে আছি - এটি ডিস্ক সমস্যার সূচক। এটিকে গুরুত্ব সহকারে নিন।
অলি

উত্তর:


26

আপনি নিয়ন্ত্রণের বাইরে কিছু লগ পেয়েছেন। রোজ পাগলের মতো মুছে ফেলার পরিবর্তে দ্রুত বর্ধমান ফাইল বা ফাইলগুলি সন্ধান করুন এবং এর ফলে কী হতে পারে তা অনুসন্ধানের জন্য ভিতরে সন্ধান করুন । কিছু প্রোগ্রাম লুপ লগতে কিছু শর্ত ঘুরছে condition হয় সেই প্রোগ্রামটি অক্ষম করুন, এর লগিংটি অক্ষম করুন বা যে শর্তটি সম্পর্কে অভিযোগ করা হচ্ছে তা ঠিক করার চেষ্টা করুন।

যদি কোনও ফাইল আপনার চোখের সামনে বেড়ে চলেছে এবং কোন প্রোগ্রাম এটি লিখছে আপনার কোনও ধারণা নেই তবে আপনি সহজেই এটি সন্ধান করতে পারবেন। এখানে একটি উদাহরণ। কে /var/log/syslogখোলে? আমরা fuserকমান্ডটি ব্যবহার করি :

# fuser /var/log/syslog
/var/log/syslog:      602

কেবল একটি প্রক্রিয়া /var/log/syslogখোলা আছে। এটি প্রক্রিয়া 602. এটি কি? আমাদের সাথে বিরক্ত না যাক psএবং grepকিন্তু তাকান /procফাইলসিস্টেম সরাসরি:

# ls -l /proc/602/exe
lrwxrwxrwx 1 root root 0 Mar 29 17:45 /proc/602/exe -> /usr/sbin/rsyslogd

আহা, এটা rsyslogd। আমরা বিস্মিত নেই যে rsyslogdহয়েছে /var/log/syslog/খোলা।

এই পদ্ধতিটি কাজের গ্যারান্টিযুক্ত নয়। কারণটি হ'ল প্রোগ্রামগুলিতে ফাইলগুলি লেখার জন্য খোলা ইনো রডার রাখতে হবে না। মনে করুন আপনার কাছে এমন একটি প্রক্রিয়া রয়েছে যা কোনও ফাইল খোলায়, এতে যুক্ত হয় এবং তারপরে এটি বন্ধ করে দেয়। আপনার আরও কিছুটা কঠিন তদন্ত হবে। আপনি fuser"লাল হাতে" প্রক্রিয়াটি অবধি সুযোগ না পাওয়া পর্যন্ত আপনি বহুবার দৌড়াতে পারেন । এই প্রক্রিয়াটি নিজেই অস্তিত্বের মধ্যে andোকা এবং বাইরে যেতে পারে। আরেকটি সমস্যা হ'ল একাধিক প্রক্রিয়াতে ফাইলটি খোলা থাকতে পারে, তবে কেবল একটিই এটি আরও বড় করে তুলছে। সেক্ষেত্রে আপনি তাদের সিস্টেম কলগুলি সনাক্ত করতে পারেন।

# fuser /var/log/huge-annoying-file
/var/log/huge-annoying-file:   1234 23459

ওহো! দুটি প্রক্রিয়া এটি খোলা আছে: 1234 এবং 23459। তারা কী করছে তা দেখুন:

# strace -p 1234
Process 1234 attached - interrupt to quit
select(1, NULL, NULL, NULL, {9, 922666}

এটি কিছুই করছে না, কেবল একটি selectকলে ব্লক করছে । ট্রেস ভাঙ্গতে Ctrl-C:

select(1, NULL, NULL, NULL, {9, 922666}^C <unfinished ...>

পরেরটি পরীক্ষা করুন:

# strace -p 23459
write(5, "Useless garbage ..."..., 512) = 512
write(5, "More useless garbage ..."..., 512) = 512
write(5, "More useless garbage ..."..., 512) = 512
write(5, "More useless garbage ..."..., 512) = 512
write(5, "More useless garbage ..."..., 512) = 512
write(5, "More useless garbage ..."..., 512) = 512
write(5, "More useless garbage ..."..., 512) = 512
^C

উফফ, সে একটানা লিখছে। এটা অবশ্যই খারাপ হতে হবে। এমনকি আমরা এটিও পরীক্ষা করতে পারি যে প্রক্রিয়াটি যে ফাইলটি বর্ণনা করছে 5 এটি আসলে বড় ফাইল:

# ls -l /proc/23459/fd/5
lr-x------ 1 root root 64 Apr  3 23:39 /proc/23459/fd/5 -> /var/log/huge-annoying-file

আপনার সন্দেহ নেই যে আপনার কোনও দূষিত ফাইল সিস্টেম রয়েছে তবে পুরো চেক করার জন্য আপনাকে ডিভিডি বুট করতে হবে না।

প্রথমত, আপনার ফাইল সিস্টেমের সর্বাধিক মাউন্ট গণনা সেটিং পর্যালোচনা করুন। Df কমান্ড ব্যবহার করে আপনার পার্টিশনটি সনাক্ত করুন। আমার এখানে উবুন্টু সিস্টেমের উদাহরণ রয়েছে:

# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       18062108 5499320  11645284  33% /
udev              392152       4    392148   1% /dev
tmpfs             159768     768    159000   1% /run
none                5120       0      5120   0% /run/lock
none              399416     200    399216   1% /run/shm
/dev/sr0           43668   43668         0 100% /media/VBOXADDITIONS_4.1.4_74291

আপনি দেখতে পারেন যে /ফাইল সিস্টেমটি মাউন্ট হয়েছে /dev/sda1। তাই /dev/sda1রুট পার্টিশন (এবং এই বিশেষ ব্যবস্থায় শুধুমাত্র পার্টিশন) এর স্টোরেজ ডিভাইস।

আসুন সেই ফাইল সিস্টেমের কয়েকটি বৈশিষ্ট্য দেখুন। এটি মাউন্ট করা সত্ত্বেও এটি করা নিরাপদ। কমান্ডটি অনেক আউটপুট দেয়। এখানে একটি অংশ:

$ dumpe2fs /dev/sda1
dumpe2fs 1.42 (29-Nov-2011)
Filesystem volume name:   <none>
Last mounted on:          /
[ ... SNIP ... ]
Last mount time:          Fri Mar 29 17:45:18 2013
Last write time:          Tue Mar  5 09:08:03 2013
Mount count:              22
Maximum mount count:      22
[ ... SNIP ... ]

আরে দেখুন, মাউন্ট গণনা সর্বাধিক মাউন্ট গণনার সমান। পরের বার আমি রিবুট করার সময় একটি ফাইল সিস্টেম চেক হবে। গুরুত্বপূর্ণ বিষয়টি হ'ল মাউন্ট গণনাটি একটি ইতিবাচক মান। যদি আপনার শূন্য হয় তবে এটি 22 ব্যবহার করে কিছু ধনাত্মক মানতে পরিবর্তন করুন tune2fs -c 22 /dev/whatever। জিরো মানে পার্টিশনটি যতবার মাউন্ট করা যায় তা নির্বিশেষে কোনও চেক কখনও জোর করা হয় না। খুব কমই পুনরায় বুট করা সিস্টেমগুলির এখানে কম মান থাকা উচিত। একটি সার্ভার যা বছরে একবার নিচে যায় সম্ভবত প্রতিবার রিবুট হওয়ার সাথে সাথে fsck ব্যবহার করতে পারে। আপনি তারিখ-ভিত্তিক চেক অন্তরও সেট করতে পারেন।

এখন একটি চেক জোর করতে, আপনি প্রকৃত গণনা সর্বাধিকের চেয়ে বড় বা সমান হতে ওভাররাইড করতে পারেন এবং তারপরে পুনরায় বুট করতে পারেন। যে রাজধানী সম্পন্ন C: tune2fs -C 1234 /dev/whatever। পার্টিশনটি দেখে মনে হচ্ছে এটি চেক ছাড়াই 1234 বার মাউন্ট করা হয়েছে যা এক বা দুই-অঙ্কের সর্বোচ্চের চেয়ে বড়।


খুব তথ্যপূর্ণ তবে সমস্যাটি সমাধান হয়েছে, এটি ফায়ারওয়ালটি বিশাল লগ ফাইলগুলি
লিখেছিল

2
দেখুন, আমার যেমন সন্দেহ হয়েছিল। কোনও রহস্যজনক ডিস্ক দুর্নীতি স্থান উপরে এবং নীচে ঠাটায় না। আমি বলতে চাইছি এটি কোনও বিচ্ছিন্ন ঘটনার ব্যাখ্যা দিতে পারে, তবে একবার এটি মেরামত করার পরে এটি মেরামত করা উচিত। এবং ড্রাইভ ব্যর্থ হচ্ছে, আপনি কার্নেল লগ এবং আতঙ্কে কিছু ত্রুটি আশা করতে পারেন।
কাজ

হ্যাঁ আমি এটি ড্রাইভটি
নিখুঁতভাবে অনুধাবন করেছি

আপনার সমস্ত ফাইল সিস্টেমে fsck করার একটি সহজ উপায় হল 'sudo টাচ / ফোর্সফেস্ক চালানো; sudo / sbin / shutdown -r এখন '।
ব্লেয়ার জাজাক

3

একটি ডিস্ক চেক কিছু জায়গা মুক্ত করে, প্রস্তাব দেয় যে এই সমস্যাটি (বা এর কিছু অংশ) ফাইল সিস্টেমের দুর্নীতির কারণে হতে পারে। যদি এটি হয় তবে আপনার ফাইল সিস্টেমটি স্ক্যান করে এবং মেরামত করে আরও স্থান খালি করতে সক্ষম হওয়া উচিত। তবে, যদি দুর্নীতি স্থির হয়ে থাকে (যা হতে পারে বা নাও হতে পারে), এর অর্থ সাধারণত হার্ড ড্রাইভটি মারা যাচ্ছে ying যদি আপনার ব্যাকআপগুলি (আপনার দস্তাবেজ এবং অন্য কোনও গুরুত্বপূর্ণ ফাইল যা প্রতিস্থাপন করা শক্ত হবে) সম্পূর্ণ আপ টু ডেট না হয়, দয়া করে এখন গুরুত্বপূর্ণ সমস্ত বিষয় ব্যাক আপ করুন!

ডিস্কটি পরীক্ষা এবং মেরামত করতে, এটি মাউন্ট করা যায় না (কমপক্ষে পড়ুন-লেখাই নয়)। সুতরাং আপনার লাইভ পরিবেশ (লাইভ সিডি / ডিভিডি বা ইউএসবি) থেকে মেরামত ইউটিলিটি চালানো উচিত। প্রথমত, আপনাকে যে ফাইলগুলির মধ্যে রয়েছে সেই পার্টিশনের ডিভাইসের নামটি খুঁজে বের করতে হবে।

সুতরাং, ইনস্টল করা সিস্টেমে চালনা করুন:

mount | grep ' on / '

( /এবং এর মধ্যে স্থান অন্তর্ভুক্ত করার বিষয়টি নিশ্চিত করুন '))

আপনি এর মতো কিছু পাবেন:

/dev/sda8 on / type ext4 (rw,errors=remount-ro)

onআমার মেশিনের উদাহরণে /dev/sda8- - এর পূর্ববর্তী পাঠ্যটি হ'ল - এটি আপনার মূল বিভাজন ( /) এর পুরো ডিভাইসের নাম । এটি লিখুন - আপনার এটি প্রয়োজন।

তারপরে আপনার কম্পিউটারটিকে উবুন্টু ডেস্কটপ সিডি / ডিভিডি বা ইউএসবি ফ্ল্যাশ ড্রাইভ থেকে বুট করুন, যেমন আপনি উবুন্টুকে মূলত ইনস্টল করতে ব্যবহার করেছিলেন। (যদি এটি উইন্ডো ইনস্টলারের সাথে ইনস্টল করা একটি উবি সিস্টেম হয় তবে দয়া করে আমাদের জানান you've আপনি যে প্রতিবেদন করেছেন তা প্রদত্ত আমি এটি প্রত্যাশা করি না, তবে যদি এটি হয় তবে পদ্ধতিটি ভিন্ন হবে))

নির্বাচন ইনস্টল ছাড়াই উবুন্টু ব্যবহার করে দেখুন (না উবুন্টু ইনস্টল করুন )। আপনি যখন কোনও কার্যকরী ডেস্কটপ পান, একটি টার্মিনাল উইন্ডো খোলার জন্য Ctrl+ Alt+ টিপুন T। তারপরে এই কমান্ডটি চালান:

sudo e2fsck -fkccp /dev/sda8

/dev/sda8আপনার /বিভাজনের জন্য সঠিক পুরো ডিভাইসের নামটি প্রতিস্থাপন করার বিষয়টি নিশ্চিত করুন , যেমন আপনি উপরে বর্ণিত পদ্ধতিটির মাধ্যমে পেয়েছেন।

এটি কিছুটা সময় নিতে পারে। এই cকমান্ডের অন্তর্ভুক্ত বিকল্পগুলির ফলে ত্রুটিগুলির পাশাপাশি ফাইল সিস্টেমের (এবং কোনও খারাপ অঞ্চলকে ব্যবহার করা হয় নি খারাপ হিসাবে চিহ্নিত করার জন্য) ডিস্কের পৃষ্ঠটিকে স্ক্যান করার কারণ হয়ে থাকে। আপনি ccযদি চান তবে আপনি বাইরে যেতে পারেন (যদি আপনি এটি করেন তবে আপনি বাইরেও যেতে পারেন k) তবে আমি তাদের এগুলি রাখার পরামর্শ দিই।

কিছু সমস্যা সমাধানের বিষয়ে আপনাকে জিজ্ঞাসা করা যেতে পারে, যদি e2fsckমনে করে যে এগুলি সমাধানের চেষ্টা করার ফলে ডেটা ক্ষতি হতে পারে significant ( pএটি এটি তৈরি করে যাতে এটি কোনও সমস্যা সমাধান করে যে এটি আত্মবিশ্বাসের সাথে জটিলতা সৃষ্টি না করেই সমাধান করতে পারে))

আমি আপনাকে প্রস্তাব দিচ্ছি যে আপনি যা চান তা ঠিক করার অনুমতি দেওয়ার জন্য আপনি দৃ strongly়ভাবে ঝুঁকছেন, যেহেতু আপনার ব্যাকআপগুলি বর্তমান রয়েছে তা নিশ্চিত করার পরে আপনার কেবল এটি করা উচিত । আপনি যদি এটি না জিজ্ঞাসা না করে এমনকি সম্ভাব্য বিপজ্জনক সংশোধন করার চেষ্টা করতে চান তবে এর pসাথে প্রতিস্থাপন করুন y

এর পরে, আপনার উবুন্টু সিস্টেমে ফিরে বুট করুন এবং দেখুন জায়গাটি খালি হয়েছে কিনা। যদি তা না হয় বা সমস্যা অব্যাহত থাকে তবে বিস্তারিত জানাতে আপনার প্রশ্নটি মন্তব্য করুন এবং সম্পাদনা করুন।


আমার যদি ব্যাকআপ নেওয়ার কিছু নেই?
Askcompu

1
@ ব্যবহারকারী2045360 কিছু চুরি, থাম, ধার বা কিছু কিনুন। অথবা এটিকে অনলাইনে চাপ দিন (উবুন্টু ওয়ান, ড্রপবক্স, গুগল ডক্স, এস 3, ইত্যাদি)।
অলি

@ user2045360 এটি নির্ভর করে যে আপনার কতগুলি এবং কী ধরণের গুরুত্বপূর্ণ ফাইল রয়েছে। যদি সেগুলিতে 20 টি দস্তাবেজ থাকে (বা এমনকি 100, যদি আপনি ধৈর্যশীল হন) তবে আপনি সেগুলি নিজের কাছে ইমেল করতে পারেন। আপনি উবুন্টু ওয়ান বা ড্রপবক্সের মতো ক্লাউড স্টোরেজ পরিষেবাও ব্যবহার করতে পারেন (কেবল সাবধান হন - আপনি যদি সিঙ্কের জন্য কিছু সেট করে থাকেন এবং কোনও ফাইল যদি আপনার কম্পিউটারে মুছে ফেলা হয় বা পরিবর্তন হয় তবে একই পরিবর্তন মেঘে ঘটবে)। অন্যদিকে, আপনি যদি একজন চলচ্চিত্র নির্মাতা এবং আপনার কাছে 300 গিগাবাইট ফুটেজ থাকে তবে আপনার কেবলমাত্র বিকল্পটি সম্ভবত বাহ্যিক হার্ডড্রাইভের মতো কিছু স্টোরেজ মিডিয়া কেনা (বা, অলি বলেছে, ধার করা)।
এলিয়াহ কাগান

আমার কাছে কোনও টাকা নেই এবং bণ নেওয়ার জন্য কিছুই নেই, এই আদেশের সাহায্যে ডেটা ক্ষতি হওয়ার সম্ভাবনা কতটা?
Askcompu

@ user2045360 এই কমান্ড থেকে ডেটা ক্ষতির সম্ভাবনা e2fsckখুব কম, বিশেষত যদি আপনি এমন কোনও yকিছুর জন্য চাপ না দেন যা আপনাকে ডেটা হারাতে পারে বলে সতর্ক করে। তবে এই আদেশটি চালানো আপনার ডেটা ব্যাকআপ করার প্রয়োজন নয়। আপনাকে আপনার ডেটা ব্যাক আপ করতে হবে কারণ খালি জায়গায় আপনার ড্রপের দ্রুত এবং ধারাবাহিক প্রকৃতি দৃ strongly়ভাবে পরামর্শ দেয় যে আপনার হার্ড ড্রাইভ শারীরিকভাবে সম্পূর্ণ ব্যর্থ হতে পারে । যদি এটি হয়, আপনি এটির কোনও ডেটা হারাবেন এবং প্রায় অবশ্যই এটির কোনও পুনরুদ্ধার করতে সক্ষম হবেন না। ব্যাকআপ নেওয়ার অন্যান্য উপায়গুলির মধ্যে অন্য কোনও মেশিনের নেটওয়ার্ক বা সিডি / ডিভিডি অন্তর্ভুক্ত রয়েছে।
এলিয়াহ কাগান

0

এই সমস্যাটি সমাধান করা হয়েছে, এটি ফায়ারওয়ালটি ছিল অনেকগুলি লগ এবং টিভিমোবিলি এনকোডিং ফাইল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.