নন-স্ট্যান্ডার্ড এসএসএইচ পোর্টের সাথে Rsync ব্যবহার করে ফাইল/ডিরেক্টরিগুলি কীভাবে সিঙ্ক করবেন


আজ, আমরা কীভাবে নন-স্ট্যান্ডার্ড এসএসএইচ পোর্টের সাথে আরএসসিএনসি ব্যবহার করে ফাইলগুলি সিঙ্ক করতে হবে সে সম্পর্কে আলোচনা করব। আপনি ভাবতে পারেন যে আমাদের কেন স্ট্যান্ডার্ড নন-এসএসএইচ বন্দর ব্যবহার করা দরকার? এটি সুরক্ষার কারণেই। সকলেই জানেন 22 টি এসএসএইচ ডিফল্ট বন্দর port

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

আপনারা জানেন যে, আরএসসিএনসি, যা রিমোট সিঙ্ক হিসাবেও পরিচিত, এটি একটি দ্রুত, বহুমুখী এবং শক্তিশালী সরঞ্জাম যা স্থানীয়/স্থানীয় থেকে দূরবর্তী হোস্টগুলিতে ফাইল/ডিরেক্টরিগুলি অনুলিপি এবং সিঙ্ক করতে ব্যবহৃত হতে পারে। আরএসআইএনসি সম্পর্কে আরও তথ্যের জন্য ম্যান পেজগুলি দেখুন:

# man rsync

অথবা নীচের লিঙ্ক থেকে আমাদের পূর্ববর্তী গাইড দেখুন।

  1. Rsync: লিনাক্সে Rsync কমান্ডের 10 ব্যবহারিক উদাহরণ

এসএসএইচ পোর্টকে নন-স্ট্যান্ডার্ড পোর্টে পরিবর্তন করুন

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

এটি করতে, এসএসএইচ কনফিগারেশন/etc/ssh/sshd_config ফাইলটি খুলুন এবং সম্পাদনা করুন:

# vi /etc/ssh/sshd_config 

নিম্নলিখিত লাইনটি সন্ধান করুন। কমেন্ট এবং আপনার পছন্দসই পোর্ট নম্বর পরিবর্তন করুন। আমি আপনাকে এমন কোনও নম্বর চয়ন করার পরামর্শ দিচ্ছি যা অনুমান করা খুব কঠিন।

নিশ্চিত করুন যে আপনি একটি অনন্য নম্বর ব্যবহার করছেন যা বিদ্যমান পরিষেবাদি দ্বারা ব্যবহৃত হয় না। কোন টিসিপি/ইউডিপি পোর্টগুলি নিয়ে কোন পরিষেবাগুলি চলছে তা জানতে এই নেটস্ট্যাট নিবন্ধটি দেখুন।

উদাহরণস্বরূপ, আমি এখানে 1431 পোর্ট নম্বর ব্যবহার করি।

[...]
Port 1431
[...]

সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন।

আরপিএম ভিত্তিক সিস্টেমে যেমন আরএইচইল, সেন্টোস এবং সায়েন্টিফিক লিনাক্স 7 এ আপনার ফায়ারওয়াল বা রাউটারের মাধ্যমে আপনাকে নতুন বন্দরের অনুমতি দেওয়া দরকার।

# firewall-cmd --add-port 1431/tcp
# firewall-cmd --add-port 1431/tcp --permanent

আরএইচইএল/সেন্টোস/বৈজ্ঞানিক লিনাক্স 6 এবং তারপরে, আপনার পোর্টের অনুমতি দেওয়ার জন্য সেলিনাক্স অনুমতিও আপডেট করতে হবে।

# iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1431 -j ACCEPT
# semanage port -a -t ssh_port_t -p tcp 1431

পরিশেষে, পরিবর্তনগুলি কার্যকর করতে SSH পরিষেবাটি পুনরায় চালু করুন।

# systemctl restart sshd        [On SystemD]
OR
# service sshd restart          [On SysVinit]

এখন আসুন কীভাবে অ-স্ট্যান্ডার্ড পোর্টের সাথে আরএসসিএনসি ব্যবহার করে ফাইলগুলি সিঙ্ক করবেন।

অ-মানক এসএসএইচ পোর্টের সাথে কীভাবে রাইকি করবেন

নন-স্ট্যান্ডার্ড এসএস পোর্ট সহ রাইকিঙ্ক ব্যবহার করে ফাইল/ফোল্ডারগুলি সিঙ্ক করতে টার্মিনাল থেকে নীচের কমান্ডটি চালান।

# rsync -arvz -e 'ssh -p <port-number>' --progress --delete [email :/path/to/remote/folder /path/to/local/folder

এই টিউটোরিয়ালটির উদ্দেশ্যে, আমি দুটি সিস্টেম ব্যবহার করব।

IP Address: 192.168.1.103
User name: tecmint
Sync folder: /backup1
Operating System: Ubuntu 14.04 Desktop
IP Address: 192.168.1.100
Sync folder: /home/sk/backup2

আসুন আমরা দূরবর্তী সার্ভারের /ব্যাকআপ 1 ফোল্ডারের সামগ্রীগুলি আমার স্থানীয় সিস্টেমের ফোল্ডার /হোম/এসসি/ব্যাকআপ 2/ সাথে সিঙ্ক করি।

$ sudo rsync -arvz -e 'ssh -p 1431' --progress --delete [email :/backup1 /home/sk/backup2
[email 's password: 
receiving incremental file list
backup1/
backup1/linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
        752,876 100%   13.30MB/s    0:00:00 (xfr#1, to-chk=2/4)
backup1/linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb
      9,676,510 100%   12.50MB/s    0:00:00 (xfr#2, to-chk=1/4)
backup1/linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
     56,563,302 100%   11.26MB/s    0:00:04 (xfr#3, to-chk=0/4)

sent 85 bytes  received 66,979,455 bytes  7,050,477.89 bytes/sec
total size is 66,992,688  speedup is 1.00.

আসুন আমরা রিমোট সার্ভারে /ব্যাকআপ 1/ ফোল্ডারের সামগ্রীগুলি পরীক্ষা করে দেখি।

$ sudo ls -l /backup1/
total 65428
-rw-r--r-- 1 root root  9676510 Dec  9 13:44 linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb
-rw-r--r-- 1 root root   752876 Dec  9 13:44 linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
-rw-r--r-- 1 root root 56563302 Dec  9 13:44 linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb

এখন, স্থানীয় সিস্টেমের /ব্যাকআপ 2/ ফোল্ডারের সামগ্রীগুলি পরীক্ষা করা যাক।

$ ls /home/sk/backup2/
backup1

উপরের আউটপুটটিতে আপনি দেখতে পাচ্ছেন যে /ব্যাকআপ 1/ এর সামগ্রীগুলি আমার স্থানীয় সিস্টেমের /হোম/এসসি/ব্যাকআপ 2/ ডিরেক্টরিতে সফলভাবে অনুলিপি করা হয়েছে।

/ব্যাকআপ 1/ ফোল্ডার সামগ্রীগুলি যাচাই করুন:

$ ls /home/sk/backup2/backup1/
linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb            
linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb

দেখুন, দূরবর্তী এবং স্থানীয় উভয় সিস্টেমের ফোল্ডারে একই ফাইল রয়েছে।

উপসংহার

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