क्या बैश फाइलसिस्टम के साथ सिंक से बाहर निकल सकता है?


12

हो सकता है कि मैं अपने प्रश्न को सही ढंग से समझ नहीं पा रहा हूं, लेकिन मैं उन लक्षणों को समझाने की पूरी कोशिश करूंगा जो मैं अनुभव कर रहा हूं। सबसे पहले, संदर्भ के लिए, मैं एक Ubuntu सर्वर (कोई GUI) नहीं चला रहा हूं, संस्करण 12.04.3 LTS (lsb_release उपयोगिता के अनुसार)। मैं आम तौर पर tmux में अपने सभी काम करता हूं, मैं सर्वर को पुट्टी के माध्यम से जोड़ता हूं, और मैं अपने सभी पाठ संपादन के लिए विम का उपयोग करता हूं।

अब लक्षणों के लिए। चूंकि मैं tmux का उपयोग करता हूं, मेरे पास आमतौर पर हर समय कुछ खिड़कियां खुली रहती हैं। उनमें से एक के पास एक नोड सर्वर है, जिसे मैं साथ खेल रहा हूं, और यह मेरे उपयोगकर्ता खाते के घर (विशेष रूप से ~/battleship) के उपनिर्देशिका में रहता है । सर्वर एक वेबपेज के साथ इंटरैक्ट करता है जिसे मैं nginx का उपयोग करके सर्वर से होस्ट भी कर रहा हूं, और सभी वेबसाइट कोड में रहते हैं /usr/share/nginx/www/bs(मैं क्लाइंट स्रोत को संपादित करने के लिए एक अलग विंडो खुली रखता हूं)। क्या होता है कि सर्वर विंडो के बेकार और अछूता छोड़ने के कई घंटों के बाद, यह सिंक से बाहर हो जाता है। मैं lsफ़ाइलों को चला सकता हूं और देख सकता हूं, और मैं उन्हें संपादन ( vim server.js) के लिए खोल सकता हूं । जब भी मैं ऐसा करूं, चाहे मैं बदलाव करूं और जब मैं चलाऊं तो तुरंत बचाऊं या तुरंत बाहर कर दूंlsफिर से मुझे एक .server.js.swp फ़ाइल दिखाई देती है, और मेरा कोई भी परिवर्तन (यदि मैंने कोई भी किया है) बनी रहती है। यदि मैं उस निर्देशिका से बाहर जाता हूं और फिर वापस अंदर जाता हूं, तो यह अपने आप ठीक हो जाता है - मैं फ़ाइल को खोल सकता हूं और इसे सफलतापूर्वक संपादित कर सकता हूं, जब मैं इसे बंद करता हूं तो .swp को पीछे छोड़ते हुए। मैंने क्लाइंट स्रोत की आधी बातों का उल्लेख किया है क्योंकि मैंने देखा है कि यह / www फ़ोल्डर में नहीं होता है (संभवतः इसलिए कि यह मेरे उपयोगकर्ता खाते के होम डायरेक्टरी के बाहर है)।

पाठ की दीवार के बाद, मेरा सवाल यह है: क्या किसी को पता है कि यह क्यों हो रहा है, और इसे कैसे रोका जाए? मैं केवल किसी तरह की कल्पना कर सकता हूं, यह देखते हुए कि यह एकमात्र लिनक्स सर्वर नहीं है जिसे मैं पोटीन के माध्यम से जोड़ता हूं और tmux / vim का उपयोग करता हूं, और फिर भी यह एकमात्र ऐसा है जहां यह अजीब व्यवहार होता है। किसी भी सहायता की सराहना की जाएगी।

नोट: मैंने इसे बैश, tmux, और पोटीन के साथ टैग किया क्योंकि मैं मान रहा हूं कि उनमें से एक को दोष देना है लेकिन मेरे पास वास्तव में कोई सुराग नहीं है।

अपडेट: इस के उत्पादन में है cat /proc/mountके रूप में गाइल्स द्वारा अनुरोध (अपना उपयोगकर्ता नाम और के मूल्यों के साथ यद्यपि ecryptfs_fnek_sigऔर ecryptfs_sigसेंसर, क्योंकि जब मैं वास्तव में नहीं पता है कि उन दो बातें हैं, वे एन्क्रिप्शन से संबंधित है, और खेद की तुलना में बेहतर सुरक्षित लगते हैं)।

rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,relatime,size=2008532k,nr_inodes=502133,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,relatime,size=807840k,mode=755 0 0
/dev/disk/by-uuid/2da27263-f079-47ba-90ad-66e4c3a53810 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
none /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/kernel/security securityfs rw,relatime 0 0
none /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
none /run/shm tmpfs rw,nosuid,nodev,relatime 0 0
/home/[username]/.Private /home/[username] ecryptfs rw,relatime,ecryptfs_fnek_sig=[censored],ecryptfs_sig=[censored],ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs 0 0

