Skip to content
VDS · মেশিন অ্যাক্সেস

scp এবং rsync: ফাইল কপি করা

আপনার কম্পিউটার ও সার্ভারের মধ্যে ফাইল স্থানান্তরের দুটি কমান্ড: কখন scp যথেষ্ট, rsync কী কাজে লাগে, এবং ট্রেইলিং স্ল্যাশ দিয়ে অন্যের ডিরেক্টরি ওভাররাইট না করার উপায়।

আপডেট: ২৩ আগস্ট, ২০২৬

একবারের এডিটের জন্য গ্রাফিক্যাল ক্লায়েন্ট সুবিধাজনক, তবে ডিপ্লয়মেন্ট ও ব্যাকআপ একটি কমান্ডেই করা সহজ।

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-এর মাধ্যমে ফাইল ট্রান্সফার।