SSH कनेक्शन को बंद करने के बाद एक rsync नौकरी पूरी होने के बाद


13

मैं बड़ी मात्रा में फ़ाइलों को एक कंप्यूटर से दूसरे में स्थानांतरित कर रहा हूं rsync। मैं स्रोत कंप्यूटर में SSHing द्वारा कर रहा हूँ और इस तरह एक कमांड निष्पादित कर रहा हूँ:

sudo rsync ssh --rsync-path="sudo rsync" source_dir user@host.com:dest_dir

यहां तक ​​कि अगर मैं nohupइस कमांड से पहले जोड़ता हूं , जब भी मैं उस टर्मिनल विंडो को बंद कर देता हूं जिससे मैं SSHed हूं, तो कनेक्शन बंद हो जाता है।

मेरे पास यह कैसे हो सकता है कि जब मैं अपना एसएसएच कनेक्शन बंद कर दूं तब भी मेरी फाइल ट्रांसफर जारी रहे?

जवाबों:


16

कारण nohupआपकी मदद नहीं कर रहा है क्योंकि कार्यक्रम मानक IO फ़ाइलों के साथ काम करता है।

यहाँ ' nohup के लिए विकी पेज का एक अंश है :

नोट - किसी भी तरह की पृष्ठभूमि वाली नौकरियों का उपयोग आमतौर पर दूरस्थ SSH सत्र से लॉग आउट करने पर उन्हें समाप्त करने से बचने के लिए किया जाता है। इस स्थिति में अक्सर उठने वाला एक अलग मुद्दा यह है कि ssh लॉग ऑफ ("हैंग") करने से मना कर रहा है, क्योंकि यह बैकग्राउंड जॉब (एस) से किसी भी डेटा को खोने से इनकार करता है। इस समस्या को तीनों I / O धाराओं पर पुनर्निर्देशित करके भी दूर किया जा सकता है:

nohup ./myprogram > foo.out 2> foo.err < /dev/null &यह भी ध्यान दें कि एक समापन एसएसएच सत्र हमेशा प्रक्रियाओं के आधार पर एक एचयूपी संकेत नहीं भेजता है। दूसरों के बीच, यह इस बात पर निर्भर करता है कि छद्म टर्मिनल आवंटित किया गया था या नहीं।

आप उसके screenलिए उपयोग कर सकते हैं ।

बस के साथ एक स्क्रीन सत्र बनाएँ: screen -S rsync तब, आप अपनी स्क्रीन को CTRL+ के साथ अलग कर लेते हैंA d

और आप SSH से डिस्कनेक्ट कर सकते हैं


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

6

वह स्क्रीन कमांड ठीक है, लेकिन मेरी जरूरतों के लिए बिल्कुल काम नहीं किया।

इसने बहुत अच्छा काम किया:

nohup rsync -va --delete ###.###.###.###:/var/www/sites/ /var/www/sites < /dev/null &

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