Linux में फ़ाइलें ट्रांसफर करने के लिए Rsync का उपयोग करना

Linux में फ़ाइलें ट्रांसफर करने के लिए Rsync का उपयोग करना

Rsync का उपयोग करके सिस्टम्स के बीच फ़ाइलों को कुशलतापूर्वक ट्रांसफर और सिंक्रोनाइज़ करने के लिए एक गाइड।

Rsync सिस्टम्स के बीच फ़ाइलों को ट्रांसफर और सिंक्रोनाइज़ करने के लिए एक शक्तिशाली टूल है। इसका उपयोग बैकअप, फ़ाइल मिररिंग, और लोकल डायरेक्टरीज़ या रिमोट सर्वरों के बीच फ़ाइलों को अपडेट करने के लिए व्यापक रूप से किया जाता है। Rsync का उपयोग कैसे करें यह समझना Linux सिस्टम्स पर काम करने वाले किसी भी व्यक्ति के लिए आवश्यक है, चाहे आप बैकअप प्रबंधित कर रहे हों या मशीनों के बीच फ़ाइलें ट्रांसफर कर रहे हों।

Rsync क्या है?

Rsync एक फ़ाइल ट्रांसफर टूल है जो सोर्स और डेस्टिनेशन फ़ाइलों के बीच केवल अंतर (differences) को ट्रांसफर करके कुशलतापूर्वक फ़ाइलों को कॉपी करता है। यह सुविधा डेटा ट्रांसफर को कम करती है और प्रक्रिया को तेज़ बनाती है, जिससे यह सिस्टम एडमिनिस्ट्रेटर्स और डेवलपर्स के बीच एक लोकप्रिय विकल्प बन जाता है।

Rsync इंस्टॉल करना

Rsync अधिकांश Linux डिस्ट्रिब्यूशन्स के आधिकारिक रिपॉजिटरीज़ में उपलब्ध है और अक्सर पहले से इंस्टॉल होता है। विभिन्न सिस्टम्स पर इसे इंस्टॉल करने का तरीका यहाँ दिया गया है:

स्टेप 1: Ubuntu और Debian पर Rsync इंस्टॉल करें

sudo apt install rsync

स्टेप 2: FreeBSD पर Rsync इंस्टॉल करें

sudo pkg install rsync

स्टेप 3: Arch Linux पर Rsync इंस्टॉल करें

sudo pacman -S rsync

स्टेप 4: Fedora, AlmaLinux, Rocky Linux और VzLinux पर Rsync इंस्टॉल करें

sudo dnf install rsync

स्टेप 5: CentOS पर Rsync इंस्टॉल करें

sudo yum install rsync

Rsync कमांड सिंटैक्स

Rsync का उपयोग करने के लिए बुनियादी सिंटैक्स है:

rsync [OPTIONS] SOURCE DESTINATION

जहाँ:

  • OPTIONS: ऐसे फ़्लैग जो Rsync के काम करने के तरीके को संशोधित करते हैं (जैसे -a आर्काइव मोड के लिए)।
  • SOURCE: वह फ़ाइल या डायरेक्टरी जिसे आप सिंक्रोनाइज़ करना चाहते हैं।
  • DESTINATION: जहाँ आप सोर्स को कॉपी करना चाहते हैं।

SSH के ज़रिए रिमोट ट्रांसफर के लिए, इस सिंटैक्स का उपयोग करें:

rsync [OPTIONS] [USER@]HOST:SOURCE DESTINATION

बदलें [USER@]HOST को रिमोट यूज़र के क्रेडेंशियल्स और होस्ट एड्रेस से।

आमतौर पर उपयोग किए जाने वाले Rsync विकल्प

यहाँ आमतौर पर उपयोग किए जाने वाले कुछ विकल्प दिए गए हैं:

  • -a, --archive: आर्काइव मोड को सक्षम करता है, फ़ाइल एट्रिब्यूट्स को सुरक्षित रखता है।
  • -v, --verbose: ट्रांसफर के दौरान विस्तृत जानकारी प्रदान करता है।
  • -z, --compress: बैंडविड्थ बचाने के लिए ट्रांसफर के दौरान डेटा को कंप्रेस करता है।
  • --exclude=PATTERN: किसी विशिष्ट पैटर्न से मेल खाने वाली फ़ाइलों को बाहर रखता है।
  • --delete: डेस्टिनेशन में मौजूद उन फ़ाइलों को हटा देता है जो सोर्स में नहीं हैं।

Rsync का उपयोग करके फ़ाइलों और डायरेक्टरीज़ को ट्रांसफर करना

शुरू करने के लिए, आप एक टेस्ट एनवायरनमेंट सेट अप कर सकते हैं:

स्टेप 1: एक टेस्ट डायरेक्टरी बनाएँ

mkdir rsync-test

स्टेप 2: डायरेक्टरी में जाएँ

cd rsync-test

स्टेप 3: सैंपल फ़ाइलें बनाएँ

touch file1 file2 file3

लोकल फ़ाइलें ट्रांसफर करें

फ़ाइलों को एक नई डायरेक्टरी में कॉपी करने के लिए जिसका नाम है dest, इसका उपयोग करें:

