2012-02-09 11 views
13

मेरे पास /var/lib/php5 में 5 मिलियन से अधिक सत्र फ़ाइलें हैं I rm * का उपयोग करके इस फ़ोल्डर में सभी फ़ाइलों को हटाना चाहूंगा, हालांकि मुझे यकीन नहीं है कि उस निर्देशिका में सत्र फ़ाइलों के अलावा अन्य फ़ाइलें हैं जिन्हें हटाया नहीं जाना चाहिए।क्या मैं सुरक्षित रूप से/var/lib/php5 में सभी सामग्री को हटा सकता हूं?

एसएसएच के माध्यम से फ़ाइल गिनती करने में कुछ मिनट लग गए और मुझे यकीन नहीं है कि मैं इन सभी यादृच्छिक फ़ाइल नामों के साथ नेविगेट कर सकता हूं। सेटअप ubuntu ल्यूसिड linx, apache 2 और php5 है। सेटअप के सबसे आम में /var/lib/php5 में अन्य फ़ोल्डर्स/फ़ाइलें हैं जिन्हें मुझे हटाना नहीं चाहिए?

संपादित करें कारण मैं फ़ाइलों को हटाना चाहता हूं क्योंकि मैंने डेटाबेस में सत्र हैंडलिंग को स्थानांतरित कर दिया है और अब किसी भी फाइल की आवश्यकता नहीं है।

उत्तर

13

PHP के जीसी स्वयं को क्लीनअप करने दें। Php.ini ढूंढें और session.gc_probability को कुछ बड़ा करने के लिए बदलें, इसे सहेजें और अपाचे को पुनरारंभ करें (किसी भी php स्क्रिप्ट को कॉल करें)। यह यहाँ http://somethingemporium.com/2007/06/obscure-error-with-php5-on-debian-ubuntu-session-phpini-garbage

Debian और Ubuntu में कहते हैं,/var/lib/PHP5, जहां सत्र डेटा संग्रहीत किया जाता है, drwx-wx-भार की अनुमतियों और केवल एक क्रॉन स्क्रिप्ट के द्वारा साफ किया जाना चाहिए। इसलिए, पैकेज रखरखाव स्वचालित सत्र कचरा संग्रह अक्षम करते हैं।

या फिर आप अपने लिपियों में से एक में ini_set('session.gc_probability', 100); session_start(); डाल (यदि आपके session.gc_divisor 100 के बराबर है) और यह कॉल करने के लिए कोशिश कर सकते। सबसे अच्छा तरीका खाली PHP फ़ाइल में डालना है, क्योंकि यह बहुत लंबे समय तक सफाई कर सकता है।

ps: मैं session.gc_probability 1 छोड़ने की कोशिश करता हूं और session.gc_divisor को 1 पर सेट करता हूं। इसे प्रत्येक रन पर जीसी कॉल करना चाहिए, लेकिन आपको केवल एक निर्देशिका सफाई के लिए इसकी आवश्यकता है।

और अपने क्रॉन /etc/cron.d/php5 की जांच करें - इसे/var/lib/php5/निर्देशिका में सत्र फ़ाइलों को शुद्ध करने के लिए प्रत्येक आधा घंटे चलाना चाहिए।

पी पी एस: दिलचस्प टिप्पणी

पाया यह उसे निष्क्रिय नहीं करता है (इसे बाहर टिप्पणी की है)। इंजन के भीतर डिफ़ॉल्ट अभी भी उपयोग किया जाता है - phpinfo() मान 1 दिखाता है। डेबियन (और इस प्रकार उबंटू) में कचरा संग्रह के साथ समस्या है, लेकिन यह है क्योंकि PHP को कचरा खाली करने के लिए चाहते हैं जो पहले ही हटा दिया गया है क्रॉन स्क्रिप्ट द्वारा। यह एक त्रुटि का कारण बनता है जो दुर्भाग्यपूर्ण पृष्ठ पर प्रदर्शित किया जा सकता है।

+0

इन सेटिंग्स को बदलने से सभी पुरानी सत्र फ़ाइलों को हटा दिया जाएगा? असल में मैं बस सभी फाइलों से छुटकारा पाना चाहता हूं, सत्र जीवनकाल हालांकि 2 सप्ताह तक सेट हो गया है। – Moak

+0

@ मोक हां, यह अप्रचलित डेटा हटा देगा। आप क्लीनअप रन के लिए टाइमलाइन भी बदल सकते हैं। बीटीडब्लू, क्या आपके पास सत्र फ़ाइल के नाम पर कोई विशिष्ट हिस्सा है? यदि आप चाहें तो आप इसे फ़िल्टर कर सकते हैं। वैसे भी, क्रॉन नौकरी की जांच करें और इसे चलाएं। – Cheery

+0

मेरे मामले में (SuSE 11.2) यह पहले काम नहीं करता था। मैंने पाया कि 'rpachei' reload' जारी करते समय 'php.ini' में परिवर्तन लागू होते हैं। – Paramaeleon

23
cd /var/lib/php5 
find . -name "sess_*" -print | xargs rm -v 
+1

क्यों न केवल 'आरएम-वी/var/lib/php5/sess_ * '? –

+13

क्योंकि एक बड़ी बड़ी मात्रा में फाइलों के साथ, 'आरएम' समय-समय पर "तर्क सूची बहुत लंबी" त्रुटि के साथ छोड़ देगा, और वास्तव में किसी भी फाइल को हटा नहीं देगा। 'Find' का उपयोग करके फ़ाइलों को ढूंढना और परिणाम को इस सीमा के आस-पास एक-एक करके 'xargs' चरणों में पाइप करना। [अधिक जानकारी] (http://www.moundalexis.com/archives/000035.php) –

0
cd /var/lib/php5 
sudo find . -name "sess_*" -print |sudo xargs rm -v 

यह मेरे मामले में काम किया है। sess_a7kjdaojmneuhcgslj

अगर मैं आदेश का उपयोग इस फ़ाइल को निकालने का प्रयास किया:

0

मेरी ubuntu कंप्यूटर पर, पर/var/lib/PHP5, वहाँ एक सेक्स आईडी फ़ाइल है

sudo rm sess_a7 *

मुझे एक त्रुटि संदेश मिला कि ऐसी कोई फ़ाइल नहीं है।

sudo rm sess_a7kjdaojmneuhcgslj

यह काम किया: मैं के रूप में पूरा नाम का उपयोग किया था। यह मेरा दो सेंट है।

संबंधित मुद्दे

 संबंधित मुद्दे