উবুন্টুতে rsync এর চূড়ান্ত গাইড: ফাইল সিঙ্ক ও ব্যাকআপ

目次

১. পরিচিতি

আরএসএসএনসি কী?

rsync একটি কমান্ড-লাইন টুল যা ফাইল এবং ডিরেক্টরির দ্রুত এবং দক্ষ সিঙ্ক্রোনাইজেশন এবং কপি করার জন্য ব্যবহৃত হয়। লিনাক্স এবং ইউনিক্স-লাইক সিস্টেমে ব্যাপকভাবে ব্যবহৃত, এটি একটি ডিফারেনশিয়াল ট্রান্সফার মেকানিজম ব্যবহার করে, যা অপ্রয়োজনীয় ডেটা ট্রান্সফার ছাড়াই বড় ভলিউমের ফাইলের দক্ষ সিঙ্ক্রোনাইজেশন অনুমতি দেয়। এটি প্রায়শই ইউবুন্টুর মতো লিনাক্স ডিস্ট্রিবিউশনে ডিফল্টভাবে অন্তর্ভুক্ত থাকে, যা সার্ভার অ্যাডমিনিস্ট্রেটর এবং ডেভেলপারদের জন্য একটি অপরিহার্য টুল করে তোলে।

ইউবুন্টুতে আরএসএসএনসি ব্যবহারের উপকারিতা

ইউবুন্টুতে, rsync রুটিন ফাইল ব্যাকআপ এবং একাধিক ডিরেক্টরি সিঙ্ক্রোনাইজ করার জন্য অত্যন্ত কার্যকর। গ্রাফিকাল ইন্টারফেসের উপর নির্ভর না করে, আপনি টার্মিনালে কয়েকটি কমান্ড প্রবেশ করে লোকাল বা রিমোট উভয় ক্ষেত্রেই উচ্চ-গতির ফাইল ট্রান্সফার অর্জন করতে পারেন।

এটি নিম্নলিখিত পরিস্থিতিতে বিশেষভাবে উপকারী:

  • এক্সটার্নাল এইচডিডি বা এনএএস-এ নিয়মিত ব্যাকআপ
  • ডেভেলপমেন্টের সময় প্রজেক্ট ফোল্ডারের সিঙ্ক্রোনাইজেশন
  • রিমোট সার্ভারে ডেপ্লয়মেন্ট টাস্ক
  • ফাইল মিররিংয়ের মাধ্যমে উপলব্ধতা উন্নয়ন

অন্যান্য কমান্ড থেকে পার্থক্য

cp কমান্ডের তুলনায়, আরএসএসএনসি শুধুমাত্র সোর্স এবং ডেস্টিনেশনের মধ্যে পার্থক্য ট্রান্সফার করে, যা প্রসেসিং সময়কে উল্লেখযোগ্যভাবে কমিয়ে দেয়। scp-এর তুলনায়, এটি এররের পর রিজিউম করার ক্ষমতা এবং নমনীয় ব্যান্ডউইথ কন্ট্রোল সেটিংসের মতো সুবিধা প্রদান করে। এছাড়া, একটি প্রধান উপকারিতা হলো এর ফাইলের অ্যাট্রিবিউট (মালিক, অনুমতি, টাইমস্ট্যাম্প ইত্যাদি) সংরক্ষণ করে ট্রান্সফার করার ক্ষমতা।

এই নিবন্ধের উদ্দেশ্য

এই নিবন্ধটি ইউবুন্টু পরিবেশে rsync ইনস্টল এবং কার্যকরভাবে ব্যবহার করার বিস্তারিত ব্যাখ্যা প্রদান করবে, যার মধ্যে প্র্যাকটিক্যাল কমান্ড উদাহরণ এবং ব্যবহারের কেস অন্তর্ভুক্ত। আমরা জিইউআই টুল এবং ট্রাবলশুটিং টিপস কভার করব যাতে শিক্ষানবিসরা সহজেই শুরু করতে পারেন, আরএসএসএনসির ব্যবহারিক ব্যবহার ধাপে ধাপে শিখতে পারেন।

