Rsnapshot (Rsync ভিত্তিক) - লিনাক্সের জন্য স্থানীয়/রিমোট ফাইল সিস্টেম ব্যাকআপ ইউটিলিটি


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

এই নিবন্ধটি দেখায় যে কীভাবে ইনক্রিমেন্টাল আওয়ারলি, ডেইলি, সাপ্তাহিক এবং মাসিক স্থানীয় ব্যাকআপ, সেইসাথে রিমোট ব্যাকআপ তৈরি করতে আরএসএন্যাপশট ইনস্টল করা, সেটআপ এবং ব্যবহার করতে হবে। এই নিবন্ধের সমস্ত পদক্ষেপগুলি সম্পাদন করতে আপনাকে অবশ্যই রুট ব্যবহারকারী হতে হবে।

পদক্ষেপ 1: লিনাক্সে রাইনা্যাপশট ব্যাকআপ ইনস্টল করা

ইউম এবং এপিটি ব্যবহার করে আরএসএনপশট ইনস্টল করা কিছুটা আলাদা হতে পারে, আপনি যদি রেড হ্যাট এবং ডিবিয়ান ভিত্তিক বিতরণ ব্যবহার করেন।

প্রথমে আপনাকে EPEL নামে পরিচিত তৃতীয় পক্ষের সংগ্রহস্থল ইনস্টল করতে হবে এবং সক্ষম করতে হবে। আপনার RHEL/CentOS সিস্টেমের অধীনে ইনস্টল এবং সক্ষম করতে দয়া করে নীচের লিঙ্কটি অনুসরণ করুন। ফেডোরা ব্যবহারকারীদের জন্য কোনও বিশেষ সংগ্রহস্থল কনফিগারেশন প্রয়োজন হয় না।

  1. RHEL/CentOS 6/5/4
  2. এ EPEL সংগ্রহস্থল ইনস্টল ও সক্ষম করুন

জিনিসগুলি সেটআপ হয়ে গেলে, প্রদর্শিত কমান্ড লাইন থেকে আরএসএন্যাপশট ইনস্টল করুন।

# yum install rsnapshot

ডিফল্টরূপে, উবুন্টুর সংগ্রহস্থলগুলিতে আরএসএনপশট অন্তর্ভুক্ত থাকে, সুতরাং আপনি এপ-গেট কমান্ড ব্যবহার করে এটি ইনস্টল করতে পারেন shown

# apt-get install rsnapshot

পদক্ষেপ 2: এসএসএইচ পাসওয়ার্ড-কম লগইন সেটআপ করা

রিমোট লিনাক্স সার্ভারগুলির ব্যাকআপ নিতে, আপনার আরএসএনপশট ব্যাকআপ সার্ভার কোনও পাসওয়ার্ড ছাড়াই এসএসএইচের মাধ্যমে সংযোগ করতে সক্ষম হবে। এটি সম্পাদন করার জন্য, আপনাকে আরএসএন্যাপশট সার্ভারে প্রমাণীকরণের জন্য একটি এসএসএইচ পাবলিক এবং প্রাইভেট কী তৈরি করতে হবে। আপনার আরএসএন্যাপশট ব্যাকআপ সার্ভারে একটি সরকারী এবং ব্যক্তিগত কী তৈরি করতে দয়া করে নীচের লিঙ্কটি অনুসরণ করুন।

  1. এসএসএইচ কীজেন ব্যবহার করে এসএসএইচ পাসওয়ার্ডহীন লগইন তৈরি করুন

পদক্ষেপ 3: রুপক্ষেত্রটি কনফিগার করা

এখন আপনাকে আরএসএন্যাপশট কনফিগারেশন ফাইলটিতে কিছু পরামিতিগুলি সম্পাদনা করতে হবে এবং যুক্ত করতে হবে। Vi বা ন্যানো সম্পাদক দিয়ে আরএসএন্যাপশট.কনফ ফাইলটি খুলুন।

# vi /etc/rsnapshot.conf

এরপরে একটি ব্যাকআপ ডিরেক্টরি তৈরি করুন, যেখানে আপনি আপনার সমস্ত ব্যাকআপ সংরক্ষণ করতে চান। আমার ক্ষেত্রে আমার ব্যাকআপ ডিরেক্টরি অবস্থান "/ ডেটা/ব্যাকআপ /"। ব্যাকআপ অবস্থান সেট করতে নিম্নলিখিত প্যারামিটারটি অনুসন্ধান করুন এবং সম্পাদনা করুন।

