मैं rsync को कैसे रोक / फिर से शुरू कर सकता हूं


49

मैं कैसे चल रहे rsync को रोक सकता हूं?

पहली बार मैंने इसे मारने के लिए Ctrl+ Cकिया और -Pध्वज को फिर से चलाने के लिए उपयोग किया । क्या यह मौजूदा फ़ाइल स्थानांतरण को दूषित करने की संभावना है?

दूसरी बार मैंने बस MacOS को सोने के लिए रखा (ढक्कन को बंद करके)। चल रही प्रक्रिया को देखते हुए मैं 'S' की स्थिति के साथ 2 (निश्चित नहीं क्यों) देख सकता हूं।

का उपयोग करने की कोशिश की

kill -SIGCONT

प्रक्रिया को फिर से शुरू करने के लिए, लेकिन इसका कोई प्रभाव नहीं है।

जवाबों:


61

आप इसे TSTP(विनम्र) या STOP(जबरन) संकेत भेजकर किसी भी कार्यक्रम को रोक सकते हैं । आपके द्वारा चलाए जा rsyncरहे टर्मिनल पर , Ctrl+ Zभेजता दबाकर TSTP। टर्मिनल या सिग्नल में fgया bgकमांड के साथ फिर से शुरू करें CONT

एक rsync प्रक्रिया को मारना और पूरी चीज़ को फिर से चलाना सुरक्षित है; यह वहीं रहेगा जहां इसने छोड़ा था। यह थोड़ा अक्षम हो सकता है, खासकर यदि आप पारित नहीं हुए हैं --partial(शामिल हैं -P), क्योंकि rsyncसभी फाइलों को फिर से जांचेंगे और उस फाइल को संसाधित करेंगे जो खरोंच से बाधित थी।

विकल्पों के असामान्य संयोजन हो सकते हैं जो कुछ फ़ाइलों को ठीक से सिंक्रनाइज़ नहीं होने देंगे, शायद --inplaceकुछ और के साथ, लेकिन मुझे लगता है कि कोई भी एकल विकल्प इसका कारण नहीं होगा।

यदि आप अपने लैपटॉप को डिस्कनेक्ट करते हैं और इसे कहीं और फिर से कनेक्ट करते हैं, तो यह एक अलग आईपी पता प्राप्त कर सकता है। तब rsync द्वारा उपयोग किया गया टीसीपी कनेक्शन विच्छेद हो जाएगा, इसलिए आपको इसे मारना होगा और फिर से शुरू करना होगा। ऐसा तब भी हो सकता है जब आप अपने लैपटॉप और टीसीपी कनेक्शन को कई बार निलंबित कर देते हैं। मध्यांतर अंततः आवेदन स्तर तक फ़िल्टर हो जाएगा, लेकिन इसमें कुछ समय लग सकता है। यह प्रेस सुरक्षित है Ctrl+ Cऔर rsync फिर से चलाने के।


1
वास्तव में मारने rsync -avhसे वर्तमान फ़ाइल की प्रतिलिपि बनाई जा रही है, यदि फ़ाइल बड़ी है तो आपने काफी समय खो दिया है। हो सकता है Ctrl+zकि अस्थायी फ़ाइल (डॉट के साथ शुरू) और फिर Ctrl-Crsync एक बेहतर समाधान हो।
malat

इस तरह के एक विस्तृत विवरण के लिए धन्यवाद। स्पष्ट करने के लिए: ctrl + z को रोकें, फिर से शुरू करने के लिए, रोकने के लिए bg।
प्रागस

3
@Praagagus bgप्रक्रिया को b ack g दौर में डालने के लिए , रुकने के लिए नहीं।
जरी किनेलेन

--partialमैं क्या जरूरत है। मैं 21GB डेटा कॉपी करने की कोशिश कर रहा हूं, और इनमें से मेरे पास एक 6.6GB फाइल है। समस्या यह है कि नेटवर्क कुछ जीबी डेटा ट्रांसफर के बाद मेरे कनेक्शन को मार देता है, जिसके लिए --partialमुझे ठीक वही चाहिए।
एंथनीडब्लू 973

