मुझे एक CentOS सर्वर से दूसरे में फाइल ट्रांसफर करने की आवश्यकता है। हर 10 मिनट में 5 एमबी फाइल ट्रांसफर करेगा। एन्क्रिप्शन की जरूरत नहीं है।
फ़ाइलों के तेजी से हस्तांतरण के लिए एक आसान क्या है?
क्या ftp की तुलना में कुछ सरल है?
धन्यवाद!
मुझे एक CentOS सर्वर से दूसरे में फाइल ट्रांसफर करने की आवश्यकता है। हर 10 मिनट में 5 एमबी फाइल ट्रांसफर करेगा। एन्क्रिप्शन की जरूरत नहीं है।
फ़ाइलों के तेजी से हस्तांतरण के लिए एक आसान क्या है?
क्या ftp की तुलना में कुछ सरल है?
धन्यवाद!
जवाबों:
rsync
मैं ftp या tftp इस्तेमाल करने से पहले rsync का उपयोग करता हूं।
अधिक विकल्प और (मेरे अनुभव में) अधिक विश्वसनीय स्थानांतरण।
टार ओवर ssh ठीक है, लेकिन टीसीपी पर netcat के माध्यम से टार कम-ओवरहेड के बारे में है जैसा कि आप प्राप्त कर सकते हैं! यदि यह एक बार की बात है, तो इसे एक शॉट दें:
रिसीवर पर:
nc -l -p 8989 | tar x
प्रेषक पर:
tar cf - /source-path | nc (receiving host ip address) 8989
यदि यह ऐसा कुछ है जो आप नियमित रूप से करने जा रहे हैं, तो मैं शायद rsync का उपयोग करूंगा।
दो लोगों ने ssh पर टार का उल्लेख किया है, लेकिन यह नहीं बताया कि यह कैसे करना है। रिकॉर्ड के लिए, मूल प्रक्रिया को चलाना है:
tar cf - files... | ssh remotehost 'cd /destination && tar xvf -'
या, यदि आप प्राप्त अंत से स्थानान्तरण शुरू करना चाहते हैं:
ssh remotehost 'cd /source && tar cf - files' | tar xvf -
इवान के नेटकाट समाधान पर इस तरह से करने का लाभ यह है कि पूरी चीज एक कंप्यूटर से शुरू की जा सकती है; आपको दो नेटकैट इनवोकेशन को समन्वित करने की आवश्यकता नहीं है। यदि आपको स्वचालित रूप से चलाने के लिए इसकी आवश्यकता है, तो आप एक ssh कुंजी सेट कर सकते हैं जो आपको पासफ़्रेज़ के बिना कनेक्शन बनाने देती है, और इन कनेक्शनों के लिए उस कुंजी का उपयोग करें।
ssh के पास अपनी डेटा स्ट्रीम को संपीड़ित करने के लिए एक -C विकल्प है, या आप GNU टार की बिल्ट कंप्रेसिंग क्षमता का उपयोग कर सकते हैं:
tar zcf - files... | ssh remotehost 'cd /destination && tar xzvf -'
रुपीक्स एक अन्य विकल्प है, लेकिन इसका मजबूत सूट उन फ़ाइलों को अद्यतन करने में है जो पहले से ही प्राप्त अंत पर मौजूद हैं। मैंने पाया है कि यह scp या tar / ssh की तुलना में धीमा है जब इसका उपयोग फ़ाइलों को स्थानांतरित करने के लिए होता है जो पहले से ही दूसरे छोर पर मौजूद नहीं हैं।
मैं का उपयोग करें scp
या tar
अधिक ssh
, ईमानदारी से। एन्क्रिप्शन धीमा काम करता है, लेकिन सेटअप और उपयोग में आसानी, विश्वसनीयता और (विषय के अनुसार, निश्चित रूप से) परिचित मुझे हिट लेने के लिए तैयार करते हैं, जब तक कि मैं वास्तव में नहीं उस गति की आवश्यकता ।
आप डिफ़ॉल्ट से भी तेज़ सिफर का उपयोग करने के लिए कहकर ssh ट्रांसफ़र को तेज़ कर सकते हैं। डिफ़ॉल्ट आमतौर पर है 3des
और आप आमतौर पर कर सकते हैं -c des
, ताकि स्पष्ट रूप से तेज हो जाएगा, और-c blowfish
साथ ही तेजी से प्रतिनिधित्व किया जाता है, हालांकि मैंने इसे सटीक रूप से परीक्षण नहीं किया है।
(SSHv1 के दिनों में, आप अक्सर कर सकते थे -c none
, लेकिन मुझे लगता है कि किसी ने निर्णय लिया था कि बुरा जूजू था)।
यदि आपको scp / ssh से गुजरना है, तो मेरे प्रयोग बताते हैं कि इन दिनों डिफ़ॉल्ट रूप से सबसे तेज़ साइपर सक्षम है RC4। आप अपने ssh / scp कमांड में ' -c arcfour ' के माध्यम से सिफर निर्दिष्ट करते हैं :
प्रारंभिक प्रति के लिए:
scp -c arcfour -r foo/ desthost:/destdir
अपडेट के लिए:
rsync -e 'ssh -c arcfour' -r foo/ desthost:/destdir
Rsync जाने का एक अच्छा तरीका है क्योंकि अगर आप खुद को एक ही फाइल को एक से अधिक बार ट्रांसफर करते हुए पाते हैं तो यह कॉपी को गति देगा, जैसा कि मैन पेज से इस उद्धरण के साथ दिखाया गया है।
rsync is a program that behaves in much the same way that rcp does, but
has many more options and uses the rsync remote-update protocol to
greatly speed up file transfers when the destination file is being
updated.
The rsync remote-update protocol allows rsync to transfer just the dif-
ferences between two sets of files across the network connection, using
an efficient checksum-search algorithm described in the technical
report that accompanies this package.
एफ़टीपी बहुत सरल है, लेकिन एक सरल तरीका यह भी हो सकता है कि एक मशीन पर एनएफएस हिस्सा बनाकर दूसरे पर माउंट किया जाए। फिर फ़ाइलों की प्रतिलिपि बनाने में एक निर्देशिका से दूसरे में cp करना शामिल होगा।
यदि आप गति चाहते हैं तो आप नेटकैट और टार का उपयोग कर सकते हैं। यह एक स्थानीय नेटवर्क पर ssh, rsync, या scp की तुलना में तेज़ होगा जहाँ एन्क्रिप्शन चिंता का विषय नहीं है। Google "netcat टार"।
nc -l -p 7878 | tar -C /target/dir -xzf -
tar -cz /source/dir | nc DestinationServer 7878
यह स्पष्ट रूप से आवश्यक है कि netcat वास्तव में स्थापित है। अधिक जानकारी के लिए Google "netcat टार"।
मेरा मानना है कि आपने अपनी समस्या पहले ही हल कर ली है, लेकिन यदि आपका ssh दूसरे पोर्ट पर काम करता है (मानक पोर्ट 22 पर नहीं) तो आप इसका उपयोग कर सकते हैं
rsync -avz --rsh = 'ssh -pXXXXX' / स्थानीय / dir / root@192.168.1.2: / दूरस्थ / dir
नोट: - XXXXX को अपने पोर्ट नंबर से बदलें - 192.16.1.2 को सही रिमोट सर्वर आईपी से बदलें
https://www.npmjs.org/package/gist-cli
https://github.com/settings/applications#personal-access-tokens
या यह एक:
https://github.com/defunkt/gist
अपलोड और डाउनलोड करने के लिए जिस्ट कमांड का उपयोग करें