snapshot_root			 /data/backup/

এছাড়াও এসএসএইচে দূরবর্তী ব্যাকআপ নেওয়ার অনুমতি দেওয়ার জন্য "সেমিডি_এসএইচ" লাইনটি আপত্তিহীন করুন। অনিশ্চিত হওয়ার জন্য লাইনটি নীচের লাইনের "#" সম্মুখভাগটি সরিয়ে ফেলুন যাতে আরএসএন্যাপশট নিরাপদে আপনার ডেটাটিকে ব্যাকআপ সার্ভারে স্থানান্তর করতে পারে।

cmd_ssh			/usr/bin/ssh

এরপরে, আপনাকে ঠিক করতে হবে যে আপনি কত পুরানো ব্যাকআপ রাখতে চান, কারণ আরএসএন্যাপশটের কোনও ধারণা ছিল না আপনি কতক্ষণ স্ন্যাপশট নিতে চান। আপনাকে কী পরিমাণ ডেটা সংরক্ষণ করতে হবে, অন্তর অন্তর অন্তর্ভুক্ত রাখতে হবে এবং প্রত্যেকটির কতটি নির্দিষ্ট করতে হবে specify

ওয়েল, ডিফল্ট সেটিংস যথেষ্ট ভাল, তবে তবুও আমি চাই আপনি "মাসিক" ব্যবধানটি সক্ষম করুন যাতে আপনি স্থায়ীভাবে দীর্ঘমেয়াদী ব্যাকআপ নিতে পারেন। নীচের সেটিংসের মতো দেখতে এই বিভাগটি সম্পাদনা করুন।

#########################################
#           BACKUP INTERVALS            #
# Must be unique and in ascending order #
# i.e. hourly, daily, weekly, etc.      #
#########################################

interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3

আপনার আর একটি জিনিস সম্পাদনা করতে হবে যা হ'ল "ssh_args" পরিবর্তনশীল। আপনি যদি ডিফল্ট এসএসএইচ পোর্টকে (22) অন্য কোনও কিছুতে পরিবর্তন করেছেন তবে আপনাকে আপনার দূরবর্তী ব্যাক আপ সার্ভারের সেই পোর্ট নম্বরটি নির্দিষ্ট করতে হবে।

ssh_args		-p 7851

অবশেষে, আপনার স্থানীয় এবং রিমোট ব্যাকআপ ডিরেক্টরিগুলি যুক্ত করুন যা আপনি ব্যাকআপ নিতে চান।

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

backup		/tecmint/		localhost/
backup		/etc/			localhost/

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