২. আরএসএসএনসি ইনস্টল করার উপায় (ইউবুন্টু)

ইউবুন্টুতে আরএসএসএনসি আগে থেকে ইনস্টল কিনা চেক করুন

অধিকাংশ ইউবুন্টু পরিবেশে, আরএসএসএনসি সাধারণত ডিফল্টভাবে ইনস্টল থাকে। প্রথমে, নিম্নলিখিত কমান্ড ব্যবহার করে চেক করুন যে আরএসএসএনসি ইতিমধ্যে উপলব্ধ কিনা।

rsync --version

যদি এই কমান্ডটি চলে এবং ভার্সন তথ্য প্রদর্শন করে, তাহলে এটি ইতিমধ্যে ইনস্টল এবং ব্যবহারের জন্য প্রস্তুত।

যদি আরএসএসএনসি ইনস্টল না থাকে তাহলে ধাপসমূহ

যদি আপনি “command not found” বা “rsync: command not found” এর মতো বার্তা দেখেন, তাহলে এটি ইনস্টল করার জন্য নিম্নলিখিত ধাপগুলি অনুসরণ করুন।

  1. প্যাকেজ তথ্য আপডেট করুন:
    sudo apt update
    
  1. আরএসএসএনসি ইনস্টল করুন:
    sudo apt install rsync
    
  1. ইনস্টলেশন সম্পূর্ণ হওয়ার পর, ভার্সনটি আবার চেক করুন:
    rsync --version
    

যদি ভার্সন তথ্য কোনো সমস্যা ছাড়াই প্রদর্শিত হয়, তাহলে ইনস্টলেশন সফল হয়েছে।

স্ন্যাপ বা অন্যান্য পদ্ধতির মাধ্যমে ইনস্টলেশন প্রয়োজনীয় কিনা?

ইউবুন্টুর জন্য, এপিটি-এর মাধ্যমে আরএসএসএনসি ইনস্টল করা সবচেয়ে সুপারিশকৃত পদ্ধতি। যদিও একটি স্ন্যাপ প্যাকেজ বিদ্যমান, এপিটি ভার্সন সাধারণ ব্যবহারের জন্য যথেষ্ট এবং ভালো স্থিতিশীলতা এবং সামঞ্জস্যতা প্রদান করে। যদি না আপনার কোনো নির্দিষ্ট কারণ থাকে, তাহলে এপিটি ব্যবহার করে ইনস্টল করুন।

ইনস্টলেশনের সময় নোট

  • পুরোনো ইউবুন্টু ভার্সনগুলোতে রিপোজিটরি আপডেট প্রয়োজন হতে পারে।
  • রুট প্রিভিলেজ প্রয়োজন হওয়ায় sudo ব্যবহার করতে ভুলবেন না।
  • অস্থির নেটওয়ার্ক কানেকশনের পরিবেশে ইনস্টলেশন এরর হতে পারে। স্থিতিশীল নেটওয়ার্কে ইনস্টল করার সুপারিশ করা হয়।

৩. আরএসএসএনসির মৌলিক ব্যবহার

আরএসএসএনসির মৌলিক সিনট্যাক্স

আরএসএসএনসি কমান্ডের সিনট্যাক্স সহজ কিন্তু খুব নমনীয়। মৌলিক ফর্ম নিম্নরূপ:

rsync [options] source destination

উদাহরণস্বরূপ, /home/user/documents/ ডিরেক্টরির কনটেন্ট /mnt/backup/-এ কপি করার জন্য, আপনি লিখবেন:

rsync -av /home/user/documents/ /mnt/backup/

এই কমান্ডে, নিম্নলিখিত অপশনগুলি ব্যবহৃত হয়েছে:

  • -a : আর্কাইভ মোড (ডিরেক্টরি স্ট্রাকচার, অনুমতি, মালিকানা ইত্যাদি সংরক্ষণ করে)
  • -v : ভার্বোজ আউটপুট (কোন ফাইলগুলি কপি হচ্ছে তা দেখায়)

