अस्थिर लैन पर फ़ाइलों को स्थानांतरित करने का सबसे अच्छा तरीका?


5

यह बहुत समान है प्रश्न 326211 , लेकिन इस मामले में, LAN एक अस्थिर वाई-फाई कनेक्शन है।

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

अभी, मैं धीरे-धीरे फ़ाइलों को स्थानांतरित कर रहा हूं, एक-एक करके, एसएफटीपी के पार, लेकिन मुझे प्रत्येक कंप्यूटर को लगभग हर 90 सेकंड में फिर से कनेक्ट करना होगा, और कंप्यूटर एक-दूसरे के बहुत करीब नहीं हैं, इसलिए यह संभव नहीं है।

यह प्रश्न 30186 की नकल नहीं है; वह विशेष रूप से विंडोज 7 की चिंता करता है, और सभी प्रस्तावित समाधानों में बंद-स्रोत, विंडोज-केवल प्रोग्राम (जो सभी स्पाइवेयर IMHO हैं, और सभी टेबल से दूर हैं, भले ही मैंने उन पर भरोसा किया हो - कंप्यूटर में से एक केवल लिनक्स है।)


5
लिनक्स कब से वाई-फाई समर्थन "भयानक" है? मुझे कभी कोई समस्या नहीं हुई।
snapshoe

1
@snapshoe जब से मैंने 4 अलग-अलग वाई-फाई एडेप्टर की कोशिश की, और द सबसे स्थिर भारी उपयोग के दौरान हर 90 सेकंड में एक ओवरहीट होता है! और यह कि ड्राइवर को अपडेट करने के बाद ... मैं नए संस्करण को मुश्किल से डाउनलोड कर सकता हूं, और यहां तक ​​कि मेरे लंग-ओ 10 एमबीटी डीएसएल के साथ, मेरा वाई-फाई आमतौर पर एक चोकपॉइंट है। मुझे पता है कि हर कोई हमेशा कहता है कि लिनक्स में बढ़िया वाई-फाई का समर्थन है, लेकिन यह मेरा अनुभव नहीं है। कुछ वाई-फाई एडाप्टर के लिए उबंटू आउट-ऑफ-द-बॉक्स का समर्थन करता है, उनमें से कोई भी विंडोज पर प्राप्त गति और स्थिरता को प्रतिद्वंद्वी करने के करीब नहीं आता है।
JamesTheAwesomeDude

2
क्यों डरपोक एक विकल्प नहीं है? en.wikipedia.org/wiki/Sneakernet यह विस्मयकारी है! 16gb USB फ्लैश ड्राइव का उपयोग करें। या ऑटो पुनः कनेक्ट (पुनः प्रयास) विकल्प के साथ ओपन सोर्स फाइलज़िला का उपयोग करें।
JP Hellemons

मेमोरी स्टिक, HTH :)
Ardesco

@ सन्नपोशो: कई अनेक लैपटॉप में वायरलेस कार्ड होते हैं जिन्हें मालिकाना ड्राइवरों की आवश्यकता होती है जो ओएस के साथ स्थापित नहीं होते हैं।
medivh

जवाबों:


8

के बारे में 7zip या winrar के विभाजन अभिलेखागार बनाने के लिए कुछ का उपयोग करने के बारे में, 50MB प्रत्येक कहते हैं। इस तरह आप कनेक्शन ड्रॉप होने तक फ़ाइलों को स्थानांतरित कर सकते हैं लेकिन आपको हर बार खरोंच से शुरू करने की आवश्यकता नहीं है।

# -mx0 indicates no compression to be used (quickest method)
7z a -mx0 -v50m video.7z myVideo.mp4

एक बार सभी फ़ाइलों को स्थानांतरित (उपयोग करके) scp या समतुल्य) बस फिर से निकालें और निकालें? आप शायद एक साथ कई फ़ाइलों को स्थानांतरित करने से बेहतर गति प्राप्त करेंगे।

-

