কিভাবে পরিষ্কার / tmp?


73
rizhas@rizhas-laptop:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda7        67G   58G  5,2G  92% /
none            4,0K     0  4,0K   0% /sys/fs/cgroup
udev            1,5G   12K  1,5G   1% /dev
tmpfs           303M  1,2M  302M   1% /run
none            5,0M     0  5,0M   0% /run/lock
none            1,5G  348K  1,5G   1% /run/shm
none            100M   80K  100M   1% /run/user
overflow        1,0M  1,0M     0 100% /tmp
overflow        1,0M  1,0M     0 100% /tmp

কীভাবে পরিষ্কার করবেন /tmp?


1
সম্ভবত ইউনিক্স এবং লিনাক্সে উত্তর দেওয়া হয়েছে । নিশ্চিত না যে এটি এই প্রশ্নটিকে একটি সদৃশ করে তোলে।
drc

নাহ @ ডিআরসি তবে ভাল সন্ধান করুন। আমার উত্তর আপডেট করার জন্য আমি সেখান থেকে একটি লিঙ্ক ব্যবহার করেছি।
রিনজউইন্ড


উত্তর:


116

/ টিএমপি পুনরায় বুট করার সময় পরিষ্কার হওয়ার কথা, তবে আপনি যদি পুনরায় বুট করেন না (যা সার্ভারগুলির পক্ষে স্বাভাবিক), পরিষ্কার করা হবে না

find /tmp -ctime +10 -exec rm -rf {} +

10 দিনের চেয়ে পুরানো সমস্ত ফাইল এবং ফোল্ডারগুলি মুছবে। আপনি এটি দৈনিক ক্রোন যুক্ত করতে চাইতে পারেন।


হালনাগাদ

নীচের মন্তব্যে @ এসফুসনেগার এই কমান্ডটির কিছুটা আলাদা বিন্যাসের প্রস্তাব দেয় যা আপনার প্রয়োজন এবং আপনি যে সিস্টেমে পরিচালনা করছেন তার জন্য আরও উপযুক্ত হতে পারে।

sudo find /tmp -type f -atime +10 -delete

এখানে কমান্ডটি sudoনিশ্চিত হয়ে উঠছে যে সমস্ত কিছু মুছে ফেলা হয়েছে (বা আপনি এটি রুট হিসাবে চালাতে পারেন), 10 টিরও বেশি সময় ধরে অ্যাক্সেস করা হয়নি এমন ফাইলগুলিতে অপারেটিং করছে এবং কেবল ফোল্ডারগুলি নয়, ফাইলগুলি মুছবে । এটি কমান্ড -deleteকার্যকর করতে না পেরেও ব্যবহার করেrm