ডিরেক্টরি পাথে ট্রেলিং স্ল্যাশের সতর্কতা

আরএসএসএনসিতে, সোর্স পাথে ট্রেলিং স্ল্যাশ অন্তর্ভুক্ত কিনা তার উপর আচরণ পরিবর্তন হয়।

  • /home/user/documents/ (স্ল্যাশ সহ) → কেবলমাত্র বিষয়বস্তু কপি হয় (যেমন, file1.txt, file2.txt, ইত্যাদি)
  • /home/user/documents (স্ল্যাশ ছাড়া) → documents ফোল্ডারটি নিজেই কপি হয় (ফলাফল: /mnt/backup/documents/file1.txt)

এই পার্থক্যটি rsync-এ বিশেষ একটি মূল বিষয়। আপনার প্রয়োজন অনুযায়ী এটি ব্যবহার করুন।

প্রায়ই ব্যবহৃত অপশনগুলির তালিকা

Rsync-এ অনেক অপশন আছে, তবে মৌলিক কাজের জন্য নিম্নলিখিতগুলো সাধারণত ব্যবহৃত হয়:

OptionDescription
-aArchive mode (recursive, preserves attributes)
-vDisplay detailed transfer information
-nPerform a trial run with no changes (dry run)
--progressShow copy progress
--deleteDelete files in the destination that do not exist in the source

কার্যকর করার আগে কী ঘটবে দেখতে চান?

প্রকৃতপক্ষে ফাইল ট্রান্সফার করার আগে কোন ফাইলগুলো প্রক্রিয়াকৃত হবে তা যাচাই করতে, -n অথবা --dry-run অপশন ব্যবহার করুন।

rsync -av --dry-run /home/user/documents/ /mnt/backup/

এটি আপনাকে “কি ঘটবে” তা আগে থেকেই দেখতে সাহায্য করে, ফলে অনিচ্ছাকৃত ডেটা ক্ষতি রোধ করা যায়।

লুকানো ফাইলগুলির হ্যান্ডলিং

Rsync ডিফল্টভাবে লুকানো ফাইলগুলো (ডট . দিয়ে শুরু হওয়া) স্বয়ংক্রিয়ভাবে ট্রান্সফারে অন্তর্ভুক্ত করে। এটি কনফিগারেশন ফাইল এবং পরিবেশগত তথ্যের সহজ সিঙ্ক্রোনাইজেশনকে করে।

৪. রিমোট সার্ভারের সঙ্গে সিঙ্ক্রোনাইজেশন

SSH এর মাধ্যমে rsync ব্যবহার করে রিমোট সিঙ্ক্রোনাইজেশন

rsync-এর প্রধান সুবিধাগুলোর একটি হল SSH এর মাধ্যমে রিমোট সার্ভারের সঙ্গে ফাইল সিঙ্ক্রোনাইজ করার ক্ষমতা। এটি নেটওয়ার্কের মাধ্যমে ডেটা ট্রান্সফারকে নিরাপদ সংযোগ বজায় রেখে সম্ভব করে।

মৌলিক সিনট্যাক্সটি নিম্নরূপ:

rsync -avz source user@remote_IP_or_hostname:destination_path

উদাহরণস্বরূপ, লোকাল /home/user/documents/ ডিরেক্টরিটিকে রিমোট সার্ভারের /var/www/backup/-এ সিঙ্ক্রোনাইজ করতে, আপনি ব্যবহার করবেন:

rsync -avz /home/user/documents/ user@example.com:/var/www/backup/
  • -z অপশন ট্রান্সফারের সময় ডেটা কম্প্রেস করে, যা ব্যান্ডউইথ সীমিত থাকলে কার্যকরী।
  • user@host অংশটি গন্তব্যের SSH ব্যবহারকারীর নাম এবং হোস্টনেম নির্ধারণ করে।

প্রথম সংযোগ এবং কী অথেনটিকেশন সেটআপ

