কীভাবে (নিরাপদে) আলাদা ভলিউমে সরানো / টিএমপি করা যায়?


17

আজ /tmpডিরেক্টরিটি কাজের জায়গায় একটি মেশিনে পূর্ণ। সমস্যাটি ছিল, এটি মূল বিভাজনে ছিল যা খুব বেশি বড় ছিল না। এটি ঠিক করার জন্য, কোনও সহকর্মী /new/tmpঅন্য কোথাও একটি ডিরেক্টরি তৈরি করেছিলেন , সমস্ত বিষয়বস্তুটি নতুন ডিরেক্টরিতে অনুলিপি /tmpকরেছেন , আসলটি সরিয়ে দিয়ে একটি সিমিলিংক তৈরি করেছেন /tmp -> /new/tmp

তিনি যখন ফাইলগুলি অনুলিপি করেছিলেন (সত্যই, এটি অন্য কেউ ছিলেন, আমি নন!) তিনি তখন ব্যবহার করেননি -aযাতে প্রতিটি ফাইলের মালিক /new/tmpছিলেন root। তদ্ব্যতীত, তিনি /new/tmpডিরেক্টরিটির অনুমতিগুলি সেট করেন নি তাই এটি ডিফল্ট 0755 ছিল This এটি সমস্যার কোনও সমাপ্তি ঘটেনি এবং এমনকি টুইটের মোড এবং মালিকানা বিটগুলি মেশিনটিকে একটি গ্রহণযোগ্যভাবে কাজ করতে পুনরুদ্ধার করতে ব্যর্থ হয়েছিল। আমি সবকিছু শেষ করে /tmpপুনরায় বুট করা শেষ করেছি।

/tmpডিরেক্টরি, বিভিন্ন সকেট এবং পাইপ এবং যে কোন বস্তু অন্তর্ভুক্ত যেহেতু মানুষের একটি গুচ্ছ VNC- র মাধ্যমে, Gnome চালানোর জন্য, এবং আমি ব্যবহার screenযা তার নিজের পাইপ হয়েছে।

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

উত্তর:


20

"ক্লায়েন্ট" মেশিনে, সরানোর নিরাপদ উপায়টি /tmpহ'ল রিবুট করা। এখানে, ক্লায়েন্টের দ্বারা, আমি এমন কোনও কিছু বোঝাতে চাইছি যা /tmpবিশেষত এক্স সার্ভার এবং স্ক্রিনে সকেটগুলিকে রাখে এমন প্রোগ্রামগুলি চালায় ।

নতুন /tmpস্পষ্টভাবে, ডান অনুমতি (1777) থাকতে হবে অন্যথায় আপনার একটি চালু সিস্টেম আছে আশা করি করতে পারবে না।

কারণ /tmpআপনি কোনও ফাইলই অনুলিপি করতে পারবেন না। এটি কারণ বেশিরভাগ সময়, প্রোগ্রামগুলি /tmpফাইলগুলিতে খোলার জিনিস রাখে । আপনি যদি ফাইলটি অনুলিপি করেন তবে তা সামগ্রীগুলি অনুলিপি করে তবে প্রোগ্রামগুলিতে এখনও পুরানো ফাইলগুলি খোলা থাকে। আপনি কোনও ডিবাগার ( ptrace) দিয়ে তাদের কাছে পৌঁছাতে সক্ষম হতে পারেন তবে এটি রিবুট করার চেয়ে অনেক জটিল হবে এবং আপনি যে সমস্ত প্রোগ্রাম করেন তা সেগুলি যে কোনওভাবেই ঘটতে পারে ।

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

আপনার নতুন প্রোগ্রামগুলির জন্য স্যুইচ করতে সক্ষম হওয়া উচিত তবে ইউনিয়ন মাউন্ট ব্যবহার করে বিদ্যমান উন্মুক্ত ফাইলগুলি স্থানে রাখা উচিত । (নীতিটি যথাযথ, তবে আমি কখনও চেষ্টা করি নি, তাই বাই-ম-অপ্রত্যাশিত সমস্যা হতে পারে)) লিনাক্সে এটি করার একটি উপায় এখানে।

  1. /tmpকয়েকটি ম্যানুয়ালি-বাছাই করা বড় ফাইলগুলি বাদে সমস্ত বিদ্যমান ফাইলগুলিতে রাখুন ।
  2. একটি /tmp.new(মোড 1777) তৈরি করুন ।
  3. প্রকাশ /tmpএকটি ভিন্ন পথে: mount --bind / /.root.only। এটি প্রয়োজনীয় কারণ পরবর্তী পদক্ষেপটি ছায়া নেবে /tmp। বিভিন্ন ইউনিয়ন মাউন্ট বাস্তবায়ন হতে পারে যার এই পদক্ষেপের প্রয়োজন নেই।
  4. এর ইউনিয়ন মাউন্ট করুন /.root.only/tmpএবং /tmp.new, মাউন্ট করা /tmp। এইভাবে তৈরি নতুন ফাইলগুলিতে /tmpলিখিত হবে /tmp.newতবে এতে থাকা ফাইলগুলিও /.root.only/tmpএর নীচে দৃশ্যমান /tmp। এক সম্ভাবনা আছে unionfs-ফিউজ : unionfs-fuse /tmp.new:/.root.only/tmp /tmp

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

mv /tmp /tmp.old && mkdir /tmp

আপনি কীভাবে / টিএমপি-র নতুন অবস্থানটি একটি রিবুটের মাধ্যমে অব্যাহত রাখবেন তা পরিষ্কার করে বিবেচনা করবেন?
ফক্সডেপ্লয়

@ ফক্সডেপ্লয় এটির জন্য একটি এন্ট্রি রাখুন/etc/fstab
গিলস'স-অশুভ হওয়া বন্ধ করুন '

আপনি সম্ভবত এটি বিস্তারিত বলতে পারেন?
ফক্সডেপ্লয়

@ ফক্সডেপ্লয় আপনি এখানে কী জিজ্ঞাসা করছেন তা আমি নিশ্চিত নই। আপনি যদি /tmpরুট ফাইল সিস্টেমের বাইরে অন্য কোথাও থাকতে /etc/fstabচান তবে বুট করার সময় আপনি যে কোনও ফাইল সিস্টেম যেমন মাউন্ট করতে চান তা ঠিক তেমন তালিকাভুক্ত করুন । আপনি যদি যা জিজ্ঞাসা করছেন তা যদি না হয় তবে আপনার যথেষ্ট প্রসঙ্গে একটি নতুন প্রশ্ন জিজ্ঞাসা করা উচিত।
গিলস 'তাই খারাপ হওয়া বন্ধ করুন'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.