রাইকিঙ্ক (রিমোট সিঙ্ক): লিনাক্সে Rsync কমান্ডের 10 টি ব্যবহারিক উদাহরণ


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

এই নিবন্ধটি লিনাক্স ভিত্তিক মেশিনে আপনার ফাইলগুলি দূর থেকে এবং স্থানীয়ভাবে স্থানান্তর করতে আরএসসিএনসি কমান্ডের 10 বেসিক এবং উন্নত ব্যবহারের ব্যাখ্যা দেয়। আরএসসিএন কমান্ড চালানোর জন্য আপনাকে রুট ব্যবহারকারী হওয়ার দরকার নেই।

  1. এটি দক্ষতার সাথে কোনও দূরবর্তী সিস্টেমে ফাইলগুলি অনুলিপি করে এবং সিঙ্ক করে।
  2. লিঙ্ক, ডিভাইস, মালিক, গোষ্ঠী এবং অনুমতিগুলির অনুলিপি সমর্থন করে।
  3. এটি স্কিপি (সিকিউর কপি) এর চেয়ে দ্রুততর কারণ rsync রিমোট-আপডেট প্রোটোকল ব্যবহার করে যা ফাইলের দুটি সেটগুলির মধ্যে পার্থক্য কেবল স্থানান্তর করতে দেয়। প্রথমবার, এটি উত্স থেকে গন্তব্যস্থলে কোনও ফাইল বা ডিরেক্টরিগুলির সম্পূর্ণ সামগ্রীর অনুলিপি করে তবে পরবর্তী সময় থেকে, এটি কেবলমাত্র পরিবর্তিত ব্লক এবং বাইটগুলি গন্তব্যে অনুলিপি করে।
  4. উভয় প্রান্তে ডেটা প্রেরণ ও গ্রহণ করার সময় রাইকিঙ্ক কম ব্যান্ডউইথ গ্রহণ করে কারণ এটি সংকোচন এবং ডিকম্প্রেশন পদ্ধতিটি ব্যবহার করে