রিমোট গন্তব্যে প্রথমবার সংযোগ করার সময়, আপনাকে হোস্টের সত্যতা নিশ্চিত করতে বলা হতে পারে। যদি নিরাপদ হয়, তবে “yes” টাইপ করুন।

ঘন ঘন rsync চালানোর জন্য, পাসওয়ার্ড টাইপ করা এড়াতে SSH কী অথেনটিকেশন সেটআপ করা সাধারণ প্র্যাকটিস।

  1. SSH কী লোকালি জেনারেট করুন (যদি আপনার না থাকে):
    ssh-keygen -t rsa
    
  1. পাবলিক কী রিমোট সার্ভারে কপি করুন:
    ssh-copy-id user@example.com
    

এর পরে, rsync পাসওয়ার্ড ছাড়াই চালানো যাবে।

পোর্ট নম্বর নির্দিষ্ট করা প্রয়োজন হলে

যদি রিমোট সার্ভার ডিফল্ট নয় এমন SSH পোর্ট (২২ ছাড়া) ব্যবহার করে, তবে -e অপশন ব্যবহার করে স্পষ্টভাবে তা নির্দিষ্ট করতে পারেন।

rsync -avz -e "ssh -p 2222" /home/user/documents/ user@example.com:/var/www/backup/

দ্বিমুখী সিঙ্ক্রোনাইজেশন নিয়ে সতর্কতা

Rsync একটি একমুখী সিঙ্ক্রোনাইজেশন টুল এবং শুধুমাত্র “source → destination” থেকে সিঙ্ক্রোনাইজ করে। যদি দ্বিমুখী সিঙ্ক্রোনাইজেশন প্রয়োজন হয়, তবে শুধুমাত্র rsync যথেষ্ট নয়, এবং আপনাকে অন্য কোনো টুল (যেমন, unison) ব্যবহার বিবেচনা করা উচিত।

৫. উপযোগী rsync অপশন এবং ব্যবহার উদাহরণ

মৌলিক rsync ব্যবহার ছাড়াও উপযোগী অপশনগুলো

মৌলিক কপি এবং সিঙ্ক্রোনাইজেশন ফাংশনের পাশাপাশি, rsync বিভিন্ন উপযোগী অপশন প্রদান করে। এখানে কিছু উন্নত অপশন রয়েছে যা ব্যবহারিকভাবে সহায়ক।

–delete: সোর্সে না থাকা ফাইলগুলো মুছে ফেলুন

এই অপশনটি গন্তব্যে এমন ফাইলগুলো স্বয়ংক্রিয়ভাবে মুছে ফেলতে দেয় যা সোর্সে নেই। মিররিং (সম্পূর্ণ নকল) করতে চাইলে এটি খুবই উপকারী।

rsync -av --delete /home/user/source/ /mnt/backup/

※ অনিচ্ছাকৃতভাবে প্রয়োজনীয় ফাইল মুছে ফেলার ঝুঁকি থাকায়, আগে --dry-run দিয়ে পরীক্ষা করা সুপারিশ করা হয়।

–exclude: নির্দিষ্ট ফাইল বা ডিরেক্টরি বাদ দিন

সিঙ্ক্রোনাইজেশন থেকে নির্দিষ্ট ফাইল বা ডিরেক্টরি বাদ দিতে, --exclude ব্যবহার করুন।

rsync -av --exclude '*.log' --exclude 'node_modules' /project/ /backup/

নমনীয় এক্সক্লুশন সেটিংসের জন্য আপনি একাধিক প্যাটার্ন একসাথে ব্যবহার করতে পারেন।

–bwlimit: ব্যান্ডউইথ সীমা

যদি আপনি rsync‑কে ব্যাকগ্রাউন্ডে চালাতে চান এবং অন্য নেটওয়ার্ক ট্র্যাফিককে প্রভাবিত না করতে চান, তবে --bwlimit অপশনটি ট্রান্সফার গতি সীমাবদ্ধ করার জন্য কার্যকর।

rsync -av --bwlimit=5000 /data/ user@remote:/data/

