दोनों पक्षों पर रूट एक्सेस के साथ sync पर रु


14

मेरे पास एक पुराना ubuntu सर्वर है, और एक नया डेबियन सर्वर है और मैं पुराने से नए एक के लिए डेटा माइग्रेट कर रहा हूं। मैं डेटा को अंतरण करने के लिए rsync का उपयोग करना चाहता हूं ताकि समतुल्य टार / scp / untar प्रक्रिया की तुलना में अंतिम माइग्रेशन को आसान और त्वरित बनाया जा सके।

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

मैंने कुछ संबंधित प्रश्न देखे हैं, लेकिन कोई भी ऐसा नहीं है जो मैं करने की कोशिश कर रहा हूं।

मेरे पास sudo है और दोनों सर्वर पर काम कर रहा हूँ।

जवाबों:


14

असल में आपको SSH के माध्यम से rsync चलाने के लिए रूट एथेंटिकेशन की अनुमति देने की आवश्यकता नहीं है क्योंकि एंटोनी सुझाव देता है। परिवहन और सिस्टम प्रमाणीकरण पूरी तरह से उपयोगकर्ता खातों पर किया जा सकता है जब तक आप फ़ाइलों को पढ़ने और लिखने के लिए दोनों छोरों पर sudo के साथ rsync चला सकते हैं।

अपने गंतव्य सर्वर पर एक उपयोगकर्ता के रूप में आप इस तरह से अपने स्रोत सर्वर से डेटा चूस सकते हैं:

sudo rsync -aPe ssh --rsync-path='sudo rsync' boron:/home/fred /home/

दोनों सर्वरों के रूप में आपके द्वारा चलाए जाने वाले उपयोगकर्ता को rsync बाइनरी के लिए पासवर्ड रहित * sudo एक्सेस की आवश्यकता होगी, लेकिन आपको कहीं भी ssh लॉगिन को रूट के रूप में सक्षम करने की आवश्यकता नहीं है। यदि आप जिस उपयोगकर्ता का उपयोग कर रहे हैं, वह दूसरे छोर पर मेल नहीं खाता है, तो आप एक अलग दूरस्थ उपयोगकर्ता निर्दिष्ट करने के लिए @ @ बोरन: को जोड़ सकते हैं।

सौभाग्य।

* या आपको टाइमआउट विंडो के अंदर मैन्युअल रूप से पासवर्ड डालना होगा।


5
यद्यपि यह एक पुराना प्रश्न है, मैं इस स्वीकार किए गए उत्तर में CAUTION शब्द जोड़ना चाहूंगा । मेरी समझ से पासवर्ड रहित "sudo rsync" को रूट लॉगिन को दूरस्थ लॉगिन में खोलने के लिए अनुमति है। ऐसा इसलिए है क्योंकि इसके साथ पूर्ण रूट एक्सेस प्राप्त करना बहुत आसान है, उदाहरण के लिए, क्योंकि सभी सिस्टम फ़ाइलों को पासवर्ड के बिना डाउनलोड, संशोधित और प्रतिस्थापित किया जा सकता है।
16

3

यदि आपका डेटा अत्यधिक संवेदनशील नहीं है, तो आप उपयोग कर सकते हैं tarऔर socat। मेरे अनुभव में यह अक्सर rsyncssh की तुलना में तेज़ होता है ।

आपको जरूरत है socatया netcatदोनों तरफ।

लक्ष्य होस्ट पर, उस निर्देशिका पर जाएं जहां आप अपना डेटा डालना चाहते हैं, उस रन के बाद:
socat TCP-LISTEN:4444 - | tar xzf -

यदि लक्ष्य होस्ट सुन रहा है, तो इसे स्रोत पर शुरू करें जैसे:
tar czf - /home/fred /home/ | socat - TCP:ip-of-remote-server:4444

इस सेटअप के लिए आपको 2 सर्वरों के बीच एक विश्वसनीय कनेक्शन की आवश्यकता होगी।


अच्छी बात। एक विश्वसनीय वातावरण में, आप एन्क्रिप्ट न करके बहुत अधिक गति पकड़ लेंगे। यह छोटी फ़ाइलों पर बात नहीं कर सकता है, लेकिन जीबी डेटा के साथ यह होगा।
10'10

2

ठीक है, मैंने कुछ सुराग पाने के लिए सभी सुराग एक साथ पा लिया है जो मेरे लिए काम करता है।

सर्वर को "src" और "dst" कहते हैं।

गंतव्य सर्वर पर रूट के लिए एक कुंजी जोड़ी सेट करें, और सार्वजनिक कुंजी को स्रोत सर्वर पर कॉपी करें:

dest $ sudo -i
dest # ssh-keygen
dest # exit
dest $ scp /root/id_rsa.pub src:

स्रोत सर्वर पर रूट की अधिकृत कुंजी के लिए सार्वजनिक कुंजी जोड़ें

src $ sudo -i
src # cp /home/tim/id_rsa.pub .ssh/authorized_keys

गंतव्य सर्वर पर वापस जाएं, डेटा को rsync के साथ खींचें:

dest $ sudo -i
dest # rsync -aP src:/home/fred /home/
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.