# rsync options source destination

  1. -v: verbose
  2. -r: পুনরাবৃত্তভাবে তথ্য অনুলিপি করে (তবে ডেটা স্থানান্তর করার সময় টাইমস্ট্যাম্প এবং অনুমতি সংরক্ষণ করবেন না
  3. -এ: সংরক্ষণাগার মোড, সংরক্ষণাগার মোড ফাইলগুলিকে পুনরাবৃত্তভাবে অনুলিপি করার অনুমতি দেয় এবং এটি প্রতীকী লিঙ্ক, ফাইল অনুমতি, ব্যবহারকারী ও গোষ্ঠী মালিকানা এবং টাইমস্ট্যাম্পগুলি সংরক্ষণ করে
  4. -z: ফাইল ডেটা সঙ্কলন করুন
  5. -h: মানব-পঠনযোগ্য, একটি মানব-পঠনযোগ্য ফর্ম্যাটে আউটপুট নম্বর

নিম্নলিখিত কমান্ডের সাহায্যে আমরা rsync প্যাকেজ ইনস্টল করতে পারি।

# yum install rsync (On Red Hat based systems)
# apt-get install rsync (On Debian based systems)

1. স্থানীয়ভাবে ফাইল/ডিরেক্টরি কপি/সিঙ্ক করুন

এই নিম্নলিখিত কমান্ডটি একটি লোকাল মেশিনে একটি লোকেশন এক অবস্থান থেকে অন্য জায়গায় সিঙ্ক করবে। এখানে এই উদাহরণে একটি ফাইলের নাম ব্যাকআপ.আরটি/tmp/ব্যাকআপ/ফোল্ডারে অনুলিপি করা বা সিঙ্ক করা দরকার।

 rsync -zvh backup.tar /tmp/backups/

created directory /tmp/backups

backup.tar

sent 14.71M bytes  received 31 bytes  3.27M bytes/sec

total size is 16.18M  speedup is 1.10

উপরের উদাহরণে, আপনি দেখতে পাচ্ছেন যে গন্তব্যটি ইতিমধ্যে উপস্থিত না থাকলে rsync গন্তব্যের জন্য স্বয়ংক্রিয়ভাবে একটি ডিরেক্টরি তৈরি করবে।

নিম্নলিখিত কমান্ডটি একই মেশিনের একটি ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে সমস্ত ফাইল স্থানান্তর বা সিঙ্ক করবে। এখানে এই উদাহরণে,/root/rpmpkgs কিছু rpm প্যাকেজ ফাইল রয়েছে এবং আপনি ডিরেক্টরিটি/tmp/ব্যাকআপ/ফোল্ডারের ভিতরে অনুলিপি করতে চান।

 rsync -avzh /root/rpmpkgs /tmp/backups/

sending incremental file list

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/nagios-3.5.0.tar.gz

rpmpkgs/nagios-plugins-1.4.16.tar.gz

sent 4.99M bytes  received 92 bytes  3.33M bytes/sec

total size is 4.99M  speedup is 1.00

2. একটি সার্ভারে বা থেকে ফাইল/ডিরেক্টরি অনুলিপি/সিঙ্ক করুন

এই কমান্ডটি স্থানীয় মেশিন থেকে একটি দূরবর্তী মেশিনে একটি ডিরেক্টরি সিঙ্ক করবে। উদাহরণস্বরূপ: আপনার স্থানীয় কম্পিউটারে একটি ফোল্ডার রয়েছে "rpmpkgs" এতে কিছু RPM প্যাকেজ রয়েছে এবং আপনি চান যে স্থানীয় ডিরেক্টরিটির বিষয়বস্তু একটি রিমোট সার্ভারে প্রেরণ করতে পারেন, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন।

[[email ]$ rsync -avz rpmpkgs/ [email :/home/

[email 's password:

sending incremental file list

./

httpd-2.2.3-82.el5.centos.i386.rpm

mod_ssl-2.2.3-82.el5.centos.i386.rpm

nagios-3.5.0.tar.gz

nagios-plugins-1.4.16.tar.gz

sent 4993369 bytes  received 91 bytes  399476.80 bytes/sec

total size is 4991313  speedup is 1.00

এই কমান্ড আপনাকে স্থানীয় ডিরেক্টরিতে একটি দূরবর্তী ডিরেক্টরি সিঙ্ক করতে সহায়তা করবে। এখানে এই উদাহরণস্বরূপ, একটি ডিরেক্টরি/হোম/তারুনিকা/আরপিএমপ্যাগস যা দূরবর্তী সার্ভারে রয়েছে/tmp/myrpms এ আপনার স্থানীয় কম্পিউটারে অনুলিপি করা হচ্ছে।

 rsync -avzh [email :/home/tarunika/rpmpkgs /tmp/myrpms

[email 's password:

receiving incremental file list

created directory /tmp/myrpms

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/nagios-3.5.0.tar.gz

rpmpkgs/nagios-plugins-1.4.16.tar.gz

sent 91 bytes  received 4.99M bytes  322.16K bytes/sec

total size is 4.99M  speedup is 1.00

৩.এসএনএইচ ওভারইঙ্ক

আরএসআইএনসি সহ আমরা ডেটা স্থানান্তর করার জন্য এসএসএইচ (সিকিউর শেল) ব্যবহার করতে পারি, এসএসএইচ প্রোটোকল ব্যবহার করে আমাদের ডেটা স্থানান্তর করার সময় আপনাকে নিশ্চিত করা যায় যে আপনার ডেটা এনক্রিপশনের সাথে সুরক্ষিত সংযোগে স্থানান্তরিত হচ্ছে যাতে যাতে কেউ আপনার ডেটা স্থানান্তরিত হওয়ার সময় পড়তে না পারে ইন্টারনেটে তারের উপর দিয়ে

এছাড়াও যখন আমরা rsync ব্যবহার করি তখন সেই নির্দিষ্ট কাজটি সম্পাদন করার জন্য আমাদের ব্যবহারকারী/রুট পাসওয়ার্ড সরবরাহ করতে হবে, সুতরাং এসএসএইচ বিকল্পটি ব্যবহার করে আপনার লগইনগুলি একটি এনক্রিপ্ট করা পদ্ধতিতে প্রেরণ করবে যাতে আপনার পাসওয়ার্ডটি নিরাপদ থাকে।

আরএসআইএনসি সহ একটি প্রোটোকল নির্দিষ্ট করতে আপনাকে যে প্রোটোকল নামটি ব্যবহার করতে চান তার সাথে "-e" বিকল্পটি দিতে হবে। এখানে এই উদাহরণে, আমরা "-e" বিকল্পের সাথে "ssh" ব্যবহার করব এবং ডেটা স্থানান্তর করব।

 rsync -avzhe ssh [email :/root/install.log /tmp/

[email 's password:

receiving incremental file list

install.log

sent 30 bytes  received 8.12K bytes  1.48K bytes/sec

total size is 30.74K  speedup is 3.77
 rsync -avzhe ssh backup.tar [email :/backups/

[email 's password:

sending incremental file list

backup.tar

sent 14.71M bytes  received 31 bytes  1.28M bytes/sec

total size is 16.18M  speedup is 1.10

৪. rsync দিয়ে ডেটা স্থানান্তর করার সময় অগ্রগতি দেখান

একটি যন্ত্র থেকে অন্য মেশিনে ডেটা স্থানান্তর করার সময় অগ্রগতি দেখানোর জন্য, আমরা এর জন্য ‘–প্রোগ্রেস’ বিকল্পটি ব্যবহার করতে পারি। স্থানান্তরটি শেষ করতে এটি ফাইলগুলি এবং বাকি সময় প্রদর্শন করে।

 rsync -avzhe ssh --progress /home/rpmpkgs [email :/root/rpmpkgs

[email 's password:

sending incremental file list

created directory /root/rpmpkgs

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

           1.02M 100%        2.72MB/s        0:00:00 (xfer#1, to-check=3/5)

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

          99.04K 100%  241.19kB/s        0:00:00 (xfer#2, to-check=2/5)

rpmpkgs/nagios-3.5.0.tar.gz

           1.79M 100%        1.56MB/s        0:00:01 (xfer#3, to-check=1/5)

rpmpkgs/nagios-plugins-1.4.16.tar.gz

           2.09M 100%        1.47MB/s        0:00:01 (xfer#4, to-check=0/5)

sent 4.99M bytes  received 92 bytes  475.56K bytes/sec

total size is 4.99M  speedup is 1.00

5. অন্তর্ভুক্ত এবং অন্তর্ভুক্ত বিকল্পগুলির ব্যবহার

এই দুটি বিকল্পের সাহায্যে এই বিকল্পগুলির সাথে পরামিতিগুলি নির্দিষ্ট করে ফাইলগুলি অন্তর্ভুক্ত করতে এবং বাদ দিতে দেয় আমাদের সেই ফাইল বা ডিরেক্টরিগুলি নির্দিষ্ট করতে সহায়তা করে যা আপনি আপনার সিঙ্কে অন্তর্ভুক্ত করতে চান এবং ফাইল এবং ফোল্ডারগুলি আপনাকে স্থানান্তর করতে চান না তা বাদ দিতে পারেন।

এখানে এই উদাহরণে, rsync কমান্ডের মধ্যে সেই ফাইলগুলি এবং ডিরেক্টরিগুলি কেবলমাত্র 'আর' দিয়ে শুরু হবে এবং অন্যান্য সমস্ত ফাইল এবং ডিরেক্টরি বাদ দেবে।

 rsync -avze ssh --include 'R*' --exclude '*' [email :/var/lib/rpm/ /root/rpm

[email 's password:

receiving incremental file list

created directory /root/rpm

./

Requirename

Requireversion

sent 67 bytes  received 167289 bytes  7438.04 bytes/sec

total size is 434176  speedup is 2.59

–ডিলেট অপশন ব্যবহার

যদি উত্সটিতে কোনও ফাইল বা ডিরেক্টরি উপস্থিত না থাকে তবে গন্তব্যটিতে ইতিমধ্যে উপস্থিত রয়েছে, আপনি সিঙ্ক করার সময় লক্ষ্যমাত্রায় বিদ্যমান ফাইল/ডিরেক্টরিটি মুছতে পারেন।

উত্স ডিরেক্টরিতে নেই এমন ফাইলগুলি মুছতে আমরা ‘lete মুছে ফেলা’ বিকল্পটি ব্যবহার করতে পারি।

উত্স এবং লক্ষ্য সিঙ্কে রয়েছে। এখন টার্গেটে নতুন ফাইল test.txt তৈরি করছে।

 touch test.txt
 rsync -avz --delete [email :/var/lib/rpm/ .
Password:
receiving file list ... done
deleting test.txt
./
sent 26 bytes  received 390 bytes  48.94 bytes/sec
total size is 45305958  speedup is 108908.55

টার্গেটে টেস্ট.টেক্সট নামে নতুন ফাইল রয়েছে, যখন উত্সের সাথে ‘leteডিলিট’ বিকল্পের সাথে সিঙ্ক্রোনাইজ করা হয়, এটি ফাইলটি টেস্ট.টিএসটিএসটি সরিয়ে দেয়।

7. স্থানান্তরিত হওয়ার জন্য ফাইলের সর্বোচ্চ আকার নির্ধারণ করুন

স্থানান্তরিত বা সিঙ্ক করার জন্য আপনি সর্বোচ্চ ফাইলের আকারটি নির্দিষ্ট করতে পারেন। আপনি এটি "–ম্যাক্স-সাইজ" বিকল্পের সাহায্যে করতে পারেন। এখানে এই উদাহরণে, সর্বোচ্চ ফাইলের আকার 200k, সুতরাং এই আদেশটি কেবল সেই ফাইলগুলিকেই স্থানান্তর করবে যা 200k এর সমান বা ছোট।

 rsync -avzhe ssh --max-size='200k' /var/lib/rpm/ [email :/root/tmprpm

[email 's password:

sending incremental file list

created directory /root/tmprpm

./

Conflictname

Group

Installtid

Name

Provideversion

Pubkeys

Requireversion

Sha1header

Sigmd5

Triggername

__db.001

sent 189.79K bytes  received 224 bytes  13.10K bytes/sec

total size is 38.08M  speedup is 200.43

৮. সফল স্থানান্তরের পরে উত্স ফাইলগুলি স্বয়ংক্রিয়ভাবে মুছুন

এখন, ধরুন আপনার একটি প্রধান ওয়েব সার্ভার এবং একটি ডেটা ব্যাকআপ সার্ভার রয়েছে, আপনি একটি দৈনিক ব্যাকআপ তৈরি করেছেন এবং এটি আপনার ব্যাকআপ সার্ভারের সাথে সিঙ্ক করেছেন, এখন আপনি নিজের ওয়েব সার্ভারে ব্যাকআপের সেই স্থানীয় অনুলিপিটি রাখতে চান না।

সুতরাং, আপনি কি স্থানান্তরটি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করবেন এবং তারপরে সেই স্থানীয় ব্যাকআপ ফাইলটি ম্যানুয়ালি মুছে ফেলবেন? অবশ্যই না. এই স্বয়ংক্রিয়ভাবে মুছে ফেলার কাজটি ‘–মরিভ-উত্স-ফাইলগুলি’ বিকল্প ব্যবহার করে করা যেতে পারে।

 rsync --remove-source-files -zvh backup.tar /tmp/backups/

backup.tar

sent 14.71M bytes  received 31 bytes  4.20M bytes/sec

total size is 16.18M  speedup is 1.10

 ll backup.tar

ls: backup.tar: No such file or directory

9. rsync দিয়ে একটি ড্রাই ড্রাই করুন Run

আপনি যদি নবাগত হন এবং আরএসসিএন ব্যবহার করছেন এবং আপনার আদেশটি ঠিক কী করছে তা জানেন না। Rsync আপনার গন্তব্য ফোল্ডারে জিনিসগুলি সত্যিই জড়িয়ে ফেলতে পারে এবং তারপরে পূর্বাবস্থায় ফেরা করা এক ক্লান্তিকর কাজ হতে পারে।

এই বিকল্পের ব্যবহারের ফলে কমান্ডের একটি শুকনো সঞ্চালন ঘটে না এবং কমান্ডের আউটপুটও প্রদর্শিত হবে না, যদি আউটপুট ঠিক একইভাবে দেখাতে চায় তবে আপনি আপনার কমান্ড থেকে '–dry-run' বিকল্পটি মুছে ফেলতে পারবেন এবং টার্মিনাল চালান।

[email ]# rsync --dry-run --remove-source-files -zvh backup.tar /tmp/backups/

backup.tar

sent 35 bytes  received 15 bytes  100.00 bytes/sec

total size is 16.18M  speedup is 323584.00 (DRY RUN)

10. ব্যান্ডউইথ সীমা এবং ফাইল স্থানান্তর সেট করুন

‘Wব্লিমিট’ বিকল্পের সাহায্যে একটি যন্ত্র থেকে অন্য মেশিনে ডেটা স্থানান্তর করার সময় আপনি ব্যান্ডউইথ সীমাটি সেট করতে পারেন। এই বিকল্পগুলি আই/ও ব্যান্ডউইথ সীমাবদ্ধ করতে আমাদের সহায়তা করে।

 rsync --bwlimit=100 -avzhe ssh  /var/lib/rpm/  [email :/root/tmprpm/
[email 's password:
sending incremental file list
sent 324 bytes  received 12 bytes  61.09 bytes/sec
total size is 38.08M  speedup is 113347.05

এছাড়াও, ডিফল্টরূপে rsync সিঙ্কগুলি কেবলমাত্র ব্লক এবং বাইটগুলি পরিবর্তিত করে, যদি আপনি স্পষ্টভাবে পুরো ফাইলটি সিঙ্ক করতে চান তবে আপনি এটির সাথে '-W' বিকল্পটি ব্যবহার করেন।

 rsync -zvhW backup.tar /tmp/backups/backup.tar
backup.tar
sent 14.71M bytes  received 31 bytes  3.27M bytes/sec
total size is 16.18M  speedup is 1.10

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