(এই উদাহরণে গতি সর্বোচ্চ 5 MB/s পর্যন্ত সীমাবদ্ধ করা হয়েছে)

ব্যবহারিক উদাহরণসমূহ

ব্যাকআপের জন্য rsync

Rsync‑কে একটি সহজ ও উচ্চ‑প্রদর্শনশীল ব্যাকআপ টুল হিসাবেও ব্যবহার করা যায়। নিচে একটি কমান্ড দেওয়া হয়েছে যা আপনি দৈনিকভাবে একটি এক্সটার্নাল HDD‑তে ব্যাকআপ নিতে ব্যবহার করতে পারেন।

rsync -a --delete /home/user/ /media/usb/backup/

এখানে --delete অপশনটি সম্পূর্ণ মিররিং অর্জনের জন্য ব্যবহার করা হয়েছে।

cron‑এর সঙ্গে স্বয়ংক্রিয় চালনা

rsync‑কে cron‑এর সঙ্গে যুক্ত করে আপনি নিয়মিত সিঙ্ক্রোনাইজেশন স্বয়ংক্রিয় করতে পারেন। উদাহরণস্বরূপ, রাত ২ টায় প্রতিদিন ব্যাকআপ নিতে, আপনার crontab‑এ নিম্নলিখিতটি যোগ করুন:

0 2 * * * rsync -a /home/user/ /mnt/backup/ >> /var/log/rsync.log 2>&1

এটি অনিয়ন্ত্রিত স্বয়ংক্রিয় সিঙ্ক্রোনাইজেশন সক্ষম করে, যা কাজ ও সার্ভার অপারেশনের দক্ষতা উল্লেখযোগ্যভাবে বাড়ায়।

rsync‑এর “নমনীয়তা” ও “দক্ষতা” উভয়ই প্রদান করে

rsync‑এর আকর্ষণ তার “যেকোনো উদ্দেশ্যে মানিয়ে নেওয়ার নমনীয়তা” এবং “উচ্চ ট্রান্সফার দক্ষতা” উভয়ই অর্জন করার ক্ষমতায় নিহিত, যা সমৃদ্ধ অপশন সেটের মাধ্যমে সম্ভব হয়। এটি কেবল একটি সাধারণ কপি নয়, বরং ইচ্ছাকৃতভাবে নিরাপদ ও দ্রুত সিঙ্ক্রোনাইজেশন সম্পাদনের একটি পদ্ধতি, ফলে rsync একটি অত্যন্ত শক্তিশালী পছন্দ।

6. GUI টুল “Grsync”‑এর পরিচিতি

কমান্ড‑লাইন ব্যবহার করতে স্বাচ্ছন্দ্যবোধ না করা ব্যবহারকারীদের জন্য সুপারিশকৃত

rsync একটি অত্যন্ত শক্তিশালী টুল, তবে এর অপারেশন মূলত টার্মিনাল ব্যবহার করে কমান্ড ইনপুটের নির্ভরশীল। লিনাক্সে নতুন বা যারা ভিজ্যুয়ালভাবে টুল কনফিগার ও ব্যবহার করতে পছন্দ করেন, তাদের জন্য এটি ভীতিকর হতে পারে।

এখানেই Grsync কাজে আসে। Grsync হল একটি GUI টুল যা অভ্যন্তরীণভাবে rsync ব্যবহার করে, তবে কনফিগারেশন ও এক্সিকিউশনের জন্য গ্রাফিক্যাল ইন্টারফেস প্রদান করে।

Grsync কীভাবে ইনস্টল করবেন (Ubuntu)

Ubuntu‑তে, আপনি সহজেই APT ব্যবহার করে Grsync ইনস্টল করতে পারেন।

sudo apt update
sudo apt install grsync

ইনস্টলেশনের পরে, আপনার অ্যাপ্লিকেশন তালিকায় “Grsync” প্রদর্শিত হবে, এবং এটিতে ক্লিক করলে GUI চালু হবে।

Grsync‑এর মৌলিক ব্যবহার