backup		 [email :/home/ 		/data/backup/

আরও পড়ুন:

  1. রাইকিঙ্ক (রিমোট সিঙ্ক) সরঞ্জামটি ব্যবহার করে ডিরেক্টরিগুলি কীভাবে ব্যাকআপ/সিঙ্ক করবেন
  2. এসসিপি কমান্ড ব্যবহার করে ফাইল/ফোল্ডারগুলি কীভাবে স্থানান্তর করবেন

এখানে, আমি সমস্ত কিছু বাদ দিচ্ছি এবং তারপরে কেবলমাত্র আমি কী ব্যাক আপ করতে চাই তা নির্দিষ্ট করে। এটি করার জন্য, আপনাকে একটি বাদ দেওয়া ফাইল তৈরি করতে হবে।

# vi /data/backup/tecmint.exclude

প্রথমে আপনি যে ডিরেক্টরিগুলির ব্যাকআপ নিতে চান তার তালিকা পান এবং সমস্ত কিছু বাদ দিতে (- *) যুক্ত করুন। আপনি কেবলমাত্র ফাইলটিতে তালিকাবদ্ধ করেছেন এটিই ব্যাকআপ করবে। আমার বাদ দেওয়া ফাইলটি নীচের মতো দেখতে লাগে।

+ /boot
+ /data
+ /tecmint
+ /etc
+ /home
+ /opt
+ /root
+ /usr
- /usr/*
- /var/cache
+ /var
- /*

ব্যতীত ফাইল বিকল্পটি ব্যবহার করা খুব কার্যকর হতে পারে আরএসসিএনসি পুনরাবৃত্তি ব্যবহারের কারণে। সুতরাং, আমার উপরের উদাহরণটি আপনি যা খুঁজছেন তা নাও হতে পারে। এরপরে আরএসএন্যাপশট.কনফ ফাইলটিতে বর্জনকারী ফাইল যুক্ত করুন।

exclude_file    /data/backup/tecmint.exclude

অবশেষে, আপনি প্রাথমিক কনফিগারেশনটি প্রায় শেষ করেছেন। আরও সরানোর আগে "/etc/rsnapshot.conf" কনফিগারেশন ফাইলটি সংরক্ষণ করুন। ব্যাখ্যা করার জন্য অনেকগুলি বিকল্প রয়েছে তবে এখানে আমার নমুনা কনফিগারেশন ফাইলটি রয়েছে।

config_version  1.2
snapshot_root   /data/backup/
cmd_cp  /bin/cp
cmd_rm  /bin/rm
cmd_rsync       /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger      /usr/bin/logger
cmd_du  /usr/bin/du
interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3
ssh_args	-p 25000
verbose 	2
loglevel        4
logfile /var/log/rsnapshot/
exclude_file    /data/backup/tecmint.exclude
rsync_long_args --delete        --numeric-ids   --delete-excluded
lockfile        /var/run/rsnapshot.pid
backup		/tecmint/		localhost/
backup		/etc/			localhost/
backup		[email :/home/ 		/data/backup/

উপরোক্ত সমস্ত বিকল্প এবং যুক্তির ব্যাখ্যা নীচে রয়েছে:

  1. config_version 1.2 = কনফিগারেশন ফাইল সংস্করণ
  2. স্ন্যাপশট_রোট = স্ন্যাপশটগুলি সঞ্চয় করার ব্যাকআপ গন্তব্য
  3. সেমিডি_সিপি = কমান্ড অনুলিপি করার পথ
  4. cmd_rm = কমান্ড অপসারণের পথ
  5. সেমিডি_আরসিঙ্ক = আরএসএনসি-র পথে
  6. সেমিডি_এসএইচ = এসএসএইচের পথে
  7. সেমিড_লগার = সিসলগের শেল কমান্ড ইন্টারফেসের পাথ
  8. সেমিডি_ডু = ডিস্ক ব্যবহারের আদেশের পথে
  9. অন্তর অন্তর = কত ঘন্টা ঘন্টা ব্যাকআপ রাখতে হবে
  10. প্রতিদিন অন্তর = কতগুলি দৈনিক ব্যাকআপ রাখা উচিত
  11. বিরতি সাপ্তাহিক = কত সাপ্তাহিক ব্যাকআপ রাখা উচিত
  12. অন্তর মাসিক = কত মাসিক ব্যাকআপ রাখা উচিত
  13. ssh_args = SSচ্ছিক এসএসএইচ আর্গুমেন্ট, যেমন একটি ভিন্ন বন্দর (-পি)
  14. ক্রিয়াপদ = স্ব-বিবরণী
  15. লগলেভেল = স্ব-ব্যাখ্যামূলক
  16. লগফিল = লগফিলের পথে
  17. বহিষ্কার_ফিল = বাদ দেওয়া ফাইলের পথ (আরও বিস্তারিতভাবে ব্যাখ্যা করা হবে)
  18. rsync_long_args = আরএসএনসি-তে পাস করার জন্য দীর্ঘ আর্গুমেন্ট
  19. লকফিল = স্ব-ব্যাখ্যামূলক
  20. ব্যাকআপ = আপলোডের আপেক্ষিক পথ অনুসরণ করে ব্যাক আপ করার জন্য সম্পূর্ণ পথ

পদক্ষেপ 4: রুপোলাপ কনফিগারেশন যাচাই করুন

একবার আপনি আপনার সমস্ত কনফিগারেশন সম্পন্ন করার পরে, সবকিছু প্রত্যাশা অনুযায়ী কাজ করে তা যাচাই করার সময়। আপনার কনফিগারেশনের সঠিক বাক্য গঠন রয়েছে তা যাচাই করতে নীচের কমান্ডটি চালান।

# rsnapshot configtest

Syntax OK

যদি সবকিছু সঠিকভাবে কনফিগার করা থাকে তবে আপনি একটি "সিনট্যাক্স ওকে" বার্তা পাবেন। যদি আপনি কোনও ত্রুটি বার্তা পান তবে এর অর্থ আপনার আরএসএনপ্যাচশট চালানোর আগে সেই ত্রুটিগুলি সংশোধন করা দরকার।

এরপরে, আমরা সঠিক ফলাফল উত্পন্ন করছি তা নিশ্চিত করার জন্য স্ন্যাপশটের একটিতে একটি পরীক্ষা চালান। -T (পরীক্ষা) যুক্তি ব্যবহার করে একটি পরীক্ষা চালানোর জন্য আমরা "প্রতি ঘন্টা" প্যারামিটারটি নিই। এই নীচের কমান্ডটি বাস্তবে না করে এটি করবে এমন কাজগুলির একটি ভার্বোস তালিকা প্রদর্শন করবে।

# rsnapshot -t hourly
echo 2028 > /var/run/rsnapshot.pid 
mkdir -m 0700 -p /data/backup/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc \
    /backup/hourly.0/localhost/ 
mkdir -m 0755 -p /data/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    /usr/local /data/backup/hourly.0/localhost/ 
touch /data/backup/hourly.0/

দ্রষ্টব্য: উপরের কমান্ডটি "প্রতি ঘন্টা" ব্যাকআপ তৈরি করতে আরএসএনপশটকে বলে। এটি প্রকৃতপক্ষে কমান্ডগুলি মুদ্রণ করে যা এটি সম্পাদন করে যখন আমরা এটি সত্যিই প্রয়োগ করি।

পদক্ষেপ 5: ম্যানুয়ালি রুপক্ষত চালনা

আপনার ফলাফল যাচাই করার পরে, আপনি কমান্ডটি সত্যিই চালনার জন্য "-t" বিকল্পটি সরিয়ে ফেলতে পারেন।

# rsnapshot hourly

উপরের কমান্ডটি আমরা সমস্ত কনফিগারেশন যা ব্যাকআপ স্ক্রিপ্টটি আরএসএন্যাপশট.কনফ ফাইলটিতে যুক্ত করব এবং একটি "ব্যাকআপ" ডিরেক্টরি তৈরি করে তারপরে এটির অধীনে ডিরেক্টরি কাঠামো তৈরি করে যা আমাদের ফাইলগুলি সংগঠিত করে। উপরের কমান্ডটি চালানোর পরে, আপনি ব্যাকআপ ডিরেক্টরিতে গিয়ে ফলাফল যাচাই করতে পারেন এবং ls -l কমান্ডটি দেখানো হিসাবে ব্যবহার করে ডিরেক্টরি কাঠামো তালিকাবদ্ধ করতে পারেন।

# cd /data/backup
# ls -l

total 4
drwxr-xr-x 3 root root 4096 Oct 28 09:11 hourly.0

পদক্ষেপ:: প্রক্রিয়াটি স্বয়ংক্রিয় করা

প্রক্রিয়াটি স্বয়ংক্রিয় করতে, আপনাকে ক্রোন থেকে নির্দিষ্ট বিরতিতে চালানোর জন্য আরএসএন্যাপশটটি নির্ধারণ করতে হবে। ডিফল্টরূপে, আরএসএন্যাপশটটি "/etc/cron.d/rsnaphot" এর অধীনে ক্রোন ফাইলের সাথে আসে, যদি এটি বিদ্যমান না থাকে তবে একটি তৈরি করুন এবং এতে নিম্নলিখিত লাইনগুলি যুক্ত করুন।

ডিফল্ট নিয়মে মন্তব্য করা হয়, সুতরাং আপনাকে এই মানগুলি সক্ষম করতে সময়সূচী বিভাগের সামনে থেকে "#" অপসারণ করতে হবে।

# This is a sample cron file for rsnapshot.
# The values used correspond to the examples in /etc/rsnapshot.conf.
# There you can also set the backup points and many other things.
#
# To activate this cron file you have to uncomment the lines below.
# Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly
30     3     * * *    root    /usr/bin/rsnapshot daily
0      3     * * 1    root    /usr/bin/rsnapshot weekly
30     2     1 * *    root    /usr/bin/rsnapshot monthly

ক্রোন বিধিগুলির উপরে যা আছে তা আমাকে ঠিক ব্যাখ্যা করতে দাও:

  1. প্রতি 4 ঘন্টা অন্তর চলমান এবং/ব্যাকআপ ডিরেক্টরি অধীনে একটি প্রতি ঘন্টা ডিরেক্টরি তৈরি করে
  2. প্রতিদিন সকাল সাড়ে তিনটায় চলে এবং/ব্যাকআপ ডিরেক্টরিতে একটি দৈনিক ডিরেক্টরি তৈরি করে
  3. প্রতি সোমবার সকাল 3:00 টা সাপ্তাহিক চলবে এবং/ব্যাকআপ ডিরেক্টরি এর অধীনে একটি সাপ্তাহিক ডিরেক্টরি তৈরি করুন
  4. প্রতি মাসিক সকাল আড়াইটা নাগাদ চলে এবং/ব্যাকআপ ডিরেক্টরিতে একটি মাসিক ডিরেক্টরি তৈরি করে li

ক্রোন বিধি কীভাবে কাজ করে সে সম্পর্কে আরও ভালভাবে বুঝতে, আমি আপনাকে আমাদের নিবন্ধটি পড়ার পরামর্শ দিচ্ছি যা বর্ণনা করে।

  1. 11 ক্রোন শিডিউলিং উদাহরণ

পদক্ষেপ:: রুপক্ষেত্রের প্রতিবেদনগুলি

আরএসএন্যাপশটটি একটি নিফটি ছোট রিপোর্টিং পার্ল স্ক্রিপ্ট সরবরাহ করে যা আপনাকে আপনার ডেটা ব্যাকআপের সময় কী ঘটেছিল সে সম্পর্কে সমস্ত বিবরণ সহ ইমেল সতর্কতা প্রেরণ করে। এই স্ক্রিপ্টটি সেটআপ করার জন্য, আপনাকে স্ক্রিপ্টটি "/ usr/লোকাল/বিন" এর অধীনে কোথাও অনুলিপি করে সম্পাদনযোগ্য করে তুলতে হবে।

# cp /usr/share/doc/rsnapshot-1.3.1/utils/rsnapreport.pl /usr/local/bin
# chmod +x /usr/local/bin/rsnapreport.pl

এর পরে, আপনার "আরএসএনএপশট.কোনফ" ফাইলটিতে "স্ট্যাটস" প্যারামিটারটি আরএসআইএনসি-র দীর্ঘ আর্গুমেন্ট বিভাগে যুক্ত করুন।

vi /etc/rsnapshot.conf
rsync_long_args --stats	--delete        --numeric-ids   --delete-excluded

পূর্বে যুক্ত করা ক্রন্টব নিয়মগুলি সম্পাদনা করুন এবং নির্দিষ্ট ইমেল ঠিকানায় প্রতিবেদনগুলি প্রেরণ করতে আরএসএনপ্রেপোর্ট.পিএল স্ক্রিপ্ট কল করুন।

# This is a sample cron file for rsnapshot.
# The values used correspond to the examples in /etc/rsnapshot.conf.
# There you can also set the backup points and many other things.
#
# To activate this cron file you have to uncomment the lines below.
# Feel free to adapt it to your needs.

0     */4    * * *    root    /usr/bin/rsnapshot hourly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup" [email 
30     3     * * *    root    /usr/bin/rsnapshot daily 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Daily Backup" [email 
0      3     * * 1    root    /usr/bin/rsnapshot weekly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Weekly Backup" [email 
30     2     1 * *    root    /usr/bin/rsnapshot monthly 2>&1  | \/usr/local/bin/rsnapreport.pl | mail -s "Montly Backup" [email 

আপনি উপরের এন্ট্রিগুলিকে সঠিকভাবে যোগ করার পরে, আপনি নীচের মতো আপনার ই-মেইল ঠিকানার প্রতিবেদন পাবেন।

SOURCE           TOTAL FILES	FILES TRANS	TOTAL MB    MB TRANS   LIST GEN TIME  FILE XFER TIME
--------------------------------------------------------------------------------------------------------
localhost/          185734	   11853   	 2889.45    6179.18    40.661 second   0.000 seconds

রেফারেন্স লিংক

  1. আরএসএনপ্যাচ হোমপেজ

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