अद्यतन 2: यहाँ का आउटपुट है uname -a:

Linux [server-name] 3.5.0-39-generic #60~precise1-Ubuntu SMP Wed Aug 14 15:38:41 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

अद्यतन 3: मैंने मेमॉस्ट का एक पास पूरा किया। यह उक्त परीक्षण का परिणाम है । लगता है कि बिना किसी त्रुटि के पूरा हुआ है, इसलिए मुझे यकीन नहीं है कि यह किसी भी चीज़ में मदद करेगा। आप मामले में कुछ हार्डवेयर विवरण भी देख सकते हैं जो किसी भी तरह से मदद करता है।


3
नहीं, बैश "फाइलसिस्टम के साथ सिंक से बाहर नहीं निकल सकता", और यह वैसे भी नहीं हो रहा है। यह अधिक है जैसे कि फाइलसिस्टम फाइलसिस्टम के साथ सिंक से बाहर हो रहा है। यह निश्चित रूप से एक समस्या है, और उस पर एक अजीब है। आप किस फाइलसिस्टम (ओं) का उपयोग कर रहे हैं (आउटपुट के बाद cat /proc/mounts)? यह शायद एक वर्चुअलाइज्ड सर्वर है, यह किस तरह के वर्चुअलाइजेशन का उपयोग कर रहा है?
गिल्स एसओ- बुराई को रोकना '

1
@ गिल्स मैंने cat /proc/mountsआपके लिए आउटपुट को शामिल करने के लिए सवाल अपडेट किया है । उम्मीद है कि आपके लिए कुछ मतलब होगा - मैं अभी भी लिनक्स के लिए बहुत नया हूं, इसलिए ऐसा करने से बहुत कुछ सीखने को मिला है, और मैंने अभी तक फाइलसिस्टम के साथ चारों ओर नहीं डाला है (इसका उपयोग करने से परे)।
एलेक्स

4
तो समस्या एक ecryptfs फाइल सिस्टम पर होती है। यह इकोट्रिफ़ट में, या कर्नेल के अन्य हिस्सों में, या यदि लागू हो या हार्डवेयर की गलती हो तो वर्चुअलाइज़ेशन सॉफ़्टवेयर में बग जैसा दिखता है। क्या यह एक बॉक्स में या रैक पर आपके स्वयं के हार्डवेयर पर चल रहा है, या यह कुछ होस्टिंग प्रदाता के साथ एक वर्चुअलाइज्ड सर्वर है? का आउटपुट क्या है uname -a? यदि यह आपका हार्डवेयर है, तो कंसोल में प्लग करें और अगले बूट पर मेमोरी टेस्ट करें। यदि यह होस्ट किया गया है, तो अपने होस्टिंग प्रदाता से संपर्क करें और इन लक्षणों का वर्णन करें।
गिल्स एसओ- बुराई को रोकना '

1
यदि आप चलाते हैं sudo syncतो फ़ाइलें अद्यतन हो जाती हैं?
Braiam

1
सिंक कमांड का प्रयास करें। इसके अलावा df cmd यह दिखाना आसान है कि एक dir कहाँ रहता है। जैसे / खरीद / माउंट लेकिन अधिक पठनीय आउटपुट। करते हैं df -h /www ~/battleship /usr/share/nginx/www/bs। क्या एनक्रिप्ट्स माउंट्स के साथ समस्या है? हो सकता है कि उस डिस्क पर लिखने के लिए अतिरिक्त स्वेट प्रोसेसिंग की आवश्यकता हो ताकि कैशिंग या उसके साथ कुछ हो रहा हो?
गौइथ

जवाबों:


1

एकमात्र अनुभव जो मैंने इस तरह से देखा है जब एक निर्देशिका को हटाया जा रहा था और एक नया बनाया गया था। AIX और Solaris में यह मुद्दा वर्षों पहले था। यदि आपके पास हटाए गए निर्देशिका में एक खुला शेल सत्र है, तो आप अप्रत्याशित परिणाम वापस पा सकते हैं जो एक फ़ाइल सिस्टम के सिंक की तरह दिखते हैं।

bash1: mkdir test1
bash2: cd test1
bash1: touch test1/testfile
bash1: ls test1
testfile
bash2: ls
testfile
bash1: rm -rf test1
bash2: ls
???(unknown results)???

एन्क्रिप्टेड फ़ाइल सिस्टम के रूप में अच्छी तरह से समीक्षा करने के लिए कुछ लगता है। क्या आपने अनएन्क्रिप्टेड फ़ाइल सिस्टम में कोशिश की है?

क्षमा करें, मैं अभी तक टिप्पणी पोस्ट नहीं कर सकता। पर्याप्त अंक नहीं।


यह सवाल के लिए प्रासंगिक है, एक डिफ़ॉल्ट निर्देशिका के साथ बश शेल के साथ जो मौजूद नहीं है, और जिसमें फ़ाइलों को बनाना असंभव है।
ubfan1