Grsync ইন্টারফেসটি স্বজ্ঞাত এবং আপনাকে নিম্নলিখিত আইটেমগুলো কনফিগার করতে দেয়:

  • সোর্স ও ডেস্টিনেশন পাথ প্রবেশ করান
  • “Recursive copy”, “Preserve attributes”, “Delete option” ইত্যাদি প্রধান rsync অপশনগুলোর সঙ্গে সংশ্লিষ্ট চেকবক্স
  • এক্সক্লুশন প্যাটার্ন নির্ধারণ করুন
  • Dry run execution বোতাম

কনফিগারেশন সম্পন্ন হলে, “Execute” বোতামে ক্লিক করলে ব্যাকগ্রাউন্ডে rsync চালু হবে এবং ফাইল সিঙ্ক্রোনাইজেশন সম্পন্ন হবে।

প্রোফাইল ফিচার দিয়ে সহজ পর্যায়ক্রমিক কাজ

Grsync আপনাকে আপনার কনফিগারেশন সেটিংস “প্রোফাইল” হিসেবে সংরক্ষণ করার সুযোগ দেয়। এটি একাধিক ব্যাকআপ সেটিং বা সিঙ্ক্রোনাইজেশন গন্তব্য পরিচালনার জন্য খুবই সুবিধাজনক।

উদাহরণস্বরূপ:

  • প্রোফাইল ১: USB ড্রাইভে ব্যাকআপ
  • প্রোফাইল ২: NAS‑এর সঙ্গে সিঙ্ক
  • প্রোফাইল ৩: এক্সটার্নাল সার্ভারে মিররিং

আপনি GUI‑এর মধ্যে সরাসরি এই প্রোফাইলগুলোর মধ্যে সহজে সুইচ করতে পারেন।

Grsync ব্যবহার করার সুবিধা ও অসুবিধা

ProsCons
Intuitive operation without commandsSome advanced options may not be configurable through the GUI
Configure while confirming the meaning of optionsVisualization of process details is somewhat abstract and may be insufficient for those accustomed to rsync’s output
Easy to start safely (e.g., dry run with a button)Less flexible in some situations compared to using the terminal

7. সাধারণ সমস্যাবলী ও সমাধান

ফাইলের অনুমতি সংরক্ষিত হচ্ছে না

লক্ষণ: গন্তব্যে ফাইলের মালিক বা অনুমতি পরিবর্তিত হয়ে যায়।
কারণ: rsync সাধারণ ব্যবহারকারী অধিকার দিয়ে চালানো হচ্ছে অথবা -a (archive) অপশনটি ব্যবহার করা হয়নি।
সমাধান:

  • স্পষ্টভাবে -a অপশনটি ব্যবহার করুন।
  • প্রয়োজনে sudo দিয়ে rsync চালান।
    sudo rsync -a /source/ /destination/
    

সিম্বলিক লিঙ্ক উপেক্ষা করা হচ্ছে

লক্ষণ: লিঙ্ক ফাইলগুলো কপি হয় না, অথবা সেগুলো প্রকৃত ফাইল হিসেবে কপি হয়।
কারণ: ডিফল্টভাবে সিম্বলিক লিঙ্কগুলো যেমন আছে তেমনই কপি হয়, তবে অপশনগুলোর ওপর নির্ভর করে আচরণ পরিবর্তিত হতে পারে।
সমাধান:

  • লিঙ্কগুলোকে যেমন আছে তেমনই কপি করতে: -a ব্যবহার করুন।
  • লক্ষ্য ফাইলটি নিজে কপি করতে: --copy-links যোগ করুন।

“Permission denied” ত্রুটি প্রদর্শিত হচ্ছে

