रूट परमिट और ट्रंकेट, dd, mv, cp और rm के बिना कोटा खत्म होने पर फाइल कैसे निकालें?


2

मैं एक फाइल सिस्टम पर काम कर रहा हूँ जहाँ मेरे पास रूट की अनुमति नहीं है और उपरोक्त सभी मुझे एक ही त्रुटियों वाली फ़ाइल को हटाने की अनुमति देने में विफल रहे हैं:

$ >file1
$ -bash: file1: Disk quota exceeded

$ dd count=1 if=/dev/random of=file1
$ dd: opening `file1': Disk quota exceeded

$ rm file1
$ rm: cannot remove 'file1': Disk quota exceeded

$ cat /dev/null > file1
$ -bash: file1: Disk quota exceeded

फाइलों के एक समूह पर भी यह कोशिश की:

$ mv file1 f
$ mv: cannot move `file1` to `f`: Disk quota exceeded

संपादित करें अब भी कोशिश की है:

$ cp /dev/null file1
$ cp: cannot create regular file 'file1': Disk quota exceeded

कोई फायदा नहीं हुआ (वही त्रुटि संदेश प्राप्त हुआ)

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

इस फाइलसिस्टम के लिए df -s का आउटपुट:

Filesystem            Size  Used Avail Use% Mounted on
zfs1.local:/volatile  699G  699G     0 100% /nfs/volatile

यह भी नहीं होने देंगे खुला फ़ाइल क्योंकि डिस्क कोटा पार हो गया है? वाह। जो टूटी हुई फाइलसिस्टम की तरह दिखता है। जो मैं बता सकता हूं, उससे आपका पूरा माउंट मूल रूप से केवल-पढ़ने के लिए है। आपको संबंधित सिस्टम व्यवस्थापक से आपके लिए कम से कम एक बड़ी फ़ाइल निकालने या अस्थायी रूप से अपने कोटे को हटाने के लिए कहना होगा।
allquixotic

@allquixotic यह वही है जो मुझे डर लगता है: / लेकिन मुझे लगता है कि आप सही हैं
imkendal

क्या आप नाम बदल सकते हैं ( mv ) कोई फाइल? यदि हां, तो एकल-वर्ण नामों के लिए फ़ाइलों का एक गुच्छा नाम बदलने का प्रयास करें। मेटाडाटा ब्लॉकों में पर्याप्त जगह खाली कर सकता है ताकि आप उसे दे सकें rm एक पंक्ति। यदि आपके पास पर्याप्त लंबी फ़ाइल नाम हैं, तो आपको किलोबाइट या अधिक को मुक्त करने में सक्षम होना चाहिए। निश्चित नहीं है कि आपको किसी फ़ाइल को छांटने या हटाने में कितना निशुल्क चाहिए, लेकिन यह आपको कहीं मिलनी चाहिए।
allquixotic

मैंने कोशिश की कि हताशा में कुछ घंटे पहले सोचता हूं कि मैं चतुर था, लेकिन दुख की बात है कि यह एक ही त्रुटि के साथ विफल रहा।
imkendal

क्या फाइलसिस्टम यह है, वैसे? जानती हो? यह फाइलसिस्टम में एक बग हो सकता है जो इसे करना है उपयोग कुछ भी करने के लिए जगह। ज़ीएफएस द्वारा लिखित रूप में कॉपी किए जाने के बाद से साइरस ने वास्तव में जो जवाब पोस्ट किया था, उसे काम करना चाहिए था, और यहां तक ​​कि जेडएफएस भी काम करने की अनुमति देता है।
allquixotic

जवाबों:


1

मेरे मामले में, उपरोक्त में से कोई भी काम नहीं किया जब कोटा 100% भरा था। सौभाग्य से / tmp भरा नहीं था इसलिए मैंने किया:

rsync --remove-source-files -azv file1 /tmp

और इसने समस्या को हल कर दिया।


0

मैंने कमांड 'वाइप' का उपयोग करके सिस्टम को पुनः प्राप्त किया है। कुछ बड़ी फ़ाइल पर निष्पादित करें और फिर कमांड 'rm' का उपयोग करने का प्रयास करें। यह काम करेगा।


1
क्या आप विस्तार से बता सकते हैं- क्यों होगा wipe जब काम rm नहीं है?
bertieb

जैसा कि प्रश्न में allquixotic ने टिप्पणी की है, ZFS एक कॉपी-ऑन-राइट फाइलसिस्टम है, इसलिए फ़ाइल डिलीट करने से पहले डिस्क पर वास्तव में थोड़ी और जगह की आवश्यकता होती है। किसी फ़ाइल को निकालने से पहले उसे मेटाडेटा लिखना होगा, जबकि कमांड पोंछ वास्तव में फ़ाइल सामग्री को उस तरीके से हटा देता है जिस तरह से इसे पुनर्प्राप्त नहीं किया जा सकता है। इसे डिस्क में अतिरिक्त स्थान की आवश्यकता नहीं है। तो स्थिति "डिस्क कोटा से अधिक" प्रभावित नहीं करेगा पोंछ
johny
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.