संपादित करें : मुझे पता है कि आपने कहा कि हटाने योग्य मीडिया सवाल से बाहर था, लेकिन क्या आप कंप्यूटर 1 से हार्ड डिस्क को हटा सकते हैं और ट्रांसफर करने के लिए बस कंप्यूटर 2 में प्लग कर सकते हैं?


बंद करें ... लेकिन कोई पासा नहीं। फाइलें MP4 वीडियो हैं, और प्रत्येक के बारे में 30 मिनट लंबा (~ 190 MiB), इसलिए प्रत्येक संपीड़न विधि 2 मिब .. के बारे में ADDS सरलता के लिए, हालांकि!
JamesTheAwesomeDude

1
मैं इसे संपीड़ित करने के लिए नहीं कह रहा हूं - जब कनेक्शन ड्रॉप हो जाता है तो पूरे हस्तांतरण को पुनरारंभ करने से रोकने के लिए इसे विभाजित करने के लिए। लगता है कि आप इस बिंदु को याद कर रहे हैं।
James

2
ओह मैं समझा। क्षमा करें, हां, मुझे वहां की बात याद आ गई। लेकिन तब यह केवल उपयोग करने के लिए बहुत तेज़ होगा split तथा cat, और संभवतः tar पहले से एक बड़े चंक में सभी फाइलें प्राप्त करने के लिए
LSerni

1
मुझे इसके बारे में और बताओ split आदेश .. ऐसा लगता है कि यह मैं देख रहा हूँ droid हो सकता है ...
JamesTheAwesomeDude


11

सबसे पहले मैं कोशिश करूँगा और देखूंगा कि क्या कनेक्शन को अधिक स्थिर बनाना संभव है। फ़ाइल स्थानांतरण के अलावा, मुझे नहीं लगता कि हर 90 सेकंड में एक कनेक्शन के साथ काम करना स्वस्थ है।

