scp और rsync: फ़ाइल कॉपी करना
अपने कंप्यूटर और सर्वर के बीच फ़ाइल भेजने की दो कमांड: scp कब काफ़ी है, rsync किस काम आता है, और ट्रेलिंग स्लैश से किसी और की डायरेक्टरी कैसे न ओवरराइट करें।
23 अगस्त 2026 को अपडेट किया गया
एक बार का एडिट करने के लिए ग्राफ़िकल क्लाइंट सुविधाजनक है, लेकिन डिप्लॉयमेंट और बैकअप एक ही कमांड से ज़्यादा आसानी से हो जाते हैं।
scp: एक बार की कॉपी
सिंटैक्स cp जैसा ही है, बस मशीन का पता भी देना होता है:
scp dump.sql root@203.0.113.10:/root/
scp root@203.0.113.10:/var/log/nginx/error.log ./
scp -r ./site root@203.0.113.10:/var/www/
पहली कमांड फ़ाइल भेजती है, दूसरी वापस खींचती है, तीसरी पूरी डायरेक्टरी कॉपी करती है (-r)।
अगर SSH किसी दूसरे पोर्ट पर चल रहा है, तो उसे बड़े -P से बताएँ:
scp -P 2222 dump.sql root@203.0.113.10:/root/
~/.ssh/config फ़ाइल होने पर कमांड छोटी हो जाती हैं: scp dump.sql vds:/root/।
rsync: सिंक्रोनाइज़ेशन
rsync सिर्फ़ अंतर भेजता है, बीच में रुका ट्रांसफ़र दोबारा शुरू कर सकता है और प्रोग्रेस दिखा सकता है। बार-बार के डिप्लॉयमेंट के लिए यह कई गुना तेज़ है।
rsync -avz --progress ./site/ root@203.0.113.10:/var/www/example.com/
| फ़्लैग | यह क्या करता है |
|---|---|
-a | परमिशन, टाइमस्टैम्प और लिंक सुरक्षित रखता है |
-v | फ़ाइलों की सूची दिखाता है |
-z | स्ट्रीम को कंप्रेस करता है |
--progress | ट्रांसफ़र की प्रोग्रेस दिखाता है |
--delete | मशीन पर वह सब मिटा देता है जो आपके पास नहीं है |
--exclude | जो ज़रूरी नहीं है उसे छोड़ देता है |
साफ़-सुथरे डिप्लॉयमेंट का एक उदाहरण:
rsync -avz --delete \
--exclude '.git' --exclude 'node_modules' --exclude '.env' \
./site/ vds:/var/www/example.com/
मशीन से अपनी तरफ़ एक कॉपी खींचें:
rsync -avz vds:/root/backup-2026-08-23.tar.gz ./backups/
सोर्स के आख़िर में लगा स्लैश का मतलब है “डायरेक्टरी की सामग्री”।
./site/फ़ाइलों को टारगेट के अंदर रखता है,./siteटारगेट के अंदर एकsiteसबडायरेक्टरी बनाता है। आधे “गुम” डिप्लॉयमेंट इसी वजह से होते हैं।
--delete से सावधान रहें
--delete फ़्लैग मशीन की डायरेक्टरी को आपकी डायरेक्टरी की हूबहू कॉपी बना देता है: जो भी अतिरिक्त है, वह बिना पूछे मिट जाता है। पहले ड्राई रन करें:
rsync -avzn --delete ./site/ vds:/var/www/example.com/
-n फ़्लैग सिर्फ़ दिखाता है कि क्या होगा। पक्का हो जाने पर n हटा दें।
स्पीड
डिस्क की स्पीड हर टियर पर तय है: हर कोर पर 60 MB/s राइट (60 से कम नहीं और 400 से ज़्यादा नहीं), रीड उससे दोगुनी, और कैप से तीन गुना बर्स्ट 30 सेकंड तक चलता है। नेटवर्क बैंडविड्थ 500 Mbit/s तक है। VDS-1 पर बड़ा आर्काइव अपलोड करने पर राइट की लिमिट छू जाएगी, और यह अपेक्षित है, कोई खराबी नहीं। यह देखने के लिए कि क्या हो रहा है:
df -h
iostat -x 2
आम गलतियाँ
| लक्षण | कारण |
|---|---|
Permission denied | आप ऐसी डायरेक्टरी में लिख रहे हैं जो आपके यूज़र की नहीं है — root से लॉग इन करें या ओनर बदलें |
No such file or directory | मशीन पर वह डायरेक्टरी मौजूद नहीं है और scp उसे नहीं बनाएगा: पहले mkdir -p चलाएँ |
| फ़ाइलें एक लेवल ऊपर पहुँच गईं | पाथ में आख़िरी स्लैश गायब है या ज़्यादा है |
rsync: command not found | दोनों तरफ़ पैकेज इंस्टॉल करें: apt install -y rsync |
| डिप्लॉयमेंट के बाद साइट 403 देती है | ओनर सेट नहीं है: chown -R www-data:www-data /var/www/example.com |
अगर आप ग्राफ़िकल क्लाइंट पसंद करते हैं, तो SFTP से फ़ाइल ट्रांसफ़र देखें।