Skip to content
VDS · मशीन एक्सेस

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 से फ़ाइल ट्रांसफ़र देखें।