1
मैं इस छोटे से प्रयोग की कोशिश कर सकता हूं, लेकिन मैं इस बिंदु पर काफी आश्वस्त हूं कि यह एक क्रिप्टोकरंसी का मुद्दा है। प्रश्न में निर्देशिका निश्चित रूप से अभी भी मौजूद हैं; मैं एक साधारण के बाद सामान्य रूप से काम कर सकता हूं cd .जब मैं थोड़ी देर बाद एक सत्र में वापस आता हूं। इस बिंदु पर मैं ईमानदारी से सब कुछ का समर्थन करने, सर्वर को पोंछने और एन्क्रिप्टेड फ़ाइल सिस्टम के बिना पुनः इंस्टॉल करने पर विचार कर रहा हूं। मैं इस पर कुछ भी महत्वपूर्ण नहीं रखता, इसलिए मैं अपनी फ़ाइलों को एन्क्रिप्ट करने के बारे में चिंतित नहीं हूं।
एलेक्स

Ubuntu में eCryptfs अनुचर / लेखक बग रिपोर्ट के लिए बहुत उत्तरदायी है। यदि आपको कोई समाधान नहीं मिल रहा है, तो शायद यह उससे पूछने या बग रिपोर्ट दर्ज करने के लायक है।
Blujay

0

आप अपने बैश कमांड के बीच सिंक कमांड चलाने की कोशिश कर सकते हैं।

sync - flush file system buffers

मुझे कभी भी उस चीज़ की आवश्यकता नहीं पड़ी, लेकिन कम से कम एक व्यक्ति को जाना जाता है जिसने इसे व्यावहारिक रूप से हर दूसरे आदेश के रूप में टाइप किया है! धीमी डिस्क के साथ अतीत में बुरी तरह से जला दिया गया होगा।

syncकमांड के उपयोग की चर्चा पर इंटरनेट हल्का प्रतीत होता है । यहाँ के लिए बहुत कम मैनुअल प्रविष्टि के लिए एक लिंक है sync: http://www.gnu.org/software/coreutils/manual/html_node/sync-invocation.html

syncयह गारंटी देता है कि डेटा मेमोरी से डिस्क डिवाइस पर लिखा गया है। डेटा अभी भी डिस्क डिवाइस कैश मेमोरी में हो सकता है और डिस्क पर नहीं लिखा है यदि डिस्क डिवाइस स्वयं धीमा है या कोई समस्या है।

आप एक ubuntu सर्वर चला रहे हैं। । । क्या आपके डेस्कटॉप पर एक मशीन है? या यह एक बादल में है? या। । । कुछ और? यहाँ देखें: /server/534627/what-does-the-sync-command-do मेमोरी से धीमा सिंक हार्ड डिस्क की समस्याओं से जुड़ा हो सकता है या शायद अमेज़ॅन AWS के छोटे उदाहरणों के साथ।


1
मुझे यकीन नहीं है कि syncकिसी काम का होगा; मैंने पाया है कि सिर्फ cd .इस मुद्दे को कम करना वैसे भी मुश्किल है। मैंने इसके लिए एक उपनाम बनाया ref(मुझे पता है, एक चरित्र को बचाना थोड़ा मूर्खतापूर्ण है) जिसे मैं हर बार उपयोग करने की आदत में हूं, अब मैं एक पुराने सत्र में वापस आता हूं। सर्वर क्या है, इसके लिए यह मेरा पुराना डेस्कटॉप टॉवर है (मैंने पिछले साल एक नया निर्माण किया था) जो अब उबंटू डिस्ट्रो को चलाने वाले मेरे लिविंग रूम के कोने में रहता है, इसलिए मेरे पास हार्डवेयर और पावर की पूरी पहुंच है जो चल रहा है इस पर।
एलेक्स

0

FWIW इश्यू को ls कमांड द्वारा प्रदर्शित किया जाता है, बैश द्वारा नहीं।

तथ्य यह है कि आप फ़ाइल को देखते हैं इसका मतलब यह अभी भी है। कुछ भी नहीं के साथ सिंक से बाहर है और चल रहे सिंक की कोई भी राशि आपको प्रासंगिक फाइल सिस्टम डेटा की केवल कैश्ड कॉपी का उपयोग करने से नहीं रोकेगी। सिंक केवल डेटा को स्थायी भंडारण के लिए प्रतिबद्ध करेगा, इसके बारे में अपना दृष्टिकोण नहीं बदलेगा।

क्या आप VIM सत्रों का उपयोग कर रहे हैं? मुझे नहीं पता कि वीआईएम सत्र, कभी भी इसका उपयोग स्वयं नहीं किया गया था, लेकिन मुझे लगता है कि tmux के कारण VI सत्र प्रबंधक को एहसास हो सकता है कि फ़ाइल बंद नहीं है और आपके परिवर्तनों को ट्रैक किया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.