एक साधारण यूएसबी वाईफाई डोंगल वहां चमत्कार कर सकता है (पहले, जांच करें कि कौन सा डिवाइस वास्तव में वियोग का कारण बन रहा है: होस्ट ए, होस्ट बी या एक्सेस प्वाइंट?

संभवतः, लिनक्स के पास सिग्नल हानि के साथ करने के लिए कुछ भी नहीं है, बल्कि वाईफाई अस्थिरता का मामला है दर असल । एक्सेस पॉइंट को कम गति पर लॉक करने का प्रयास करें। यहां तक ​​कि एक ठोस 11 एमबीपीएस, यदि रॉक-सॉलिड, एक परतदार 54 एमबीपीएस कनेक्शन को बेहतर बनाएगा। और बहुत बार, कार्ड उच्च गति के लिए प्रयास करेंगे भले ही, स्थिति को देखते हुए, वे संभवतः वितरित नहीं कर सकते

यदि आप एक ऐसे कनेक्शन के साथ फंस गए हैं जो हर 90 सेकंड में गिरता है और फिर से जुड़ता है, तो आपका सबसे अच्छा दांव या तो हो सकता है rsync या पुनर्जागरण के बीच फ़िल्टर करने के लिए फ़ाइलों को छोटे टुकड़ों में काट लें:

split -b 10000000 file.mp4

फ़ाइल को एन चंक्स में विभाजित किया जाएगा (कहते हैं) 10 MiB प्रत्येक, कहा जाता है xaa, xab, xac... एक बार जब कॉपी पूरी हो जाती है, तो आप दूसरी ओर का उपयोग करके चूजों को फिर से इकट्ठा कर सकते हैं cat

एक अन्य संभावना उदाहरण के लिए, टीसीपी को पूरी तरह से त्यागने और यूडीपी आधारित प्रोटोकॉल का उपयोग करने की हो सकती है UDT या UFTP

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

यह स्थापित करने के लिए लंबा है, लेकिन फिर इसे स्वचालित रूप से जाना चाहिए और उपलब्ध और परीक्षण किए गए & amp; सिद्ध सॉफ्टवेयर (अपाचे, wget)।

फिर से आया - फिर से गया - फिननेगन

यह सुनिश्चित करने के लिए कि आपको स्क्रिप्ट को सिंक करने की आवश्यकता है, या आप कनेक्शन का बहुत समय बर्बाद करेंगे, आप शायद साथ खेल सकते हैं भी iwconfig या ifup/ifdown पहुँच बिंदु को व्यवहार करने के लिए बाध्य करने के लिए

while true; do ifdown wlan0; ifup wlan0; sleep 90; done

या यदि आप इसे एक स्क्रिप्ट के रूप में चलाना चाहते हैं (इसे रूट एक्सेस की आवश्यकता होगी, अगर * कमांड्स चलाने के लिए)

#!/bin/sh
while true; do
    echo "Going down..."
    ifdown wlan0
    echo "Coming up..."
    ifup wlan0
    echo "Ready"
    sleep 90
done

ए (उम्मीद है) बेहतर तरीका है

"90 सेकंड की नींद" के साथ समस्या यह है कि जब तक कुछ है वास्तव में राउटर में अजीब तरह से ज्वलंत गलत, जिस समय यह रहता है वह बिल्कुल 90 सेकंड नहीं होगा। इसलिए हम बहुत समय बर्बाद कर रहे हैं या तो जब वाईफाई वाहक नीचे है, या नीचे जा रहा है जब वाईफाई वाहक ऊपर रह सकता है।

तो मान लें कि राउटर में IP 192.168.0.1 है, दोनों लिनक्स होस्ट्स पर हम चलते हैं

#!/bin/sh

IP=192.168.0.1

while true; do
    if ( ping -f -c 3 -w 1 $IP | grep "0 received" > /dev/null ); then
        ifdown wlan0
        ifup wlan0
        # Extra time: we MUST be sure the network is up!
        sleep 5
    fi
    sleep 2
done

यह स्क्रिप्ट राउटर की ओर तीन पैकेट शूट करेगी। पैकेट काफी छोटे हैं और बैंडविड्थ को बहुत प्रभावित नहीं करेंगे। एक गिरा पैकेट हो सकता है घटाव, दो संयोग - तीन गिरा पैकेट एक WLAN शक्ति चक्र को ट्रिगर करता है। उम्मीद है, यह चाहिए प्रति चक्र (90 सेकंड तक) के बजाय दो सेकंड के समय से अधिक समय बर्बाद न करें, और जब तक कोई आवश्यकता न हो, कभी भी एक बिजली चक्र को ट्रिगर न करें।

यह बिना कहे चला जाता है कि पिंग कार्यक्षमता को राउटर पर सत्यापित किया जाना चाहिए - यदि राउटर पिंग का जवाब नहीं देता है, या टीसीपी / यूडीपी लोड के तहत आईसीएमपी को गिरा देता है (जैसे प्रोटोकॉल प्राथमिकता के कारण), तो स्क्रिप्ट का दूसरा संस्करण कर सकता है अच्छे से ज्यादा नुकसान।

लेकिन अब जब मैं इसके बारे में सोचता हूं, तो क्या आपने कोशिश की है और इसके साथ बेला है iwconfig मापदंडों? उदाहरण के लिए संवेदनशीलता सीमा:

Sens संवेदनशीलता सीमा निर्धारित करें। यह परिभाषित करता है कि खराब ऑपरेटिंग परिस्थितियों (कम सिग्नल, हस्तक्षेप) के लिए कार्ड कितना संवेदनशील है।   सकारात्मक मान को हार्डवेयर द्वारा उपयोग किया जाने वाला कच्चा मान माना जाता है   या प्रतिशत, नकारात्मक मान dBm माना जाता है।

हार्डवेयर कार्यान्वयन के आधार पर, यह पैरामीटर नियंत्रित कर सकता है   विभिन्न कार्य।

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

उदाहरण :

   iwconfig eth0 sens -80
   iwconfig eth0 sens 2

दोनों उपकरणों के कनेक्शन नियमित आधार पर अस्थिर हैं। मेरे द्वारा उपयोग किया जा रहा राउटर बहुत पुराना है, साथ ही साथ। इन-प्रोग्रेस ट्रांसफर एक वाई-फाई को पूरी तरह से बरकरार (पूरी तरह से = चेकसम मैच) फाइलों के साथ फिर से जोड़ देगा, लेकिन जब वाई-फाई मर जाता है, तो कोई वास्तविक त्रुटि नहीं होती है (या तो मेजबान पर) यह बिल्कुल काम करना बंद कर देता है । इसलिए प्रत्येक 90 सेकंड में वाई-फाई को फिर से कनेक्ट करने के लिए एक सरल शेल स्क्रिप्ट।
JamesTheAwesomeDude

मैं ऐसी स्थिति से कभी नहीं मिला, लेकिन इस सरल स्क्रिप्ट के साथ प्रयास करें और देखें कि यह कैसे जाता है। मुझे लगता है कि वहां चाहिए उस नेटवर्क को ठीक से व्यवहार करने का एक तरीका हो, या कम से कम इतना घृणित नहीं है, हालांकि।
LSerni

5
while ! rsync \
  --bwlimit <KB/s value> \
  -rP \
  /path/to/directory_that_contain_the_data_to_be_transferred \
  user@destination.host:/path/to/target_directory ; \
  do sleep 90;
done

से लिया गया https://patrick-nagel.net/blog/archives/434

आप इसे बैश शेल स्क्रिप्ट में रखना चाहेंगे। निम्नलिखित जैसा कुछ

#!/bin/bash

while ! rsync \
  --bwlimit <KB/s value> \
  -rP \
  /path/to/directory_that_contain_the_data_to_be_transferred \
  user@destination.host:/path/to/target_directory; \
  do sleep 90;
done

आपको ssh कीज़ को सेटअप करने की ज़रूरत है जो एक और सवाल है अगर आप नहीं जानते कि यह कैसे करना है लेकिन यह मूल रूप से है:

ssh-keygen -t rsa

जो आपकी सार्वजनिक / निजी कुंजी जोड़ी बनाएगा। अपनी सार्वजनिक कुंजी को गंतव्य मशीन पर कॉपी करें ताकि आपको कनेक्शन ड्रॉप होने पर हर बार पासवर्ड क्रेडेंशियल्स का उपयोग न करना पड़े।


o.0 तो ... क्या मैं इसे शेल स्क्रिप्ट के रूप में चलाता हूं? क्या मुझे उसके लिए एक अतिरिक्त प्रोग्राम स्थापित करने की आवश्यकता है? यदि कनेक्शन एक ही फाइल को एक बार में स्थानांतरित करने के लिए अस्थिर है तो क्या यह काम करेगा? यह लिंक-ओनली उत्तर के रूप में उपयोगी था ... मुझे वास्तव में अधिक जानकारी की आवश्यकता है।
JamesTheAwesomeDude

यदि आप लिनक्स पर हैं तो आपको शायद कोई अतिरिक्त प्रोग्राम स्थापित करने की आवश्यकता नहीं है। आप सभी की जरूरत है rsync, ssh, ssh-keygen जो सभी आम तौर पर डिफ़ॉल्ट रूप से स्थापित होते हैं।
ekeyser

5

कई अन्य उत्तरों में फ़ाइल को टुकड़ों में विभाजित करना और अखंडता जांच को शामिल करना शामिल है - यह बल्कि यह है कि टॉरेंट कैसे काम करता है। क्या आप रटोरेंट जैसी किसी चीज का इस्तेमाल कर सकते हैं?

http://libtorrent.rakshasa.no/


शायद बिटटोरेंट सिंक का उपयोग करना आसान है जो एक ही काम करता है labs.bittorrent.com/experiments/sync.html
James

दिलचस्प है, मुझे इसके बारे में पता नहीं था।
user3490

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