লক্ষণ: নির্দিষ্ট ফাইল বা ডিরেক্টরির জন্য “Permission denied” ত্রুটি দেখিয়ে সিঙ্ক্রোনাইজেশন ব্যর্থ হয়।
কারণ: পর্যাপ্ত অ্যাক্সেস অনুমতি নেই।
সমাধান:

  • ফাইলের মালিকানা ও অনুমতি যাচাই করুন এবং প্রয়োজন হলে chmod বা chown ব্যবহার করে সঠিক অনুমতি দিন।
  • যদি রুট প্রিভিলেজ প্রয়োজন হয়, তবে sudo দিয়ে rsync চালান।

  • sudo দিয়ে rsync চালান।

  • উৎস বা গন্তব্য ডিরেক্টরিগুলির অ্যাক্সেস অনুমতি পরীক্ষা করুন এবং সংশোধন করুন।
    sudo rsync -a /source/ /destination/
    

“rsync: connection unexpectedly closed” প্রদর্শিত হয় (দূরবর্তী সংযোগের সময়)

লক্ষণ: দূরবর্তী সার্ভারের সাথে সংযোগের সময় ত্রুটির কারণে সিঙ্ক্রোনাইজেশন বাধাগ্রস্ত হয়।
কারণ: SSH কনফিগারেশন সমস্যা, ভুল পথ নির্দেশনা, দূরবর্তী অনুমতি সেটিংস ইত্যাদি।
সমাধান:

  • শুধুমাত্র SSH সংযোগ যাচাই করুন: ssh user@host সফল কিনা তা পরীক্ষা করুন।
  • গন্তব্য পথটি সঠিক কিনা দ্বিগুণ পরীক্ষা করুন।
  • ফায়ারওয়াল বা পোর্ট সমস্যা বিবেচনা করুন।

“Argument list too long”

লক্ষণ: অত্যন্ত বেশি সংখ্যক ফাইলযুক্ত একটি ডিরেক্টরি সিঙ্ক্রোনাইজ করার চেষ্টা করলে ত্রুটি ঘটে।
কারণ: কমান্ড-লাইন আর্গুমেন্টের দৈর্ঘ্যের সীমা অতিক্রম করা।
সমাধান:

  • --exclude বা --include ব্যবহার করে টার্গেটগুলি সংকুচিত করুন।
  • একাধিক ধাপে সিঙ্ক্রোনাইজ করুন, ডিরেক্টরি অনুসারে।

৮. FAQ (ঘন ঘন জিজ্ঞাসিত প্রশ্ন)

এখানে আমরা উবুন্টুতে rsync ব্যবহার করার সময় ব্যবহারকারীরা যে সাধারণ প্রশ্ন এবং সমস্যার সম্মুখীন হন তা সংকলিত করেছি। আমরা নতুনদের প্রায়শই আটকে যাওয়া পয়েন্টগুলিতে ফোকাস করে স্পষ্ট ব্যাখ্যা প্রদান করব।

Q1. rsync দিয়ে ফাইলের মালিকানা এবং অনুমতি কীভাবে সংরক্ষণ করব?

A1. -a অপশন (আর্কাইভ মোড) ব্যবহার করে আপনি ফাইলগুলি কপি করতে পারেন যাতে তাদের অনুমতি, টাইমস্ট্যাম্প, মালিক, গ্রুপ ইত্যাদি সংরক্ষিত থাকে। সিস্টেম কনফিগারেশন ব্যাকআপের মতো কাজের জন্য এই অপশনটি অপরিহার্য।

rsync -a /etc/ /backup/etc/

Q2. সিঙ্ক্রোনাইজেশন থেকে নির্দিষ্ট ফাইল বা ফোল্ডার কীভাবে বাদ দেব?

A2. --exclude অপশন ব্যবহার করে সিঙ্ক্রোনাইজেশন টার্গেট থেকে নির্দিষ্ট ফাইল বা প্যাটার্ন বাদ দিতে পারেন।

rsync -av --exclude '*.log' /project/ /backup/project/

ওয়াইল্ডকার্ডও ব্যবহার করা যায়, যা node_modules বা .git এর মতো ডিরেক্টরি বাদ দেওয়া সহজ করে।

Q3. rsync দিয়ে নেটওয়ার্ক ব্যান্ডউইথ কীভাবে সীমাবদ্ধ করব?