rsync file1 file2 file3 dest

सत्यापित करें कि फ़ाइलें कॉपी हो गई हैं:

ls dest/

लोकल डायरेक्टरीज़ ट्रांसफर करें

किसी डायरेक्टरी और उसकी सामग्री को कॉपी करने के लिए, इस -a फ़्लैग का उपयोग करें:

rsync -a dest/ dest-copy

कॉपी ऑपरेशन को सत्यापित करें:

ls dest-copy/

फ़ाइलों या डायरेक्टरीज़ को बाहर रखें

विशिष्ट फ़ाइलों को कॉपी होने से बाहर रखने के लिए, इस --exclude फ़्लैग का उपयोग करें:

rsync -a --exclude 'file2' --exclude 'dest*' . output

आउटपुट को सत्यापित करें:

ls output/

रिमोट मशीन पर डेटा सिंक्रोनाइज़ करना

फ़ाइलों को किसी रिमोट मशीन पर सिंक्रोनाइज़ करने के लिए, इसका उपयोग करें:

rsync -hazvP --delete --stats . [email protected]:synced_from_local

यह कमांड निम्नलिखित कार्य करता है:

  • -h: संख्याओं को human-readable फ़ॉर्मेट में आउटपुट करता है।
  • -a: आर्काइव मोड को सक्षम करता है।
  • -z: ट्रांसफर के दौरान डेटा को कंप्रेस करता है।
  • -v: verbose आउटपुट को सक्षम करता है।
  • --delete: डेस्टिनेशन से उन फ़ाइलों को हटा देता है जो अब सोर्स में मौजूद नहीं हैं।
  • --stats: ट्रांसफर का सारांश प्रदान करता है।

SSH का उपयोग करके रिमोट मशीन में लॉग इन करें:

ssh [email protected]

निष्कर्ष

Rsync एक बहुमुखी टूल है जो फ़ाइल ट्रांसफर और सिंक्रोनाइज़ेशन को सरल बनाता है। चाहे आप फ़ाइलों का बैकअप ले रहे हों या सिस्टम्स के बीच डेटा ट्रांसफर कर रहे हों, Rsync की दक्षता और लचीलापन इसे एक अमूल्य संसाधन बनाते हैं।

लाभ

  • केवल अंतर (differences) भेजकर कुशल फ़ाइल ट्रांसफर।
  • फ़ाइल एट्रिब्यूट्स और मेटाडेटा को सुरक्षित रखता है।
  • बैंडविड्थ बचाने के लिए कम्प्रेशन का समर्थन करता है।
  • फ़ाइलों को शामिल करने/बाहर रखने के लिए लचीले विकल्प।

कमियाँ

  • कई विकल्पों के कारण शुरुआती लोगों के लिए जटिल हो सकता है।
  • रिमोट ट्रांसफर के लिए SSH एक्सेस की आवश्यकता होती है।
  • डिलीट विकल्पों के साथ अनुचित तरीके से उपयोग किए जाने पर डेटा हानि की संभावना।

सावधानी

यह लेख शैक्षिक उद्देश्यों के लिए है। कमांड का उपयोग करते समय हमेशा प्लेसहोल्डर मानों को वास्तविक डेटा से बदलें। किसी भी दावे पर भरोसा करने से पहले मूल स्रोत से उसकी पुष्टि करें।

अक्सर पूछे जाने वाले प्रश्न

  • Rsync क्या है? — Rsync एक फ़ाइल ट्रांसफर टूल है जो लोकल और रिमोट सिस्टम्स के बीच फ़ाइलों को कुशलतापूर्वक सिंक्रोनाइज़ करता है।
  • मैं Linux पर Rsync कैसे इंस्टॉल करूँ? — अपने डिस्ट्रिब्यूशन के पैकेज मैनेजर का उपयोग करें, जैसे apt, dnf, या pacman.
  • यह -a विकल्प Rsync में क्या करता है? — यह -a विकल्प आर्काइव मोड को सक्षम करता है, जिससे ट्रांसफर के दौरान फ़ाइल एट्रिब्यूट्स सुरक्षित रहते हैं।
  • क्या Rsync का उपयोग रिमोट ट्रांसफर के लिए किया जा सकता है? — हाँ, Rsync SSH का उपयोग करके रिमोट सिस्टम्स पर और उनसे फ़ाइलें ट्रांसफर कर सकता है।
  • यह --exclude विकल्प क्या करता है? — यह --exclude विकल्प आपको ट्रांसफर के दौरान छोड़ी जाने वाली फ़ाइलों या डायरेक्टरीज़ को निर्दिष्ट करने की अनुमति देता है।
  • क्या Rsync का उपयोग करना सुरक्षित है? — हाँ, लेकिन --deleteजैसे विकल्पों के साथ सतर्क रहें, जो डेस्टिनेशन से फ़ाइलों को हटा सकते हैं।
Free field guide

Docker Security Checklist

Lock down your containers from build to runtime — 29 practical controls covering images, runtime flags, secrets, and the daemon. Enter your email — you'll get the PDF instantly, plus new posts on Docker, Linux & security.