হার্ড ডিস্কের ইনক্রিমেন্টাল স্ন্যাপশটগুলি কীভাবে তৈরি এবং পুনরুদ্ধার করবেন


13

আমি ডিস্ট্রো / অ্যাপ্লিকেশন পরীক্ষার উদ্দেশ্যে ভার্চুয়াল বক্সটি প্রচুর ব্যবহার করি।

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

আমার লাইভ সিস্টেমে আমি জানি যে কীভাবে ফাইল সিস্টেমের 1: 1 চিত্র তৈরি করতে হয় তবে আমার জানা সমস্ত সমাধানগুলি সম্পূর্ণ ফাইল সিস্টেমের একটি নতুন চিত্র তৈরি করবে।

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

আমি যা চাই তা বর্ণনা করার জন্য এটি ddকোনও ফাইল সিস্টেমের চিত্র হিসাবে হওয়া উচিত , তবে কেবলমাত্র পুরো ব্যাকআপের পরিবর্তে এটি বর্ধনশীলও তৈরি করে।


আমি ক্লোনজিলা ইত্যাদি খুঁজছি না এটি ব্যবহারকারীর কোনও (বা প্রায় কোনওই নয়) হস্তক্ষেপের মাধ্যমে সিস্টেমের মধ্যেই চালানো উচিত, তবে ফাইল সিস্টেমগুলির সমস্ত ডেটা থাকা উচিত। আমি আপনার এমবিআর সংরক্ষণ করতে duplicityকিছু ফোল্ডার স্ক্রিপ্ট + বাদ দিয়ে আপনার সমস্ত সিস্টেমের ব্যাকআপের ddসন্ধানও করছি না। আমি অতিরিক্ত জরিমানার সন্ধানে এটি নিজেই করতে পারি।

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

এটি প্রতিদিন হওয়ার দরকার নেই, এমনকি সময়সূচিরও দরকার নেই। কেবল একবারে একবার চালনা করুন এবং এটির কাজ দিন এবং পছন্দসই RAW ভিত্তিক ফাইল অনুলিপি না ভিত্তিক।



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

সবেমাত্র শিরোনাম হিসাবে প্রশ্নের উত্তর পোস্ট করেছেন ... তবে আমি দেখতে পাচ্ছি যে আপনি ফাইল স্তরের পরিবর্তে আপনার সিস্টেম খালি ধাতু পুনরুদ্ধার করার সম্ভাব্য আরও কিছু উপায় খুঁজছেন।
সিপ্রিফিট

1
মনে হচ্ছে আপনি কোনও ব্লক স্তর চান, ফাইল সিস্টেম নয়, ভিত্তিক ইনক্রিমেন্টাল ব্যাকআপ। স্ন্যাপশটগুলিকে সমর্থন করে এমন একটি ফাইল সিস্টেম ব্যবহার করার বাইরে আপনি যা জিজ্ঞাসা করছেন তা সম্ভব কিনা তা আমি নিশ্চিত নই। এলভিএম, বিটিআরএফএসের সম্ভাবনা থাকতে পারে।
সিপ্রিফিট

শিরোনাম ঠিক করার জন্য @cprofitt thx, এটি আরও সঠিক।
ব্রুনো পেরেইরা

@ ব্রুনো - ভাল শিরোনাম তৈরি করা উত্তর খুঁজে পেতে পরবর্তী লোকদের জন্য এটিকে দরকারী করে তোলে।
সিপ্রিফিট

উত্তর:


14

সিপ্রিফিটের উত্তরটি ব্যাখ্যা করতে (তার উত্তরটি যেমন ক্রমবর্ধমান, যেমন আমি ব্যাখ্যা করব) ...

প্রথমে আপনাকে হার্ড লিঙ্কগুলি সম্পর্কে জানতে হবে।

