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 کے ذریعے فائل ٹرانسفر دیکھیں۔