rsync एक कमान्ड लाइन टुल हो जसले फाइलहरू र डाइरेक्टरीहरूलाई द्रुत र कुशलतापूर्वक समक्रमित तथा प्रतिलिपि गर्दछ। विशेष गरी Linux वा Unix प्रणालीहरूमा व्यापक रूपमा प्रयोग गरिन्छ, र केवल भिन्नताहरू मात्र स्थानान्तरण गर्ने संयन्त्रबाट, ठूलो संख्यामा फाइलहरू पनि बिना फजुल समक्रमित गर्न सकिन्छ। Ubuntu सहितका Linux वितरणहरूमा मानक रूपमा उपलब्ध छन्, र सर्वर प्रशासकहरू वा विकासकर्ताहरूका लागि अपरिहार्य अस्तित्व बनेको छ।
Ubuntu मा rsync प्रयोग गर्ने फाइदाहरू
Ubuntu मा, दैनिक फाइलहरूको ब्याकअप वा बहु डाइरेक्टरीहरूको समक्रमण प्रक्रियामा, rsync ले अत्यन्त प्रभावकारी रूपमा काम गर्दछ। ग्राफिकल सञ्चालनमा निर्भर नगरी, टर्मिनलमा केही कमान्डहरू मात्र इनपुट गरेर, स्थानीय वा रिमोट बीच द्रुत फाइल स्थानान्तरण सम्भव छ। विशेष गरी निम्नानुसारका अवस्थाहरूमा उपयोगी हुन्छ:
बाह्य HDD वा NAS मा नियमित ब्याकअप
विकासाधीन प्रोजेक्ट फोल्डरहरूको समक्रमण
रिमोट सर्वरमा डिप्लोइ कार्य
फाइलहरूको मिररिङबाट उपलब्धताको सुधार
अन्य कमान्डहरूसँगको भिन्नता
cp कमान्डसँग तुलना गर्दा, rsync ले प्रतिलिपि स्रोत र गन्तव्यको भिन्नता मात्र स्थानान्तरण गर्दछ, जसबाट प्रक्रिया समयमा ठूलो छोटो हुन्छ। साथै, scp सँग तुलना गर्दा, त्रुटि घटना समयमा पुन: सुरु कार्यक्षमता वा ब्यान्डविथ सीमाको लचिलो सेटिङ सम्भव छ भन्ने बिन्दु पनि उत्कृष्ट छ। यसबाहेक, फाइलको गुणहरू (मालिक, अनुमति, टाइमस्ट्याम्प आदि) लाई कायम राखेर स्थानान्तरण गर्न सकिने बिन्दु पनि ठूलो फाइदा हो।
यो लेखको उद्देश्य
यो लेखमा, Ubuntu वातावरणमा rsync लाई कसरी स्थापना गर्ने र कसरी कुशलतापूर्वक प्रयोग गर्ने, वास्तविक कमान्ड उदाहरणहरू र प्रयोग केसहरू सहित विस्तृत रूपमा व्याख्या गर्दै जानेछौं। शुरुआतीहरूले पनि सहज रूपमा अपनाउन सकून् भन्ने गरी, GUI टुलहरू वा समस्या समाधान उपायहरूलाई पनि छुने गर्दै, rsync को व्यावहारिक प्रयोगलाई चरणबद्ध रूपमा सिक्दै जानेछौं।
2. rsync को स्थापना विधि (Ubuntu)
Ubuntu मा rsync पूर्व-स्थापित छ कि जाँच गर्नुहोस्
धेरै Ubuntu वातावरणहरूमा, rsync सुरुदेखि नै स्थापित हुने सामान्य कुरा हो। पहिले निम्न कमान्ड प्रयोग गरेर, rsync पहिले नै उपलब्ध छ कि जाँच गर्नुहोस्।
rsync --version
यो कमान्ड चलाउँदा यदि संस्करण जानकारी देखिन्छ भने, यो पहिले नै स्थापित छ। यसलाई सीधै प्रयोग गर्न सकिन्छ।
rsync स्थापित नभएको अवस्थामा चरणहरू
यदि “कमान्ड फेला परेन” वा “rsync: command not found” जस्ता सन्देश देखिन्छ भने, निम्न चरणहरू अनुसार स्थापना गर्नुहोस्।
प्याकेज जानकारी अपडेट गर्नुहोस्:
sudo apt update
rsync स्थापना गर्नुहोस्:
sudo apt install rsync
स्थापना सम्पन्न भएपछि, फेरि संस्करण जाँच गर्नुहोस्:
rsync --version
समस्या बिना संस्करण जानकारी देखिन्छ भने, स्थापना सफल छ।
snap वा अन्य विधिहरूबाट स्थापना आवश्यक छ?
Ubuntu मा rsync को लागि APT बाट स्थापना सबैभन्दा सिफारिस गरिएको विधि हो। snap प्याकेज पनि उपलब्ध छ, तर सामान्य प्रयोगको लागि APT संस्करण पर्याप्त छ, र स्थिरता तथा अनुकूलताको दृष्टिकोणबाट पनि उत्कृष्ट छ। विशेष कारण नभएसम्म, APT प्रयोग गरेर स्थापना गर्नुहोस्।
स्थापना समयको ध्यान दिनुपर्ने कुराहरू
पुरानो Ubuntu संस्करणहरूमा, रिपोजिटरी अपडेट आवश्यक हुन सक्छ।
रुट अधिकार आवश्यक भएकोले, sudo लाई बिर्सनुहुन्न।
नेटवर्क कनेक्सन अस्थिर वातावरणमा, स्थापना समयमा त्रुटि आउन सक्छ, त्यसैले स्थिर लाइन वातावरणमा चलाउन सिफारिस गरिन्छ।
3. rsync को आधारभूत प्रयोग
rsync को आधारभूत संरचना
rsync को कमान्ड संरचना सरल छ तर धेरै लचिलो छ। आधारभूत रूप निम्नानुसार छ:
यसरी गर्दा, “के हुन्छ” लाई अग्रिम जाँच गर्न सकिन्छ, त्यसैले दुर्घटना रोक्न सकिन्छ।
लुकेका फाइलहरूको ह्यान्डलिङ
rsync मा, डट (.) बाट सुरु हुने लुकेका फाइलहरू पनि स्वतः लक्षितमा समावेश हुन्छन्। यसबाट, सेटिङ फाइलहरू वा वातावरण जानकारी आदि पनि एकैचोटि समक्रमण गर्न सकिन्छ।
4. रिमोट सर्भरसँगको समन्वय
SSH प्रयोग गरेर rsync को रिमोट समन्वय
rsync को ठूलो फाइदाहरू मध्ये एक हो, SSH मार्फत रिमोट सर्भरसँग फाइल समन्वय गर्न सकिन्छ। यसले सुरक्षित कनेक्सन कायम राख्दै नेटवर्क मार्फत डाटा स्थानान्तरण गर्न सकिन्छ। आधारभूत संरचना निम्नानुसार छ:
rsync -avz स्रोत user@रिमोटIPवाहोस्टनाम:गन्तव्यपथ
उदाहरणको लागि, स्थानीयको/home/user/documents/ डाइरेक्टरीलाई रिमोट सर्भरको/var/www/backup/ मा समन्वय गर्दा निम्नानुसार हुन्छ:
-z विकल्पले डाटालाई संकुचित गरेर पठाउँछ, जसले लाइन गति सीमित भएको अवस्थामा प्रभावकारी हुन्छ।
user@host भागले कनेक्सन गन्तव्यको SSH प्रयोगकर्ता नाम र होस्ट निर्दिष्ट गर्दछ।
पहिलो पटकको कनेक्सन र कुञ्जी प्रमाणीकरणको सेटिङ
पहिलो पटक कनेक्ट गर्दा रिमोट गन्तव्यमा होस्ट प्रमाणीकरणको पुष्टि देखिन सक्छ। जारी राख्न कुनै समस्या छैन भने “yes” भर्नुहोस्। rsync लाई बारम्बार चलाउँदा, पासवर्ड इनपुटलाई छोड्नको लागि SSH कुञ्जी प्रमाणीकरण लागू गर्नु सामान्य हो।
स्थानीयमा SSH कुञ्जी सिर्जना गर्नुहोस् (यदि छैन भने):
ssh-keygen -t rsa
कुञ्जीलाई रिमोट सर्भरमा प्रतिलिपि गर्नुहोस्:
ssh-copy-id user@example.com
त्यसपछि पासवर्ड बिना rsync चलाउन सकिन्छ।
पोर्ट नम्बर निर्दिष्ट गर्न आवश्यक भएको अवस्था
रिमोट सर्भरले डिफल्ट बाहेकको SSH पोर्ट (२२ नम्बर) प्रयोग गर्दा, -e विकल्पले स्पष्ट रूपमा निर्दिष्ट गर्न सकिन्छ।
rsync एक दिशाको समन्वय उपकरण हो र, “स्रोत→गन्तव्य” प्रवाहमा मात्र समन्वय गर्दछ। द्विदिश समन्वय गर्न चाहनुहुन्छ भने, rsync मात्रले सम्हाल्न गाह्रो हुन्छ, छुट्टै उपकरण (उदाहरण: unison) को परिचय विचार गर्न आवश्यक छ।
५. rsync का सुविधाजनक विकल्पहरू र उपयोगका उदाहरणहरू
rsync को आधारभन्दा माथिका सुविधाजनक विकल्पहरू
rsync ले आधारभूत प्रतिलिपि र समन्वय कार्यका साथै विभिन्न सुविधाजनक विकल्पहरू प्रदान गर्दछ। तल, व्यावहारिक रूपमा उपयोगी उन्नत विकल्पहरू केही परिचय गरिन्छ।
–delete: प्रतिलिपि स्रोतमा नभएका फाइलहरू हटाउने
यो विकल्प प्रयोग गरेर, प्रतिलिपि स्रोतमा विद्यमान नभएका फाइलहरूलाई प्रतिलिपि गन्तव्यबाट स्वचालित रूपमा हटाउन सकिन्छ। मिररिङ (पूर्ण प्रतिलिपि) गर्न चाहनुहुन्छ भने यो अत्यन्त उपयोगी हुन्छ।
rsync लाई सजिलो र उच्च प्रदर्शन भएको ब्याकअप उपकरणको रूपमा पनि प्रयोग गर्न सकिन्छ। तल, बाह्य HDD मा दैनिक ब्याकअप लिने जस्तो अवस्थामा उपयोगी कमान्ड हो।
rsync -a --delete /home/user/ /media/usb/backup/
यहाँ --delete लाई संयोजन गरेर, पूर्ण मिररिङ प्राप्त गरिएको छ।
cron सँग संयोजन गरेर स्वचालित निष्पादन
rsync लाई cron सँग संयोजन गरेर, नियमित समन्वयलाई स्वचालित गर्न सकिन्छ। उदाहरणका लागि, हरेक रात २ बजे ब्याकअप लिनु छ भने, निम्नानुसार crontab सम्पादन गर्नुहोस्:
यसबाट, निरीक्षणरहित स्वचालित समन्वय सम्भव हुन्छ, जसले कार्य वा सर्वर सञ्चालनको दक्षता धेरै बढाउँछ।
rsync ले “लचकता” र “दक्षता” दुवैलाई सम्भव बनाउँछ
rsync को आकर्षण यसको धेरै विकल्पहरूबाट “जुनसुकै प्रयोजनमा अनुकूलित हुन सक्ने लचकता” र “स्थानान्तरण दक्षताको उचाइ” लाई संयोजन गरेको कुरामा छ। केवल प्रतिलिपि नभई, इच्छानुसारको समन्वय लाई सुरक्षित र छिटो गर्नका लागि, rsync अत्यन्त शक्तिशाली छान्ने विकल्प बन्छ।
६. GUI उपकरण “Grsync” को परिचय
कमाण्ड लाइनमा कमजोर व्यक्तिहरूका लागि सिफारिस
rsync एक अत्यन्त शक्तिशाली उपकरण हो, तर यसको सञ्चालन मूलतः टर्मिनल प्रयोग गरेर कमाण्ड इनपुट गर्ने आधारमा हुन्छ। लिनक्समा अपरिचित नयाँ प्रयोगकर्ताहरू वा दृश्यात्मक रूपमा सेटिङहरू जाँच गर्दै प्रयोग गर्न चाहनेहरूका लागि यो बाधा जस्तो लाग्न सक्छ। यस्तो अवस्थामा उपयोगी हुने Grsync (जी-अर-सिंक) नामक GUI उपकरण हो। यो rsync लाई आन्तरिक रूपमा प्रयोग गर्दै, ग्राफिकल इन्टरफेस मार्फत सेटिङ र निष्पादन गर्न सकिने एप्लिकेसन हो।
Grsync को स्थापना विधि (Ubuntu)
Ubuntu मा Grsync लाई APT मार्फत सजिलै स्थापना गर्न सकिन्छ।
sudo apt update
sudo apt install grsync
स्थापना पछि, एप्लिकेसन सूचीमा “Grsync” देखिन्छ, र क्लिक गर्दा GUI सुरु हुन्छ।
Grsync को आधारभूत प्रयोग विधि
Grsync को स्क्रिन सहज छ, र निम्नानुसारका वस्तुहरू सेट गर्न सकिन्छ।
कपी स्रोत र कपी गन्तव्यको पाथ इनपुट गर्नुहोस्
“पुनरावृत्ति कपी”, “फाइल विशेषता कायम राख्नु”, “हटाउने विकल्प” आदि, rsync को मुख्य विकल्पहरूसँग मेल खाने चेकबक्सहरू
अपवाद प्याटर्नको निर्देशन
ड्राई रन निष्पादन को बटन
सेटिङ पछि “निष्पादन” बटन थिच्नुहोस् भने, पृष्ठभूमिमा rsync सञ्चालन हुन्छ र फाइलहरूको समन्वय हुन्छ।
प्रोफाइल सुविधाले नियमित प्रक्रिया पनि सजिलो
Grsync मा, सेटिङ सामग्रीलाई “प्रोफाइल” को रूपमा बचत गर्न सकिन्छ। धेरै ब्याकअप सेटिङहरू वा समन्वय गन्तव्यहरू परिवर्तन गर्दै व्यवस्थापन गर्नका लागि यो अत्यन्त उपयोगी हुन्छ। उदाहरणका लागि:
प्रोफाइल १: USB मेमोरीमा ब्याकअप
प्रोफाइल २: NAS सँग समन्वय
प्रोफाइल ३: बाह्य सर्वरमा मिररिङ
यस्तो प्रयोग विभाजन GUI मा सजिलै साकार गर्न सकिन्छ।
Grsync प्रयोग गर्ने फाइदा-बेफाइदा
फाइदा
बेफाइदा
कमाण्ड बिना सहज रूपमा सञ्चालन गर्न सकिन्छ
केही उन्नत विकल्पहरू GUI बाट सेट गर्न नसकिने हुन सक्छ
विकल्पहरूको अर्थ जाँच गर्दै सेट गर्न सकिन्छ
प्रक्रिया सामग्रीको दृश्यीकरण केही अमूर्त हुन्छ, rsync को आउटपुट परिणाममा अभ्यस्त व्यक्तिहरूलाई अपूर्ण लाग्न सक्छ
सुरक्षित रूपमा सुरु गर्न सकिन्छ (ड्राई रन आदि बटन एक)
टर्मिनलसँग तुलना गर्दा लचकता कम हुने अवस्था पनि हुन्छ
7. सामान्य समस्याहरू र तिनका समाधान विधिहरू
फाइलबाट अनुमति कायम रहँदैन
लक्षण:प्रतिलिपि गन्तव्यको फाइलबाट मालिक वा अनुमति परिवर्तन हुन्छ। कारण:rsync लाई सामान्य प्रयोगकर्ता अधिकारसँग चलाउँदा वा -a (आर्काइभ) विकल्प प्रयोग नगर्दा। समाधान विधि:
-a विकल्पलाई स्पष्ट रूपमा निर्दिष्ट गर्नुहोस्।
आवश्यकताअनुसार sudo थपेर rsync चलाउनुहोस्।
sudo rsync -a /source/ /destination/
प्रतीकात्मक लिङ्कहरू बेवास्ता गरिन्छ
लक्षण:लिङ्क फाइलबाट प्रतिलिपि हुँदैन, वा वास्तविक रूपमा प्रतिलिपि हुन्छ। कारण:पूर्वनिर्धारित रूपमा प्रतीकात्मक लिङ्कहरू जस्ताको तस्तै प्रतिलिपि हुन्छन् तर विकल्पहरूले व्यवहार फरक पार्छ। समाधान विधि:
लिङ्कलाई जस्ताको तस्तै प्रतिलिपि गर्न:-a प्रयोग गर्नुहोस्।
वास्तविक सामग्री प्रतिलिपि गर्न चाहनुहुन्छ भने:--copy-links थप्नुहोस्।
«Permission denied» देखाइन्छ
लक्षण:विशिष्ट फाइल वा निर्देशिकामा «Permission denied» त्रुटि देखिएर समन्वयन हुन सक्दैन। कारण:पहुँच अधिकार अपर्याप्त छ। समाधान विधि:
sudo थपेर rsync चलाउनुहोस्।
प्रतिलिपि स्रोत वा गन्तव्य निर्देशिकाप्रतिको पहुँच अधिकार जाँच्नुहोस् र सुधार्नुहोस्।
लक्षण:दूरस्थ सर्वरसँग जडान हुँदा त्रुटि उत्पन्न भएर समन्वयन बीचमा रोकिन्छ। कारण:SSH को सेटिङमा कमी, पथ निर्दिष्टिमा गल्ती, दूरस्थ पक्षको अधिकार सेटिङ आदि। समाधान विधि:
SSH जडान एक्लै जाँच्नुहोस्:ssh user@host चल्छ कि जाँच्नुहोस्।
प्रतिलिपि गन्तव्यको पथ सही छ कि पुन:जाँच्नुहोस्।
फायरवाल वा पोर्ट समस्या पनि विचार गर्नुहोस्।
«Argument list too long»
लक्षण:धेरै फाइलहरू समावेश निर्देशिकालाई समन्वयन गर्दा त्रुटि निस्कन्छ। कारण:कमान्ड लाइनको तर्क लम्बाइ सीमालाई नाघेको छ। समाधान विधि:
--exclude वा --include बाट लक्षितलाई सीमित गर्नुहोस्।
निर्देशिका इकाइमा धेरै पटकमा विभाजित गरेर समन्वयन गर्नुहोस्।
8. FAQ (सामान्य प्रश्नहरू)
यहाँ, Ubuntu मा rsync प्रयोग गर्दा प्रयोगकर्ताहरूबाट सामान्यतया प्राप्त हुने शंकाहरू र प्रश्नहरूलाई संकलित गरिएको छ। नौसिखियाहरूले ठोक्किने सजिलो बिन्दुहरूलाई केन्द्रमा राखेर, स्पष्ट रूपमा व्याख्या गरिन्छ।
Q1. rsync ले फाइलको मालिक वा अनुमतिहरू कायम राख्न कसरी गर्ने?
A1.-a विकल्प (आर्काइभ मोड) प्रयोग गरेर, फाइलको अनुमतिहरू, समयमेटा, मालिक, समूह आदि लाई जस्ताको तस्तै कायम राखेर प्रतिलिपि गर्न सकिन्छ। प्रणाली सेटिङको ब्याकअप आदि का लागि आवश्यक विकल्प हो।
rsync -a /etc/ /backup/etc/
Q2. निश्चित फाइल वा फोल्डरहरूलाई छोडेर समक्रमण गर्न चाहनुहुन्छ?
A2.--exclude विकल्प प्रयोग गरेर, निश्चित फाइल वा प्याटर्नहरूलाई समक्रमणको लक्ष्यबाट हटाउन सकिन्छ।
A5. हो, rsync ले डिफल्ट रूपमा डट (.) बाट सुरु हुने फाइलहरूलाई पनि प्रतिलिपि लक्ष्यमा समावेश गर्छ। तथापि, निश्चित लुकेका फाइलहरूलाई हटाउन चाहने अवस्थामा, --exclude '.*' जस्ता हटाउने नियमहरू थप्न आवश्यक छ।
Q6. rsync र scp को भिन्नता के हो?
A6.scp सरल फाइल स्थानान्तरणमा विशेषज्ञ उपकरण हो जसले हरेक पटक सबै फाइलहरू स्थानान्तरण गर्छ। rsync ले भिन्नता स्थानान्तरण गर्न सक्छ र परिवर्तन भएको भागहरूलाई मात्र कुशलतापूर्वक प्रतिलिपि गर्छ, जसले ब्याकअप वा मिररिङका लागि उपयुक्त छ। बीचमा बिच्छेदबाट पुन: सुरु गर्न पनि बलियो छ।
9. सारांश
यो लेखमा, Ubuntu मा rsync को स्थापना विधिबाट सुरु गरेर, आधारभूत प्रयोग, रिमोट सर्भरसँगको समन्वय, सुविधाजनक विकल्पहरू, GUI उपकरण “Grsync” को उपयोग, र समस्या निवारण तथा FAQ सम्म, व्यापक रूपमा व्याख्या गरिएको छ।
rsync को आकर्षणलाई पुनरावलोकन गर्दै
केवल भिन्नताहरूको तीव्र स्थानान्तरणले, अनावश्यक डाटा स्थानान्तरणलाई रोक्छ।
अनुमतिहरू र मालिकहरूलाई कायम राख्दै, ब्याकअप वा मिररिङ सम्भव छ।
रिमोट समन्वयलाई पनि समर्थन गर्दछ, SSH सँग जोडेर सुरक्षित सञ्चालन गर्न सकिन्छ।
धनी विकल्पहरूले, बहिष्कार सेटिङ वा बैण्डविथ सीमा जस्ता, अवस्थानुसार सूक्ष्म नियन्त्रण सम्भव छ।
cron सँग सहकार्य गरेर, स्वचालन र नियमित निष्पादन पनि साकार गर्न सकिन्छ।
GUI उपकरणको Grsync प्रयोग गरेमा, नयाँ प्रयोगकर्ताहरूले पनि सुरक्षित रूपमा सञ्चालन गर्न सक्छन्।
rsync “Linux प्रयोगकर्ताको अनिवार्य उपकरण” हो
Ubuntu सहितको Linux वातावरणमा, rsync फाइल सञ्चालन, ब्याकअप र समन्वयको आधारभूत उपकरण भनेर भन्न सकिन्छ। पहिलो पटकका लागि पनि, यस पटक प्रस्तुत गरिएका सामग्रीहरूलाई अभ्यास गरेर, सुरक्षित र कुशलतापूर्वक rsync को उपयोग गर्न सकिन्छ। यसैगरी, rsync सरल वाक्यसंरचना भए पनि, यसलाई राम्रोसँग प्रयोग गरेर व्यावसायिक स्तरको फाइल व्यवस्थापन सम्भव हुन्छ। पहिले आधारभूत कुराहरू बुझ्नुहोस्, आवश्यकतानुसार उन्नत विकल्पहरू अपनाउँदै, आफ्नो वातावरणमा उपयुक्त प्रयोगको तरिका खोज्नुहोस्।