হার্ড লিঙ্কগুলি সেই ডেটাতে নির্দেশ করে যা প্রকৃতপক্ষে ডিস্কে থাকে (শারীরিক অবস্থান) এবং আপনি হার্ড লিঙ্কটি ব্যবহার করে ডেটা অ্যাক্সেস করতে পারেন। প্রতিটি ফাইল এবং ডিরেক্টরি দৈহিক ডিস্কের ডেটার অবস্থানের জন্য একটি হার্ড লিঙ্ক। অতএব যদি একই স্থানে দুটি ফাইল (হার্ড লিঙ্ক) নির্দেশ করে থাকে তবে ডেটা কেবল একবারে সংরক্ষণ করা হয়


সিপ্রোফিট প্রদত্ত প্রক্রিয়াটির মধ্যে রয়েছে:

  1. নতুনটির জন্য একটি স্পট তৈরি করতে ব্যাকআপগুলি ঘোরান। (গতকাল থেকে "আজকের ব্যাকআপ" হয়ে গেছে "গতকালের ব্যাকআপ", দু'দিন আগে "গতকালের ব্যাকআপ" "দু'দিন আগের ব্যাকআপ" হয়ে যায় এবং তাই)

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


একটি সচিত্র উদাহরণ

নীচের ছবিতে, একই রঙের ফাইলগুলির একই রঙের ফাইলগুলি ডিস্কে একই ফাইলের হার্ড লিঙ্কগুলি। এখানে আমরা কেবল দুটি স্ন্যাপশট এবং কয়েকটি ফাইল নিয়ে কাজ করছি তবে উদাহরণের স্কেলগুলি। (সত্যতা ব্যতীত আমি স্ন্যাপশটগুলির বিপরীতে সিপ্রিফিটের উত্তরে স্ক্রিপ্টগুলিতে চলেছি)

এখানে চিত্র বর্ণনা লিখুন

প্রক্রিয়াটি হ'ল:

  1. সিস্টেমের একটি স্ন্যাপশট আছে।

  2. স্ন্যাপশটটি অনুলিপি (বিদ্যমান ফাইলগুলিতে হার্ড লিঙ্ক তৈরি করা)

  3. স্ন্যাপশট আপডেট করতে Rsync চালানো হয়। যখন ফাইলগুলি পরিবর্তন করা হয়, এটি নতুন ফাইলটিকে হার্ড ডিস্কে একটি নতুন অনুলিপি হিসাবে সংরক্ষণ করে (যাতে পুরানো স্ন্যাপশট পরিবর্তন হয় না)। এই উদাহরণে, ফাইল বি পরিবর্তন করা হয়েছে। দ্রষ্টব্য: আমাদের কাছে এখন ফাইল এ এবং ফাইল সি এর কেবল 1 টি অনুলিপি এবং হার্ডডিস্কে ফাইল বি এর দুটি কপি সঞ্চিত আছে

  4. স্ন্যাপশটগুলি ঘোরান (এই ক্ষেত্রে স্ন্যাপশট 0 'বন্ধ হয়ে যায়' এবং মুছে ফেলা হয় এবং আমি স্ন্যাপশট 1টির নাম পরিবর্তন করে স্ন্যাপশট 0)

  5. স্ন্যাপশট Agin অনুলিপি (দ্বিতীয় ধাপ পুনরাবৃত্তি)

  6. আবার রিঙ্ক (3 ধাপ পুনরাবৃত্তি)। এখন আমাদের কাছে ফাইল এ এর ​​1 কপি এবং ফাইল বি এবং ফাইল সি উভয়ের 2 কপি রয়েছে


[প্রথম] স্ক্রিপ্টটির একটি সরলিকৃত সংস্করণ (চালানো নয়, ঠিক একটি পদক্ষেপের পাথর হিসাবে) এটি হ'ল:

#!/bin/bash

# Delete the snapshot we don't want (has 'fallen off')
rm -rf /root/snapshot/home/hourly.3 ;

# Rotate the snapshots by shuffling them back
mv /root/snapshot/home/hourly.2 /root/snapshot/home/hourly.3 ;
mv /root/snapshot/home/hourly.1 /root/snapshot/home/hourly.2 ;

# Copy the snapshot (creating hard links to the existing files)
cp -al /root/snapshot/home/hourly.0 /root/snapshot/home/hourly.1 ;

# Do the rsync ...
# step 4: rsync from the system into the latest snapshot (notice that
# rsync behaves like cp --remove-destination by default, so the destination
# is unlinked first.  If it were not so, this would copy over the other
# snapshot(s) too!
rsync -va --delete /home/ /root/snapshot/home/hourly.0 ;

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

আপনি নামগুলি পরিবর্তন করতে পারেন, সুতরাং ডিরেক্টরিগুলি "ঘণ্টা প্রতি ঘন্টার ..." পরিবর্তে তাদেরকে অন্য কিছু বলা হয় এবং স্ক্রিপ্টটি ম্যানুয়ালি চালিত হয়।


পুরোটা পুনরুদ্ধার করার জন্য, আপনি যে ডিরেক্টরিটি ব্যাকআপ নিয়েছিলেন সেটিতে সর্বশেষ স্ন্যাপশটটি (বা পূর্ববর্তী একটি) অনুলিপি করুন।

এখনও স্ন্যাপশটে থাকা একটি একক ফাইল পুনরুদ্ধার করতে স্ন্যাপশটটি যান এবং এটি যেখানে রয়েছে সেখানে এটি অনুলিপি করুন।

ব্যাকআপ মিডিয়া একটি বাহ্যিক হার্ড ড্রাইভ হতে পারে (অবশ্যই ext2 / ext3 / ext4 হওয়া উচিত)। আপনি ব্যাক আপ ছিল /(প্রধানত /boot, /home, /etc /rootএবং /usr) তাহলে, বলে ...

  1. আপনি বাহ্যিক ড্রাইভ মাউন্ট, ব্যাকআপ সঞ্চালন এবং সর্বশেষ স্ন্যাপশট তৈরি।

  2. ড্রাইভটি আনমাউন্ট করুন।

  3. মনে রাখবেন যে আপনি চান এমন একটি ফাইল (এমনকি ট্র্যাস থেকেও) মুছে ফেলেছেন।

  4. বাহ্যিক ড্রাইভটি সংযুক্ত করুন এবং ফাইলটি পুনরুদ্ধার করুন।

  5. একটি ব্যাকআপ করুন (ঠিক নিশ্চিত করার জন্য)

  6. ড্রাইভটি সংযোগ বিচ্ছিন্ন করুন এবং ভ্রমণে যান ...

  7. বুঝতে পারেন যে একটি ল্যাপটপ এবং লাভা মিশ্রিত হয় না।

  8. আপনার নতুন ল্যাপটপটি লাইভ সিডি চালানোর সাথে সাথে, অভ্যন্তরীণ ড্রাইভটি ফর্ম্যাট করুন, আপনাকে বাহ্যিক ড্রাইভটি মাউন্ট করুন এবং তারপরে cp -a /media/external/snapshot-0/* /media/internal-drive(ধরে নেওয়া স্ন্যাপশট -0 সর্বশেষ স্ন্যাপশট)

  9. এমবিআরটিতে গ্রাব ইনস্টল করুন (হ্যাঁ এটি আলাদা করতে হবে) - বা ddএমবিআর ব্যাকআপ করতে ব্যবহার করুন , যেমন সিপ্রিফিট তার উত্তরের নীচে বলেছে।

  10. পুনরায় বুট করুন।

স্ক্রিপ্টটি পরিমার্জন করা দরকার (কেবলমাত্র আপনার পছন্দসই জিনিসগুলি পেতে) এবং প্রক্রিয়াটি পূর্ববর্তীভাবে ধরে নেওয়া হয় যে আপনার কোনও /homeপার্টিশন নেই। আপনি যদি ডিস্কে একটি নতুন তৈরি করেন (বা রেখেছিলেন) এবং mount /dev/sdxy /media/external/homeঅনুলিপি করার আগে এটি জায়গায় স্থাপন করুন ।


100 ডিডি স্ন্যাপশটগুলির 100 x <average size of snapshot> জন্য ডিস্কের জায়গার মূল্য হবে । এর মধ্যে 100 টি খরচ পড়বে <size of snapshot> + <size of changed files>। আমি এটি 500 গিগাবাইট ডিস্কে / হোম (GB 400 গিগাবাইট) এর বেশ কয়েকটি স্ন্যাপশট রাখতে ব্যবহার করেছি।
পোর্টেবলজিম

আপনি আপনার ফাইল সিস্টেমে ভার্চুয়াল ডিস্ক চিত্রটি মাউন্ট করতে পারেন, তারপরে ব্যাকআপ নিতে পারেন। দেখুন superuser.com/questions/158908/... এবং লিঙ্ক
Portablejim

যেমনটি বলেছিল, এটি আমার চলমান কম্পিউটারগুলির জন্য, ভার্চুয়াল বক্স নয়, ভিবক্সটি কেবল একটি উদাহরণ ছিল।
ব্রুনো পেরেরা

আপডেট হওয়া প্রশ্ন (কোনও মন্তব্য দেওয়ার পরিবর্তে শেষে)।
পোর্টেবলজিম

@ পোর্টেবলজিম: আপনি লিখছেন যে সিপি "হার্ড লিঙ্কগুলি সংরক্ষণ করছেন"। আমি মনে করি এই বাক্যাংশটি বিভ্রান্তিকর। cp -alউত্স ফাইলগুলি অনুলিপি না করে উত্স ফাইলগুলিতে হার্ডলিঙ্ক তৈরি করছে। আপনার পরিসংখ্যানগুলিতে এটিও প্রতিফলিত হওয়া উচিত, উদাহরণস্বরূপ 2 চিত্রের এ ফাইলগুলি একই ফাইল।
ড্যানিয়েল কুলম্যান

7

আপনি rsync ব্যবহার করতে পারেন।

Listing one: make_snapshot.sh

#!/bin/bash
# ----------------------------------------------------------------------
# mikes handy rotating-filesystem-snapshot utility
# ----------------------------------------------------------------------
# this needs to be a lot more general, but the basic idea is it makes
# rotating backup-snapshots of /home whenever called
# ----------------------------------------------------------------------

unset PATH  # suggestion from H. Milz: avoid accidental use of $PATH

# ------------- system commands used by this script --------------------
ID=/usr/bin/id;
ECHO=/bin/echo;

MOUNT=/bin/mount;
RM=/bin/rm;
MV=/bin/mv;
CP=/bin/cp;
TOUCH=/bin/touch;

RSYNC=/usr/bin/rsync;


# ------------- file locations -----------------------------------------

MOUNT_DEVICE=/dev/hdb1;
SNAPSHOT_RW=/root/snapshot;
EXCLUDES=/usr/local/etc/backup_exclude;


# ------------- the script itself --------------------------------------

# make sure we're running as root
if (( `$ID -u` != 0 )); then { $ECHO "Sorry, must be root.  Exiting..."; exit; } fi

# attempt to remount the RW mount point as RW; else abort
$MOUNT -o remount,rw $MOUNT_DEVICE $SNAPSHOT_RW ;
if (( $? )); then
{
    $ECHO "snapshot: could not remount $SNAPSHOT_RW readwrite";
    exit;
}
fi;


# rotating snapshots of /home (fixme: this should be more general)

# step 1: delete the oldest snapshot, if it exists:
if [ -d $SNAPSHOT_RW/home/hourly.3 ] ; then         \
$RM -rf $SNAPSHOT_RW/home/hourly.3 ;                \
fi ;

# step 2: shift the middle snapshots(s) back by one, if they exist
if [ -d $SNAPSHOT_RW/home/hourly.2 ] ; then         \
$MV $SNAPSHOT_RW/home/hourly.2 $SNAPSHOT_RW/home/hourly.3 ; \
fi;
if [ -d $SNAPSHOT_RW/home/hourly.1 ] ; then         \
$MV $SNAPSHOT_RW/home/hourly.1 $SNAPSHOT_RW/home/hourly.2 ; \
fi;

# step 3: make a hard-link-only (except for dirs) copy of the latest snapshot,
# if that exists
if [ -d $SNAPSHOT_RW/home/hourly.0 ] ; then         \
$CP -al $SNAPSHOT_RW/home/hourly.0 $SNAPSHOT_RW/home/hourly.1 ; \
fi;

# step 4: rsync from the system into the latest snapshot (notice that
# rsync behaves like cp --remove-destination by default, so the destination
# is unlinked first.  If it were not so, this would copy over the other
# snapshot(s) too!
$RSYNC                              \
    -va --delete --delete-excluded              \
    --exclude-from="$EXCLUDES"              \
    /home/ $SNAPSHOT_RW/home/hourly.0 ;

# step 5: update the mtime of hourly.0 to reflect the snapshot time
$TOUCH $SNAPSHOT_RW/home/hourly.0 ;

# and thats it for home.

# now remount the RW snapshot mountpoint as readonly

$MOUNT -o remount,ro $MOUNT_DEVICE $SNAPSHOT_RW ;
if (( $? )); then
{
    $ECHO "snapshot: could not remount $SNAPSHOT_RW readonly";
    exit;
} fi;

এবং দ্বিতীয়:

Listing two: daily_snapshot_rotate.sh

#!/bin/bash
# ----------------------------------------------------------------------
# mikes handy rotating-filesystem-snapshot utility: daily snapshots
# ----------------------------------------------------------------------
# intended to be run daily as a cron job when hourly.3 contains the
# midnight (or whenever you want) snapshot; say, 13:00 for 4-hour snapshots.
# ----------------------------------------------------------------------

unset PATH

# ------------- system commands used by this script --------------------
ID=/usr/bin/id;
ECHO=/bin/echo;

MOUNT=/bin/mount;
RM=/bin/rm;
MV=/bin/mv;
CP=/bin/cp;

# ------------- file locations -----------------------------------------

MOUNT_DEVICE=/dev/hdb1;
SNAPSHOT_RW=/root/snapshot;

# ------------- the script itself --------------------------------------

# make sure we're running as root
if (( `$ID -u` != 0 )); then { $ECHO "Sorry, must be root.  Exiting..."; exit; } fi

# attempt to remount the RW mount point as RW; else abort
$MOUNT -o remount,rw $MOUNT_DEVICE $SNAPSHOT_RW ;
if (( $? )); then
{
    $ECHO "snapshot: could not remount $SNAPSHOT_RW readwrite";
    exit;
}
fi;


# step 1: delete the oldest snapshot, if it exists:
if [ -d $SNAPSHOT_RW/home/daily.2 ] ; then          \
$RM -rf $SNAPSHOT_RW/home/daily.2 ;             \
fi ;

# step 2: shift the middle snapshots(s) back by one, if they exist
if [ -d $SNAPSHOT_RW/home/daily.1 ] ; then          \
$MV $SNAPSHOT_RW/home/daily.1 $SNAPSHOT_RW/home/daily.2 ;   \
fi;
if [ -d $SNAPSHOT_RW/home/daily.0 ] ; then          \
$MV $SNAPSHOT_RW/home/daily.0 $SNAPSHOT_RW/home/daily.1;    \
fi;

# step 3: make a hard-link-only (except for dirs) copy of
# hourly.3, assuming that exists, into daily.0
if [ -d $SNAPSHOT_RW/home/hourly.3 ] ; then         \
$CP -al $SNAPSHOT_RW/home/hourly.3 $SNAPSHOT_RW/home/daily.0 ;  \
fi;

# note: do *not* update the mtime of daily.0; it will reflect
# when hourly.3 was made, which should be correct.

# now remount the RW snapshot mountpoint as readonly

$MOUNT -o remount,ro $MOUNT_DEVICE $SNAPSHOT_RW ;
if (( $? )); then
{
    $ECHO "snapshot: could not remount $SNAPSHOT_RW readonly";
    exit;
} fi;

আপনার প্রয়োজনে স্ক্রিপ্ট তৈরি করার পরে এটি ক্রোন জবগুলিতে যুক্ত করুন।

crontab -e

নিম্নলিখিত যোগ করুন:

0 * / 4 * * * / সামার / লোকাল / বিন / মেক_স্ন্যাপশট.শ

0 13 * * * / ওএসআর / লোকাল / বিন / ডেইলি_স্ন্যাপশট_রোোট.শ

তারা Make_snapshot.sh প্রতি ঘন্টা ২৪ ঘন্টা চালিয়ে যান এবং প্রতিদিন_স্ন্যাপশট_রোট.এইচ প্রতিদিন 13:00 এ চালিত হতে পারে (অর্থাৎ, 1:00 অপরাহ্ন)।

সূত্র: http://www.mikerubel.org/computers/rsync_snapshots/

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

আপনি যদি এটি প্রতি ঘন্টা চালিত করতে চান তবে আপনি প্রতি ঘন্টার জন্য ক্রোন জব যুক্ত করবেন।

আর একটি সম্ভাব্য বিকল্প হ'ল আরএসএন্যাপশট

  1. আরএসএন্যাপশট ইনস্টল করুন (সফ্টওয়্যার সেন্টারে উপলব্ধ)

  2. আরএসএন্যাপশট কনফিগার করুন এবং ব্যাকআপ উত্স ডিরেক্টরি নির্দিষ্ট করুন

/Etc/rsnapshot.conf খুলুন এবং নিম্নলিখিত লাইনগুলিকে অসন্তুষ্ট করুন।

# nano /etc/rsnapshot.conf

cmd_cp          /bin/cp
cmd_ssh /usr/bin/ssh
cmd_du          /usr/bin/du
cmd_rsnapshot_diff      /usr/local/bin/rsnapshot-diff
logfile /var/log/rsnapshot
  1. নীচে প্রদর্শিত হিসাবে আপনার গন্তব্য ব্যাকআপ ডিরেক্টরিগুলি /etc/rsnapshot.conf এ সংজ্ঞায়িত করুন। এই উদাহরণে,

    / হোম - উত্স ডিরেক্টরি যা ব্যাক আপ করা উচিত স্থানীয় লোকাল / - গন্তব্য ডিরেক্টরি যেখানে ব্যাকআপটি সংরক্ষণ করা হবে। দয়া করে মনে রাখবেন যে এই ডিরেক্টরিটি শেষ ধাপে প্রদর্শিত হিসাবে /.snapshots/{intern.n}/ ডিরেক্টরিতে তৈরি করা হবে।

    ন্যানো /etc/rsnapshot.conf

    ব্যাকআপ / হোম / লোকালহোস্ট /

  2. টেস্ট আরএসএনপশট কনফিগারেশন

আরএসএন্যাপশটটি সঠিকভাবে সেটআপ হয়েছে এবং লিনাক্স আরএসসিএনসি ব্যাকআপ সম্পাদনের জন্য প্রস্তুত তা নিশ্চিত করতে কনফিগারেশন পরীক্ষা করুন।

# rsnapshot configtest
Syntax OK
  1. আরএসএনএপশট আওয়ারলি ব্যাকআপ কনফিগারেশন যাচাই করুন

আপনি বিভিন্ন বিরতিতে লিনাক্স ডিরেক্টরি বা ফাইলগুলি ব্যাকআপ করতে পারেন। ডিফল্টরূপে, প্রতি ঘন্টা এবং প্রতিদিনের ব্যাকআপগুলি কনফিগার করা হয়।

ঘন্টা ঘন্টা ব্যাকআপ কনফিগারেশন যাচাই করুন।

# rsnapshot -t hourly
echo 6490 > /var/run/rsnapshot.pid
mkdir -m 0700 -p /.snapshots/
mkdir -m 0755 -p /.snapshots/hourly.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /home \
/.snapshots/hourly.0/localhost/
mkdir -m 0755 -p /.snapshots/hourly.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /etc \
/.snapshots/hourly.0/localhost/
mkdir -m 0755 -p /.snapshots/hourly.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
/usr/local /.snapshots/hourly.0/localhost/
touch /.snapshots/hourly.0/
  1. আরএসএন্যাপশট দৈনিক ব্যাকআপ কনফিগারেশন যাচাই করুন

দৈনিক আরএসএনএপশট সিওয়ার্সসিঙ্ক ব্যাকআপ প্রক্রিয়াটি সঠিকভাবে কনফিগার করা হয়েছে যাচাই করুন।

# rsnapshot -t daily
echo 6493 > /var/run/rsnapshot.pid
mkdir -m 0700 -p /.snapshots/
/.snapshots/hourly.5 not present (yet), nothing to copy
  1. আরএসএন্যাপশটের জন্য ক্রন্টব এন্ট্রি যুক্ত করুন

একবার আপনি যাচাই করেছেন যে আরএসএনসিএইচ ঘন্টাসই এবং প্রতিদিনের ব্যাকআপ কনফিগারেশনগুলি সঠিকভাবে আরএসএন্যাপশট সিআরসিএনসিটি ইউটিলিটিতে সেটআপ হয়ে গেছে, নীচের চিত্রের মতো এই কুকুরছানাটিকে ক্রন্টবায় সেট আপ করার সময় এসেছে।

# crontab -e
0 */4 * * * /usr/local/bin/rsnapshot hourly
30 23 * * * /usr/local/bin/rsnapshot daily

উত্স: http://www.thegeekstuff.com/2009/08/tutorial-backup-linux- using-rsnapshot-rsync-utility/

---- বেয়ার মেটাল রিকভারি

খালি খালি পুনরুদ্ধার করতে আমি ডিডি এবং টার ব্যবহার করব।

ব্যাকআপ গুরুত্বপূর্ণ মেটাডেটা:

# dd if-/dev/hda of=/backups/mbr bs=512 count=1

অপারেটিং সিস্টেমের ব্যাকআপ নিন:

# mkdir /backups
# mount nfsserver:/backups/<servername> /backups


# cd /
# tar cfz /backups/system.tar.gz --exclude /mnt --exclude /proc --exclude /backups

আমি ব্যক্তিগতভাবে আমার সিস্টেমে অফ-লাইন নেওয়ার প্রবণতা করব যদি আমি একটি বেয়ারমেটাল পুনরুদ্ধার ফাইল তৈরি করতে চাই।


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

উপরের বিশদগুলি ফাইল সিস্টেমের সাথে ডিল করে (ফাইল সিস্টেম হিসাবে) এবং আমি এমবিআর মোকাবেলায় ডিডি প্রক্রিয়া যুক্ত করেছি।
সিপ্রিফিট

3

ব্লক ভিত্তিক ইনক্রিমেন্টাল ব্যাকআপ করার 2 উপায় রয়েছে

  • ফাইল সিস্টেম ভিত্তিক স্ন্যাপশট
  • প্রোগ্রাম ভিত্তিক স্ন্যাপশট

ফাইল সিস্টেম ভিত্তিক স্ন্যাপশট

জেডএফএস এবং বিটিআরএফএস উভয়ই ব্লক ভিত্তিক ইনক্রিমেন্টাল স্ন্যাপশট সরবরাহ করে ( বিটিআরএফএস , জেডএফএস (পৃষ্ঠা 25) )। আপনি যে ড্রাইভটি চালিয়ে যেতে পারেন তা জেডএফএস বা বিটিআরএফএস এবং স্ন্যাপশট।

এছাড়াও রয়েছে LVM স্ন্যাপশটস (সিপ্রিফিট দ্বারা উল্লিখিত) যা একই ব্লক ভিত্তিক ইনক্রিমেন্টাল স্ন্যাপশট সরবরাহ করে।

প্রোগ্রাম ভিত্তিক স্ন্যাপশট

বেশ কয়েকটি ব্যাকআপ প্রোগ্রাম রয়েছে , তবে কয়েকটি এই উদ্দেশ্যে আটকায়:

আমি জানি আপনি সুনির্দিষ্টভাবে উল্লেখ করেছেন যে আপনি সদৃশ জাতীয় কিছু খুঁজছেন না, তবে আমি ভেবেছিলাম আমি কিছু বৈশিষ্ট্য উল্লেখ করতে পারি।

তবে এই প্রোগ্রামগুলির পুনরুদ্ধার করার জন্য আপনার সেগুলি ইনস্টল করা প্রয়োজন। আরএসআইএনসি-র মতো কোনও কিছুর সৌন্দর্য হ'ল প্রায় প্রতিটি লিনাক্স ইনস্টলেশনতে ডিএসএলক্রমে আরএসসিএন থাকে (যেমন ক্ষুদ্র কোর (একটি 10 ​​এমবি বিতরণ এটি অনুপস্থিত) থাকে।

ছলনা

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

Man পৃষ্ঠা ব্যাখ্যা করে কিভাবে এটি কাজ করে।

Rdiff ব্যাকআপ

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

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


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

এই সিস্টেমগুলির সাথে আমার অভিজ্ঞতা নেই, আমি কেবল গুগল ব্যবহার করে গবেষণা চালিয়ে দেখেছি (সে কারণেই তারা কেবল লিঙ্কগুলি)। যেমন আমি শিখেছি duplicityআসলে কী।
Portablejim

3

আপনারা দাদার ( হোমপেজ ) একবার দেখুন।

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

দ্রষ্টব্য: আমি নিজে এটি চেষ্টা করে দেখিনি (তবে আমি লেখকের উপরে বিশ্বাস করি)। এটি আপনি বাক্সের বাইরে যা অর্জন করতে চান তা করতে পারে না তবে পৃষ্ঠায় আরও অনুরূপ সমাধান রয়েছে (উদাঃ জেডএফএস ), সুতরাং একটি সূচনা পয়েন্ট হিসাবে এটি সম্ভবত কার্যকর হিসাবে প্রমাণিত হতে পারে।


1
আমি দাদার লেখক (উল্লেখ করার জন্য ধন্যবাদ!) যদি আমি প্রশ্নটি সঠিকভাবে বুঝতে পারি, দাদার হস্তান্তর করা অনুরোধ অনুসারে ঠিক এক রকম এলভিএম স্ন্যাপশট হস্তান্তর করবে। যেমনটি আপনি বলেছেন, এটি ইনক্রিমেন্টের চেয়ে স্ন্যাপশটের সাথে কাজ করে তবে স্ন্যাপশটগুলির সুবিধাটি একই রকম হবে যে পুরানো স্ন্যাপশটগুলি ইচ্ছামত নতুনকে প্রভাবিত না করে মুছে ফেলা যায়।
রবি বাসাক

@ আরবি আমি কীভাবে এটি কাজ করব তা দেখে শিহরিত হবেন, আপনি কি আমার বা এমন কোনও ব্যবহারকারীর জন্য খুব ছোট গাইড তৈরি করতে পারেন যা এই ধরণের সমাধান খুঁজছেন?
ব্রুনো পেরেইরা

1

আমি মনে করি আপনি এটি LVM এর একমাত্র তাত্ত্বিক মাধ্যমে এটি করতে পারেন, এবং এটি হার্ড ডিস্কের প্রচুর পরিমাণে অপচয় করবে। আমার তত্ত্বটি হ'ল আপনি আপনার মূল সিস্টেমটিকে যৌক্তিক ভলিউমে বাস করতে পারবেন তবে আপনি যদি পরীক্ষা করতে চান তবে স্ন্যাপশট তৈরি করতে পারেন এবং নতুন ভলিউমটি ব্যবহার করে মেশিনটি পুনরায় চালু করতে পারেন।

LVM স্ন্যাপশটগুলি কাজ করতে আসল ভলিউম প্রয়োজন। এটি কারণ নতুন ভলিউম স্ন্যাপশট এবং বাস্তব ফাইল সিস্টেমের মধ্যে পার্থক্য রাখে।

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

এবং এইগুলির জন্য রিবুটগুলি দরকার এবং এটি স্বয়ংক্রিয় হওয়া থেকে দূরে।

এটি আরও অনুমান করে যে বেশ কয়েকটি আধুনিক ফাইল সিস্টেমগুলি সোলারিস সিস্টেমগুলিতে zfs বা পরীক্ষামূলক বিটিআরএফএসের মতো চলে।


1

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

বুপ একবার দেখুন।

https://github.com/apenwarr/bup

এটি আপনাকে কিছু ধারণা দিতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.