মুছে ফেলা থেকে / টিএমপি ডিরেক্টরিতে বাধা দিন


10

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

tmp
 |- me # this should stay
 |  |- foo1 # this should be deleted...
 |  |- bar1 # ...and this as well
 |- other stuff...

এই কাজ করতে কোন উপায় আছে কি? অনুমতি সহ বা একটি বিশেষ কনফিগারেশন সহ?


1
কার্যকারণ হিসাবে, আপনার শেলটির লগইন ফাইলগুলিতে "টেস্ট ও এমকেডির" প্রয়োজন হিসাবে কিছু কোড রেখে দিতে পারেন।
জেফ শ্যাচলার

3
/tmpসম্ভবত একটি tmpfsফাইল সিস্টেম। এই ফাইলগুলি সত্যই মুছে ফেলা হয় না; এগুলি কেবল র‍্যামে সঞ্চিত রয়েছে এবং একটি রিবুটে হারিয়ে গেছে। এজন্য আপনি এমন উত্তর পেয়েছেন যা "বুট বা লগইন এ এটি পুনরায় তৈরি করতে"
এমসাল্টার্স

উত্তর:


4

একটি সমাধান @rebootক্রোন জব ব্যবহার করা হবে :

@reboot mkdir -p "/tmp/$USER"

এটি আপনার ক্রোন্টাবের সাথে যুক্ত করা crontab -eযখনই মেশিনটির বুট হয়ে যায় তখন তা কার্যকর হয়।

বা, ব্যবহার

mkdir -p "/tmp/$USER"

আপনার শেলের প্রারম্ভ ফাইলটিতে in

উভয় ক্ষেত্রেই আপনি ব্যবহার করতেও পারেন

TMPDIR=/tmp/$USER
export TMPDIR

যদি আপনি সেই ডিরেক্টরিটি ডিফল্ট অস্থায়ী ডিরেক্টরি হিসাবে ব্যবহার করতে চান তবে আপনার শেলের শুরু ফাইলটিতে।


এটি কি) সমস্ত ব্যবহারকারীর জন্য ডিরেক্টরি তৈরি করবে এবং খ) 'শীতল' প্রারম্ভ থেকে শুরু করবে?
লিনাক্সউইউইন

1
@ লিনাক্স 4উইন এই উত্তরটি একটি একক ব্যবহারকারীর প্রয়োজনকে সম্বোধন করে, কারণ আপনি প্রশ্নটিকে এভাবেই বানান। কীভাবে মেশিনটি বুট করা আছে (গরম, ঠান্ডা বা হালকা গরম) এটি বিবেচনা করে না, তবে হাইবারনেশন থেকে পুনরায় শুরু করার সময় এটি ট্রিগার করবে না (কারণ এটি বুট হচ্ছে না)।
কুসালানন্দ

কোনও কারণে @reboot mkdir -p "/tmp/$USER"ক্রন্টাবের শেষে যুক্ত করা কিছুই করে না, যখন চালানো mkdir -p "/tmp/$USER"আসলে ডিরেক্টরি তৈরি করে। দ্বিতীয়টি আমার পক্ষে সেভাবে কাজ করে না, কারণ আমাকে /tmpঅন্যান্য প্রোগ্রামের মাধ্যমে আমার অ্যাক্সেস করতে হবে এবং
প্রতিবার

@ লিনাক্স 4উইন @rebootক্রোন জব ডিরেক্টরি তৈরি করে না? আপনি ক্রোন ডেমনের কোনও ত্রুটি বার্তা সহ আপনার অ্যাকাউন্টে কোনও ইমেল প্রেরণ করছেন?
কুসালানন্দ

ভাল না ... কারণ আমি কনফিগার না করলাম mail? নাকি এর দরকার নেই?
লিনাক্স

14

আমি pam-tmpdirএটির জন্য ব্যবহার করি : এটি লগইনে একটি ব্যবহারকারী-ব্যক্তিগত অস্থায়ী ডিরেক্টরি তৈরি করে। এটি সেট আপ করতে, যুক্ত করুন

session optional pam_tmpdir.so

উপযুক্ত পিএএম পরিষেবাগুলিতে; ডেবিয়ান-ভিত্তিক সিস্টেমে, libpam-tmpdirপ্যাকেজ ইনস্টল করা আপনার পক্ষে এটি করার প্রস্তাব দিবে বা আপনি লাইনটি যুক্ত করতে পারেন /etc/pam.d/common-session। পরের বার আপনি লগ ইন করবেন, আপনি /tmp/userআপনার ব্যবহারকারীর আইডি সহ একটি ডিরেক্টরি খুঁজে পাবেন TMPএবং TMPDIRযথাযথভাবে সেট করবেন।


7
যথাযথ পিএএম পরিষেবাগুলি কী এবং কীভাবে তাদের সাথে লাইন যুক্ত করা যায় তা আপনি ব্যাখ্যা করতে পারেন? কোন ফাইলগুলি সম্পাদনা করা উচিত?
টেরডন

2

আপনি যদি সিস্টেমডযুক্ত কোনও সিস্টেম চালাচ্ছেন না এবং এটি ক্লিনআপ পরিচালনার জন্য systemd-tmpfiles ব্যবহার করে, তবে আপনাকে সেই সিস্টেমটি ব্যবহার করে ডিরেক্টরিটি কনফিগার করতে হবে।

এখানে একটি সম্পূর্ণ ডকুমেন্টেশন । আপনি সম্ভবত /etc/tmpfiles.d/something.confযা পছন্দসই বিষয়গুলি তৈরি করে তা অর্জন করতে পারেন :

d     /tmp/your_username   0750 your_user your_group  - -

1

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

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

find $HOME/tmp -depth -mtime +30 -print0 | xargs -0 -r rm -rf

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


mkdir a a/b; touch a/b/c। এখন আপনার 30 দিনের মেয়াদ শেষ না হওয়া পর্যন্ত অপেক্ষা করুন। আপনি মুছে ফেলার সাথে সাথে cএটি আপডেট হবে b, যার অর্থ এটি আরও 30 দিনের জন্য অপেক্ষা করতে হবে। অনুরূপভাবে aআপনি মুছলে b। দ্বিতীয়ত, আপনি যদি ফাইলগুলি তৈরি করেন bতবে a30 দিনের জন্য স্পর্শ না করেন তবে aডিরেক্টরিটি rm -rfআপনার সাম্প্রতিক ফাইলগুলি মুছে ফেলবে এবং এর নীচে b
রোয়াইমা

find "$HOME"/tmp -mtime +30 -type f -delete; find "$HOME/tmp" -depth -mmin +60 -type d -exec rmdir {} + 2>/dev/nullআমার জন্য কাজ করে
রোয়াইমা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.