20

Ctrl+ Zनिलंबित करने के लिए, और:

$ fg

जारी रखने के लिए, का उपयोग करें

$ jobs

निलंबित नौकरियों को देखने के लिए; bg [number]उन्हें पृष्ठभूमि के लिए; fg [number]इसे अग्रसर करने के लिए।


2
Ctrl+Sकेवल स्क्रॉलिंग आउटपुट को निलंबित करता है, न कि अंतर्निहित प्रोग्राम (जब तक कि यह अपने आउटपुट को स्वीकार करने के लिए टर्मिनल के इंतजार में अवरुद्ध नहीं हो जाता है), और केवल तभी जब आपने इसे अक्षम नहीं किया हो।
गिलेस एसओ- बुराई को रोकना '

1
वर्तमान 'एस' स्थिति के साथ यह फिर से शुरू नहीं होता है। क्या Ctrl + C का उपयोग करके इसे मारना और फिर से rsync चलाना सुरक्षित है? मेरे पास अन्य विकल्प क्या हैं? हालांकि अगली बार मन में होगा, धन्यवाद।
qnoid

1
यह भी ध्यान दें कि किसी प्रक्रिया को स्थगित करने के लिए Ctrl-Z की संभावना है, कुछ समय बाद, उस प्रोग्राम द्वारा स्थापित किए गए किसी भी टीसीपी नेटवर्क कनेक्शन के टाइमआउट के परिणामस्वरूप। इस प्रकार कुछ मिनटों से अधिक समय के लिए निलंबित किए गए rsync को छोड़ने से बहुत संभव है कि यह त्रुटि संदेश के साथ अचानक छोड़ने का कारण बन जाए जब आप इसे अग्रभूमि में वापस डालते हैं और यह पाता है कि इसके खोले हुए सॉकेट्स रीड और राइट्स से त्रुटियों को वापस कर रहे हैं।
जिम डेनिस

8

झंडे के rsyncसाथ भागो --partial। यह तब आंशिक स्थानांतरण रखेगा और शुरू होने पर आंशिक फ़ाइलों को फिर से शुरू करेगा।


5

यहां के लोग उपयोग करते हुए उल्लेख किया है --partialझंडा काम करती है, यह फिर भी उल्लेख किया जाना है कि यह केवल शुरू जब जरूरत --appendया --append-verifyझंडा जब शुरू करने के लिए इस्तेमाल किया जाता है।

--partialफ़ाइल की एक छिपी हुई फ़ाइल बनाता है जिसने सिंक प्रक्रिया को समाप्त नहीं किया है, जब आप सिंकिंग को बाधित करते हैं तो फ़ाइल रखी जाती है। यह फ़ाइल --appendको फिर से शुरू करने के बाद उपयोग करना जारी रखता है , अन्यथा उपयोग न करने पर --append, अधूरी छिपी हुई फ़ाइल को रखा जाता है और अपूर्ण रहता है।

निष्कर्ष: यदि आप पुन: आरम्भ करते समय उपयोग करते हैं तो आप + rsync --partialका उपयोग कर सकते हैंCtrlCrsync --append

(स्रोत: बाधित होने के बाद rsync फिर से शुरू हो सकता है? पुनर्प्राप्त 5 अप्रैल 2016)


इसलिए यदि मैंने उपयोग किया है rsync --avP <source> <destination>, तो मुझे इसे CTRL + C द्वारा रोकना होगा और फिर बस टाइप करके फिर से शुरू करना होगा rysnc --append?
किंगमेकरिंग

@kingmakerking हाँ
मेहदी नेलन

@kingmakerking: नहीं, आपको अभी भी अपने पहले rsync, और स्रोत और गंतव्य से विकल्पों की आवश्यकता है। फिर से शुरू करने के लिए, आप अपने पिछले rsync कमांड को पुनरारंभ करें, और मौजूदा विकल्पों में जोड़ें --append
mivk
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.