2
সৃষ্টির সময় (-টাইম) এর পরিবর্তে আপনি অ্যাক্সেসের সময় (-টিটাইম) এর পরিবর্তে ব্যবহার করতে চাইতে পারেন - অবশ্যই কেবল যদি ফাইল-সিস্টেম এই তথ্য রাখে (/ etc /
fstab-এ নোটিমের

7
ঠিক আছে, দয়া করে আমার সাথে সহ্য করুন তবে আরও একটি জিনিস রয়েছে: আপনি কেবল ফাইল ( -type f) অনুসন্ধান করতে চান । অন্যথায় আপনি দেখতে পাবেন যে ডিরেক্টরি গাছের পিতামাতাকে কিছুক্ষণের মধ্যে অ্যাক্সেস করা হয়নি এবং এর সমস্ত সামগ্রী মুছতে পারেন যা সম্ভবত এখনও ব্যবহারযোগ্য হতে পারে। সুতরাং আমি চূড়ান্ত কমান্ডটি আমি প্রস্তাব করবsudo find /tmp -type f -atime +10 -delete
sfussnegger

2
@ সাফুসনেগার, সম্ভবত আপনি আপনার মন্তব্যে কোনও উত্তর প্রচার করতে পারেন? আমি মন্তব্যগুলিতে "লুকানো" থাকার চেয়ে ভাল বলে মনে করি।
জোনাথন

34

আপনি ধরে নিতে পারেন যে কোনও tmp ডিরেক্টরি (/ tmp / / usr / tmp ইত্যাদি) এর ভিতরে থাকা যে কোনও কিছুই মুছে ফেলা যায়। আপনি / tmp / সাল থেকে যে সমস্ত প্রোগ্রাম এবং পরিষেবাগুলি ব্যবহার করছেন তা মুছে ফেলা শুরু করার আগে প্রোগ্রামগুলির মাধ্যমে সেই অধিবেশনটির জন্য অস্থায়ীভাবে তথ্য সঞ্চয় করতে ব্যবহার করা যেতে পারে। সুতরাং একটি করুন sudo service mysql stopএবং sudo service apache2 stopযদি আপনার কোনও মাইএসকিএল এবং / অথবা অ্যাপাচি চলছে। / Tmp / ডিরেক্টরিতে থাকা ফাইলগুলির নাম বেশিরভাগ সময় তারা কোন প্রোগ্রামের অন্তর্ভুক্ত থাকে তার একটি চিহ্ন দেয়।

সুতরাং কমান্ড লাইন থেকে ...

cd /tmp/
pwd
sudo rm -r *

/ tmp / ডিরেক্টরি খালি করে সমস্ত ফাইল এবং উপ-ডিরেক্টরি মুছে ফেলবে। এটি সঠিকভাবে টাইপ করতে সাবধান হন। কমান্ডটি pwdসেখানে প্রয়োজনীয় নয় তবে এটি প্রদর্শন করা উচিত /tmp

যদি আপনি এটি ইন্টারেক্টিভভাবে চান (যাতে আপনার মোছার বিষয়টি নিশ্চিত করতে হবে):

cd /tmp/
sudo rm -ri *

এখানে দেখানোর মতো একটি রিবুটটি / tmp সাফ হয়ে যাওয়ার বিষয়টিও লক্ষণীয়: / tmp ডিরেক্টরিটি কীভাবে পরিষ্কার করা হয়? সুতরাং / টিএমপি / যদি একটি রিবুটের পরে ফাইলগুলি পূর্ণ থাকে তবে এই ফাইলগুলি কোথা থেকে এসেছে তা আপনার তদন্ত করতে হবে।

আমি এটাও বলতে চাই যে / এমপিএমের জন্য 1 এমবি খুব বেশি স্থান নয়। আপনি কি মাইএসকিউএল ব্যবহার করছেন? এটি ঠিক করার জন্য https://unix.stackexchange.com/a/76058/10017 দেখুন (ধন্যবাদ @drc)


2
"কোনও ক্ষতি ছাড়াই" শেষ পুনরায় বুট করার আগে থেকেই ফাইলগুলি ডেটিংয়ের ক্ষেত্রে সত্য। অন্যথায় এটি একটি বর্তমান প্রোগ্রাম দ্বারা ব্যবহৃত হতে পারে এবং (সেই প্রোগ্রামের জন্য) সমস্যার কারণ হতে পারে ... উদাহরণস্বরূপ আমার কাছে স্ক্রিপ্টগুলি রয়েছে যা / tmp এ ফাইল তৈরি করে, এবং তারপরে প্রসেসিংয়ের পরবর্তী পদক্ষেপগুলি করার জন্য তাদের পুনরায় পাঠ করে । এগুলির মধ্যে মুছে ফেলা / ছাঁটাই করা প্রোগ্রামটির ক্রিয়াগুলিকে ব্যাহত করবে (এবং সেই ফাইলগুলি কী ব্যবহার করা হয় তার উপর নির্ভর করে বিপজ্জনক পরিণতির দিকেও নিয়ে যেতে পারে)
অলিভিয়ার ডুলাক

... সুতরাং একটি who –b(সর্বশেষ বুটের তারিখ) ব্যবহার করে, এবং তারপরে বুট করার সময় একটি ফাইল / বুটটাইম তৈরি করা ( touch ....... /boottime), এটি একটি নিরাপদ করার অনুমতি দেয় find /tmp -type f \( ! -newer /boottime \) -delete \;, কেবল শেষ বুটের চেয়ে পুরানো ফাইলগুলি মুছে ফেলতে পারে
অলিভিয়ার ডুলাক

আমি কি উত্তরগুলি প্রসারিত করতে এই মন্তব্যগুলি ব্যবহার করতে পারি? মনে মনে: এখানে / টিএমপি সম্ভবত মাইএসকিএল থেকে এসেছে।
রিনজউইন্ড

4
একজন ব্যক্তি যেমন mktempআমার স্ক্রিপ্টগুলিতে নিয়মিত ব্যবহার করছেন , আমি "কোনও ক্ষতি ছাড়াই" বিবৃতিটির সাথে দৃ strongly়ভাবে একমত নই।
হাইট্রোমো

2
যদি /tmpসর্বশেষ পুনরায় বুট করার চেয়ে পুরনো কিছু থাকে তবে স্টার্টআপ স্ক্রিপ্টগুলি তাদের কাজটি করেনি।
সাইমন রিখর

10

tmpreaperপ্রোগ্রাম পরিষ্কার করতে ব্যবহার করা যেতে পারে / tmp -র পরিবর্তে পর্যায়ক্রমে। এই প্রোগ্রামটি নির্দিষ্ট সময়সীমে অ্যাক্সেস না করা সমস্ত কিছু মুছে ফেলে, সাধারণত দুই সপ্তাহ। এটি সঠিকভাবে কাজ করার জন্য, এটি চালু থাকা ফাইল সিস্টেমটির atimesবিকল্পটি সক্ষম করা উচিত । আপনি যদি কোনও টিএমপিএফ ব্যবহার করেন যা এটি প্রদর্শিত হয় যা আপনি করছেন, তবে আপনার ভাল হওয়া উচিত।

অবশ্যই, রিবুট করা ক্লিয়ার / টেম্প ক্লিয়ার করে তবে এটি বিরক্তিকর হবে।


আমার জন্য অবাক হওয়ার বিষয় এটি উবুন্টু এবং ডিবিয়ান কোনও মানক বিকল্প নয়। তুলনামূলকভাবে অপ্রয়োজনীয় ব্যবহারকারী প্রসেস / টিএমপি পূরণ করা আমার পক্ষে মোটামুটি সাধারণ।
ঋষি

1
হ্যাঁ, তবে এটি এমন একটি নীতি যা সিস্টেম প্রশাসক দ্বারা সেট করা দরকার। আপনার যদি দীর্ঘ-চলমান পরিষেবাদি থাকে যা তাদের ডেটা রাখার প্রত্যাশা করে তবে কোনও ডিফল্ট তবে "কোনও পরিষ্কার নয়" বিপজ্জনক হবে।
সাইমন রিখটার

7

ডিরেক্টরি /tmpমানে অস্থায়ী।

এই ডিরেক্টরিটি অস্থায়ী ডেটা সঞ্চয় করে। আপনাকে এ থেকে কোনও কিছু মুছতে হবে না, এতে থাকা ডেটা প্রতিটি রিবুটের পরে স্বয়ংক্রিয়ভাবে মোছা হয়ে যায়।

তবুও যদি আপনি এটিতে উপস্থিত ডেটা মুছতে চান তবে

sudo rm -r /tmp/*

এগুলি থেকে মুছে ফেলার ফলে কোনও সমস্যা হবে না কারণ এগুলি অস্থায়ী ফাইল।


9
তারা এই অর্থে অস্থায়ী যে রিবুট করার পরে তাদের প্রয়োজন হয় না, এর অর্থ এই নয় যে তাদের এখনই প্রয়োজন হয় না বা তাদের 5 মিনিটে প্রয়োজন হবে না
ড্যানিয়েল সেরোদিও

5
এটি সত্য নয় যে এটি "কোনও সমস্যার কারণ হবে না।" আমি আরও ভাল জানার আগে এবং একবারে আমার মেশিনটি হোস করার আগে আমি এটি একবার করেছিলাম।
কাইল স্ট্র্যান্ড 17


4

মত একটি কমান্ড চালানোর আগে সাবধান rm -r ./*। একবার এটি চালানোর পরে, কোনও ডেটা পুনরুদ্ধার করা খুব কঠিন বা অসম্ভব হবে।

সমস্ত অপসারণ করা হবে। আপনি যে ডিরেক্টরিটি মুছে ফেলছেন তা সঠিক কিনা তা নিশ্চিত করুন।

জিনিসগুলি পরিচালনা করার জন্য একটি নিরাপদ উপায় রয়েছে।

# sudo rm -r /tmp/*

এইভাবে, যখন আপনি দুর্ঘটনাক্রমে আপনার শেলটির অভ্যন্তর থেকে এই আদেশটি চালাবেন history, এটি ভুল ফাইলগুলি মুছবে না (যদি না আপনি এগুলিকে রাখেন তবে /tmp)।


2

/tmpডিরেক্টরি প্রতি বুট ডিফল্টরূপে সাফ হয়েছে, কারণ TMPTIMEহয় 0ডিফল্টরূপে।


1

যদি আপনার "/ tmp" মাউন্টটি একটি লিনাক্স ফাইল সিস্টেমে ওভারফ্লো হিসাবে দেখা যায় (প্রায়শই 1MB আকারের হয়) তবে এটি সম্ভবত "/ tmp" এর নিজস্ব পার্টিশন হিসাবে উল্লেখ না করায় এবং আপনার মূল ফাইল সিস্টেমটি পূরণ হয়েছে এবং "/ tmp" ছিল ফ্যালব্যাক হিসাবে পুনরুদ্ধার। আপনি স্থান সাফ করার পরে এটি ঠিক করতে, কেবল ফ্যালব্যাকটি আনমাউন্ট করুন এবং এটির মূল বিন্দুতে এটি পুনঃনির্মাণ করা উচিত:

sudo umount overflow

ডিভাইস ব্যস্ত ব্যবহারে যদি

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