A3. --bwlimit অপশন দিয়ে আপনি ট্রান্সফার গতি সীমাবদ্ধ করতে পারেন। ইউনিট KB/s।

rsync -av --bwlimit=5000 /data/ user@remote:/data/

এই উদাহরণে, ট্রান্সফার গতি সর্বোচ্চ ৫MB/s-এ সীমাবদ্ধ। এটি নেটওয়ার্ক সংযোগকে স্যাচুরেট না করার জন্য উপযোগী যখন আপনি তা চান না।

Q4. আমি এক্সিকিউশনের আগে কী হবে তা দেখতে চাই। কীভাবে?

A4. --dry-run (বা -n) অপশন ব্যবহার করে আসলে কোনো ফাইল সরানো ছাড়াই ট্রান্সফার সিমুলেট করুন। এটি আপনাকে ঠিক কী হবে তা দেখায়।

rsync -av --dry-run /source/ /destination/

এই যাচাই পদক্ষেপটি rsync প্রথমবার ব্যবহার করার সময় বা --delete সহ অপারেশন করার সময় অত্যন্ত গুরুত্বপূর্ণ।

Q5. লুকানো ফাইল (ডট ফাইল) কপি হয় কি?

A5. হ্যাঁ, rsync ডিফল্টভাবে ডট (.) দিয়ে শুরু হওয়া ফাইলগুলিকে কপি টার্গেটে অন্তর্ভুক্ত করে। তবে, যদি আপনি নির্দিষ্ট লুকানো ফাইল বাদ দিতে চান, তাহলে --exclude '.*' এর মতো একটি বাদ-দেওয়া নিয়ম যোগ করতে হবে।

Q6. rsync এবং scp-এর মধ্যে পার্থক্য কী?

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

৯. উপসংহার

এই নিবন্ধে, আমরা উবুন্টুতে rsync-এর বিস্তৃত বিষয়গুলি কভার করেছি, ইনস্টলেশন পদ্ধতি এবং মৌলিক ব্যবহার থেকে শুরু করে দূরবর্তী সার্ভারের সাথে সিঙ্ক্রোনাইজেশন, উপযোগী অপশন, GUI টুল “Grsync” ব্যবহার, সমস্যা সমাধান এবং FAQ পর্যন্ত।

rsync-এর আকর্ষণের সারাংশ

  • দ্রুত ডিফারেনশিয়াল ট্রান্সফার অপ্রয়োজনীয় ডেটা ট্রান্সফার প্রতিরোধ করে।
  • অনুমতি এবং মালিকানা সংরক্ষণ করে ব্যাকআপ এবং মিররিং অনুমতি দেয়।
  • দূরবর্তী সিঙ্ক্রোনাইজেশন সমর্থন করে এবং SSH-এর সাথে নিরাপদে ব্যবহার করা যায়।
  • সমৃদ্ধ অপশন বিভিন্ন পরিস্থিতির জন্য সূক্ষ্ম নিয়ন্ত্রণ সক্ষম করে, যেমন বাদ দেওয়ার সেটিংস এবং ব্যান্ডউইথ সীমা।
  • ক্রন-এর সাথে একীভূত করে অটোমেশন এবং পর্যায়ক্রমিক কার্যনির্বাহ অর্জন করা যায়।
  • GUI টুল Grsync নতুনদের জন্য আত্মবিশ্বাসের সাথে অপারেট করা সহজ করে।

rsync হলো “লিনাক্স ব্যবহারকারীদের জন্য অপরিহার্য টুল”

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

এছাড়াও, যদিও rsync-এর সিনট্যাক্স সহজ, এটি আয়ত্ত করলে পেশাদার স্তরের ফাইল ম্যানেজমেন্ট সম্ভব। মূল বিষয়গুলো বুঝে শুরু করুন, এবং প্রয়োজন অনুসারে উন্নত অপশনগুলো যোগ করে আপনার নিজের পরিবেশের জন্য rsync ব্যবহারের সর্বোত্তম উপায় খুঁজে নিন।