/tmp
ডিরেক্টরিটি কীভাবে পরিষ্কার করা হয়? এটা কি স্বয়ংক্রিয়? যদি তা হয় তবে এটি কত ঘন ঘন পরিষ্কার করা হয়?
/tmp
ডিরেক্টরিটি কীভাবে পরিষ্কার করা হয়? এটা কি স্বয়ংক্রিয়? যদি তা হয় তবে এটি কত ঘন ঘন পরিষ্কার করা হয়?
উত্তর:
বিঃদ্রঃ! এই উত্তরটি কমপক্ষে উবুন্টু 14.04 সাল থেকে পুরানো। বর্তমান পরিস্থিতির জন্য অন্যান্য উত্তর দেখুন এবং সেগুলি সঠিক প্রমাণিত হলে তাদেরকে উগ্রভাবে উত্সাহিত করুন। এছাড়াও মন্তব্য পোস্ট করুন যাতে আমি বর্তমানের সঠিক উত্তরের লিঙ্কটি এখানে রাখতে পারি।
14.04 এর জন্য https://askubuntu.com/a/759048/1366 দেখুন
16.10 এর জন্য https://askubuntu.com/a/857154/453746 দেখুন
২০১১ সালের পুরানো উত্তর:
পরিষ্কারটি /tmp
আপস্টার্ট স্ক্রিপ্ট দ্বারা সম্পন্ন হয় /etc/init/mounted-tmp.conf
। স্ক্রিপ্টটি আপস্টার্ট দ্বারা চালিত হয় /tmp
প্রতিটি সময় মাউন্ট হয়। ব্যবহারিকভাবে প্রতিটি বুট মানে।
স্ক্রিপ্টটি মোটামুটিভাবে নিম্নলিখিতগুলি করে: যদি কোনও ফাইল দিনের /tmp
চেয়ে বেশি বয়সী হয় তবে $TMPTIME
এটি মোছা হবে।
এর ডিফল্ট মান $TMPTIME
0, যার অর্থ প্রতিটি ফাইল এবং ডিরেক্টরি /tmp
মুছে যায়। $TMPTIME
এটিকে পরিবেশগত পরিবর্তনশীল হিসাবে সংজ্ঞায়িত করা হয় /etc/default/rcS
।
ডিরেক্টরি প্রতিটি বুটে ডিফল্টরূপে ক্লিয়ার করা হয়, কারণ TMPTIME
ডিফল্টরূপে 0 হয়।
এখানে আপনি নিম্নলিখিত ফাইলটিতে সময় পরিবর্তন করতে পারেন:
/etc/default/rcS
TMPTIME
কিছু দিন পরে tmp dir কত ঘন ঘন ঘন ঘন পরিষ্কার হয় তা বলে says
tmpreaper
একটি সুযোগ দেওয়া উচিত ।
tmpwatch
একটি উপযুক্ত সরঞ্জাম হতে হবে।
যদিও /tmp
ফোল্ডারের ফাইল সংরক্ষণ করতে দীর্ঘমেয়াদী একটি জায়গা হয় না, মাঝে মাঝে তোমার চেয়ে একটু বেশী সময় কিছু রাখতে চান পরের বার আপনি যখন পুনরায় বুট , যা উবুন্টু সিস্টেমে পূর্বনির্ধারিত। আমি একটি বা দু'বার সময় জানি যে আমি /tmp
পরীক্ষার সময় কিছু ডাউনলোড করেছি , পরিবর্তনগুলি করার পরে পুনরায় বুট করেছি এবং তারপরে আবার মূল ডেটা হারিয়েছি। আপনি যদি নিজের /tmp
ফাইলগুলি কিছুটা দীর্ঘ রাখতে চান তবে এটি পরিবর্তন করা যেতে পারে ।
/tmp
ক্লিনআপ ফ্রিকোয়েন্সি পরিবর্তন করা হচ্ছে
আপনার সিস্টেমটিকে /tmp
পুনরায় বুট করার সময় সাফ করতে বলার ডিফল্ট সেটিংটি /etc/default/rcS
ফাইলটিতে রাখা হয়। মান আমরা তাকান পাবেন TMPTIME
।
বর্তমান মান TMPTIME=0
ফাইলের বয়স সত্ত্বেও রিবুটে ফাইলগুলি মুছুন delete এই মানটিকে অন্য (ধনাত্মক) সংখ্যায় পরিবর্তন করলে কোনও ফাইলের মধ্যে কত দিন বেঁচে থাকতে পারে তার সংখ্যা পরিবর্তন হবে /tmp
।
TMPTIME=7
এই সেটিংটি ফাইলগুলিকে /tmp
এক সপ্তাহ বয়সী না হওয়া পর্যন্ত থাকতে দেয় এবং তারপরে পরবর্তী রিবুটে মুছতে পারে। একটি নেতিবাচক সংখ্যা ( TMPTIME=-1
) সিস্টেমকে কখনই কোনও কিছু মুছতে বলে না /tmp
। এটি সম্ভবত আপনি চান এমন কিছু নয় তবে উপলভ্য।
/etc/init/mounted-temp.conf
, তবে এর মধ্যে এমন লাইন রয়েছে start on mounted MOUNTPOINT=/tmp
যা আমাকে মনে করে যে এটি প্রযোজ্য নয়।
/var/tmp
বদলে রাখুন /tmp
।
আমি এটি উবুন্টু 16.10 এ পরীক্ষা করছি। আমি প্রত্যয়িত করতে পারি যে সম্পাদনা / ইত্যাদি / ডিফল্ট / আরসিএস এর কোনও ফলশ্রুতি নেই এবং tmp এ থাকা ফাইলগুলি আপনি সেই ফাইলটিতে যা রেখেছেন তা রিবুট করে মুছে ফেলা হয়। অন্যরা যেমন উল্লেখ করেছে, টেম্প্রিপার আর ব্যবহার করা হয় না।
আমি মনে করি সঠিক উত্তরটি হ'ল উবুন্টু 16.10 এর একটি নতুন সেটআপ রয়েছে। ম্যান পেজ "tmpfiles.d" এ নথিভুক্ত একটি ফোল্ডার /etc/tmpfiles.d রয়েছে। সেই ফোল্ডারে, / tmp মুছে ফেলা হবে কিনা তা নিয়ন্ত্রণ করতে একটি কনফিগারেশন ফাইল স্থাপন করা উচিত। 20 দিনের বয়স না হওয়া পর্যন্ত / টেম্পে ফাইল মোছা থেকে রিবুটগুলি বন্ধ করতে আমি এটি করছি:
#/etc/tmpfiles.d/tmp.conf
d /tmp 1777 root root 20d
"20d" দ্বারা "-" প্রতিস্থাপন করুন যদি আপনি কখনও ফাইল মুছতে চান না। এটি আমার সেরা প্রচেষ্টা, সেই পুরুষ পৃষ্ঠাটি বিশদ সহ প্রায় দুর্ভেদ্য et
নতুন সেটআপটির সুবিধা হ'ল সিস্টেম রিবুট না করা সত্ত্বেও একটি ফাইল ক্লিনার চালিয়ে যেতে পারে (যেমন সর্বদা সার্ভারে থাকা অবস্থায়)। আমি মনে করি এটি একটি বড় প্লাস।
man tmpfiles.d
d /tmp/ - - - 20d
systemctl start systemd-tmpfiles-clean
আপনি পুনরায় বুট করার সময় এটি পরিষ্কার হয়ে যায়।
tmpreaper
।
একটি systemd
উবুন্টু (15.10 এবং নতুন) এই systemd হল দ্বারা সম্পন্ন করা হয় ব্যবহার করে systemd-tmpfiles-clean
পরিষেবা এবং টাইমার:
$ systemctl cat systemd-tmpfiles-clean.service
# /lib/systemd/system/systemd-tmpfiles-clean.service
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
DefaultDependencies=no
Conflicts=shutdown.target
After=local-fs.target time-sync.target
Before=shutdown.target
[Service]
Type=oneshot
ExecStart=/bin/systemd-tmpfiles --clean
IOSchedulingClass=idle
এবং
$ systemctl cat systemd-tmpfiles-clean.timer
# /lib/systemd/system/systemd-tmpfiles-clean.timer
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
তাই systemd-tmpfiles-clean
শাটডাউন চালায় এবং অন্যথায় প্রতিদিন একবার করে। এটি পরিষ্কার করা ফাইলগুলি অন্য উত্তরে/etc/tmpfiles.d
উল্লিখিত ব্যবহার করে বাড়ানো যেতে পারে ।
আপনি টাইমার আচরণটি নিজেই ব্যবহার করে systemctl edit systemd-tmpfiles-clean.timer
এবং বিভিন্ন সিস্টেমড Timer
কনফিগারেশন বিকল্পগুলি (দেখুন man 5 systemd.timer
) ব্যবহার করে পরিবর্তন করতে পারেন ।
/tmp
এখনও পরিষ্কার হয়নি। এবং আমার এটি পরিষ্কার করা দরকার। এমনকি ম্যানুয়াল sudo systemctl start systemd-tmpfiles-clean
শুরুটি কৌশলটি করে না। কোন ধারণা কেন?
উবুন্টু চলমান আমাদের সার্ভারগুলির মধ্যে একটিতে / টিএমপি-তে ফাইলগুলি সরিয়ে ফেলার জন্য আমাদের কাছে একটি স্ক্রিপ্ট রয়েছে এবং এটি রাত্রে চলে runs
লিপিটি হ'ল:
#!/bin/sh
# Clean file and dirs more than 3 days old in /tmp nightly
/usr/bin/find /tmp -type f -atime +2 -mtime +2 |xargs /bin/rm -f &&
/usr/bin/find /tmp -type d -mtime +2 -exec /bin/rm -rf '{}' \; &&
/usr/bin/find /tmp -type l -ctime +2 |xargs /bin/rm -f &&
/usr/bin/find -L /tmp -mtime +2 -print -exec rm -f {} \;
উপরের বিষয়বস্তুগুলিকে একটি ফাইল chmod 775 ফাইলের মধ্যে সংরক্ষণ করুন এবং এটি চালানোর জন্য ক্রোন এন্ট্রি তৈরি করুন। যেহেতু এটি একটি ওয়েব সার্ভার তাই আমরা সুস্পষ্ট কারণে এটি পুনরায় চালু করতে চাই না।
ln -s /usr /tmp/kaboom
বা এমনকি সক্ষম হয় ln -s /* /tmp/
...
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
/ ইত্যাদি / fstab লাগিয়েছি।