rsync
পাইতে ব্যাক-আপ ব্যবহারের জন্য এখানে একটি ভূমিকা রয়েছে । প্রাথমিক ব্যাক-আপটি তৈরি হয়ে গেলে, পুরো চিত্রটি ক্রমাগত ছিঁড়ে ফেলার চেয়ে এই উপায়ে আপ টু ডেট রাখা আরও দ্রুত। আপনি এটি স্থানীয় হার্ড ড্রাইভে বা কোনও নেটওয়ার্কের মাধ্যমে করতে পারেন।
আপনি আসলে কোনও ব্যাক-আপ হিসাবে চলমান সিস্টেমের সম্পূর্ণ অনুলিপি চান না, কারণ ফাইল সিস্টেমের কিছু উপাদান কেবল রানটাইমেই উপস্থিত থাকে। এটি ব্যাকআপে অন্তর্ভুক্ত করা এবং পরে এটি কোনও চিত্র পুনরায় তৈরি করতে ব্যবহার করা আপনার সমস্যার সৃষ্টি করতে পারে।
এছাড়াও কিছু অন্যান্য ব্যতিক্রম আছে। বাদ দেওয়ার rsync
জন্য ( গ্লোব ) নিদর্শনগুলির একটি তালিকা গ্রহণ করতে পারে এবং সেগুলি একটি ফাইল থেকে পড়তে পারে, তাই প্রথমে আসুন এই ধরণের ফাইলের মধ্যে কী হওয়া উচিত। দ্রষ্টব্য যে এন্ট্রিগুলি ফর্মের /directory/*
এবং নাও /directory
। এটি হ'ল কারণ আমরা তাদের বিদ্যমান থাকতে চাই, তবে আমরা সেগুলিতে কোনও কিছু অনুলিপি করতে চাই না।
/proc/*
/sys/*
এগুলি সত্যই ডিস্কে বিদ্যমান নেই। এগুলি কার্নেলের একটি ইন্টারফেস, যা তাদের স্মৃতিতে তৈরি করে এবং বজায় রাখে । যদি আপনি এগুলি অনুলিপি করেন এবং এগুলি আবার কোনও সিস্টেমে অনুলিপি করে এটি বুট করেন তবে এটি (সর্বোত্তম) অর্থহীন হবে কারণ কার্নেলটি ইন্টারফেসের জন্য মাউন্ট পয়েন্ট হিসাবে ব্যবহার করে [আপনি যদি ফাইল-সিস্টেম পার্টিশন মাউন্ট করার পরে কী ঘটে তা দেখতে চান এটিতে ডেটা ডিরেক্টরিতে চেষ্টা করুন। এটি কাজ করে এবং কোনও ক্ষতি করে না, তবে ডিরেক্টরিতে থাকা স্টাফটি এখন অ্যাক্সেসযোগ্য]]
মনে রাখবেন যে মাউন্ট পয়েন্টগুলি বিদ্যমান /sys
এবং এটি গুরুত্বপূর্ণ /proc
। তবে তাদের কিছু থাকতে হবে না। পরবর্তী:
/dev/*
dev
ডিরেক্টরি যেমন পুরোপুরি একই জিনিস না proc
এবং sys
কিন্তু আমাদের উদ্দেশ্য এটা জন্য। আপনি যদি মনে করেন যে আপনি এই সংরক্ষণ করা উচিত, যাতে আপনি আপনার ব্যাকআপ বা কিছু একই ডিভাইস নোড আছে করতে পারেন, আপনি ভুল প্রমাণিত হন । বিরক্ত করবেন না। কপি করবেন না dev
। অনেক দিন আগে লিনাক্স সেভাবে কাজ করেছিল, তবে এটি আর হয় না।
/boot/*
এটি রাস্প্বিয়ান যেমন পাই নির্দিষ্ট ডিস্ট্রোসের সর্বাধিক (সম্ভবত সমস্ত) সাথে একটি বিশেষ ক্ষেত্রে সাজানো। এটি আসলে প্রথম, ভিফ্যাট, বিভাজনের জন্য একটি মাউন্ট পয়েন্ট। আমরা আলাদাভাবে এটি মোকাবেলা করতে যাচ্ছি। আপনি যা-ই করুন না কেন এটি এখানে অন্তর্ভুক্ত করবেন না, কারণ এটি আবার একটি মাউন্ট পয়েন্ট।
/tmp/*
/run/*
/run
সাধারণত ডিস্কে হয় না, এটি স্মৃতিতে থাকে। সম্ভবত /tmp
খুব বেশি হতে পারে (এটি এসডি কার্ডের কিছুটা ক্রিয়াকলাপ সাশ্রয় করতে পারে), তবে কোনও ক্ষেত্রেই নামগুলি বোঝায় যে এগুলি স্থির ডেটা সংরক্ষণের জন্য স্থান নয়। অ্যাপ্লিকেশনগুলি যা তারা ব্যবহার করে তারা প্রতিটি বুটে মুছে ফেলা হতে পারে expect
/mnt/*
/media/*
এগুলি বিশেষত যদি আপনি হার্ড ড্রাইভ বা ইউএসবি স্টিকের ব্যাকআপ নেওয়ার পরিকল্পনা করছেন এবং ডিভাইসটি রয়েছে /mnt
বা /media
(স্বতঃস্ফূর্তটি পরে ব্যবহার করবে), কারণ আপনি যদি ফাইল সিস্টেমে devices ডিভাইসের অবস্থান বাদ না দেন তবে ড্রাইভের সামগ্রীটি নিজের থেকে সরিয়ে না নেওয়া পর্যন্ত একটি লুপ তৈরি করুন it আমি মনে করি যে বোবা এমন কিছু স্পট করতে যথেষ্ট স্মার্ট rsync
হতে পারে তবে অনুমানের পরীক্ষাটি এড়াতে চেষ্টা করুন।
আসল ব্যাক আপ করার জন্য: স্থানীয়ভাবে মাউন্ট করা হার্ডড্রাইভ, ইউএসবি জিনিস ইত্যাদিতে ব্যাক আপ রাখতে একটি ডিরেক্টরি তৈরি করুন - যেমন "পাই_ব্যাকআপ"। আপনি বিকল্পভাবে কোনও দূরবর্তী অবস্থানে ব্যাকআপ নিতে পারেন ssh
(নীচে দেখুন) বা একটি নেটওয়ার্ক মাউন্ট করা ফাইল সিস্টেম ব্যবহার করে তবে এটি সম্ভবত প্রথমবারের মধ্যে নেবে।
বাদ দিতে তালিকার ফাইলটি যদি /rsync-exclude.txt
1 হয় এবং আপনার ড্রাইভটি /mnt/usbhd
প্রকৃত ব্যাকআপ করতে হয়:
rsync -aHv --delete --exclude-from=/rsync-exclude.txt / /mnt/usbhd/pi_backup/
লক্ষ্য করুন যে সেখানে একটি পিছনে স্ল্যাশ রয়েছেpi_backup/
।
এটি কিছুক্ষণ সময় নেবে এবং প্রচুর আউটপুট উত্পন্ন করবে (আপনি যদি লগের পরিবর্তে এটি পরীক্ষা করতে চান তবে সংযোজন করুন > rsync.log
)। --delete
প্রথমবার অর্থহীন, তবে ব্যাকআপটি আপডেট রাখার জন্য এটি ব্যবহার করুন। এটি নিশ্চিত করে যে আপনি পাইতে মুছে ফেলা জিনিসগুলি পরে আপনার ব্যাকআপ থেকেও সরিয়ে দেওয়া হবে। a
ডিরেক্টরি মধ্যে এবং সেট পুনরাবৃত্তির নিশ্চিন্ত হন যে সমস্ত ফাইল ম্যাচ বৈশিষ্ট্যাবলী করে তোলে। হার্ড লিঙ্ক 2-H
সংরক্ষণ করা হয় , ভার্বোজের জন্য যার কারণে আপনি কিছু আউটপুট পান (অন্যথায় শান্ত)। আরও জন্য দেখুন।v
rsync
man rsync
একটি শর্টকাট রয়েছে যার মাধ্যমে আপনি --exclude-from
ফাইলটি এড়িয়ে যেতে পারেন । আপনি যদি নিশ্চিত হন যে আপনি অনুলিপি করতে চান না এমন সমস্ত জিনিস ( /tmp
ইত্যাদি) আলাদা ফাইল সিস্টেমে থাকে তবে আপনি কেবল ব্যবহার করতে পারেন:
rsync -axHv --delete-during / /mnt/usbhd/pi_backup/
-x
.োকানো হয়েছে। এটির সংক্ষিপ্ত রূপ --one-file-system
যা rsync
ফাইল সিস্টেমের সীমানা অতিক্রম না করতে বলে । ব্যক্তিগতভাবে আমি পছন্দ করি --exclude-from
তবে উদাহরণস্বরূপ, ডিফল্ট রস্পবিয়ান, --one-file-system
ভাল কাজ করবে। -x
ট্র্যাশ যত্নবান হতে চাইলে আপনি উভয়ই ব্যবহার করতে পারেন : ডি
এটি পুরোপুরি ব্যাকআপ নয়। আপনি যদি কিছু না রেখে থাকেন boot
এবং কম্পিউটারে কার্ড স্টিক করে চালিয়ে কেবল সিস্টেমটি পুনরুদ্ধার করতে ব্যাক আপ ব্যবহার করে আপনার পক্ষে ভাল তবে এটি যথেষ্ট :
rsync -av --delete-during /mnt/usbhd/pi_backup/ /mnt/sdcard_partition2/
আপনি এটিতে কোনও নতুন চিত্রযুক্ত কার্ড দিয়ে এটি করতেও পারেন (ধরে নেওয়া এটি আপনার বেস ইমেজের মতোই) যদিও আপনাকে যদি চিত্রটি তৈরি করতে হয় তবে এটি কিছুটা অক্ষম (কারণ আপনি এরপরে এটি বেশিরভাগে ওভাররাইট করতে যাচ্ছেন)। আপনি অন্য কোনও এসডি কার্ডের কোনও ইউএসবি অ্যাডাপ্টারের মাধ্যমে এটিতে থাকা কোনও চিত্রের সাথে সংযুক্ত করতে পারেন এবং ডুপ্লিকেট কার্ড বজায় রাখতে উপরের পদ্ধতিটি ব্যবহার করতে পারেন।
যদি আপনি স্টাফ রাখেন /boot
(যেমন, একটি কাস্টম কার্নেল) সহ /boot/config.txt
, আপনি এটিও ব্যাক আপ করতে চান (বেশ সহজ - এটির তেমন কিছুই নেই)। এটি আলাদাভাবে করুন, এবং আপনি পুনরুদ্ধার করার সময়, স্টাফটি প্রথম পার্টিশনে যায়।
আপনি যদি ফাঁকা রাস্পবিয়ান স্টাইলের চিত্র তৈরি করতে চান তবে এখানে ব্যাকআপ নিতে পারেন See খালি রাস্পবিয়ান স্টাইল কার্ড তৈরি করতে আপনি অনুরূপ পদ্ধতিটি ব্যবহার করতে পারেন - কোনও .img
ফাইলের সাথে ডিল করার পরিবর্তে আপনি একটি আসল ডিভাইস (উদাহরণস্বরূপ /dev/sdb
) নিয়ে কাজ করবেন, যার অর্থ আপনাকে যা করতে হবে তার সাথে পার্টিশন টেবিলটি তৈরি করা fdisk
এবং তারপরে বিন্যাস /dev/sdb1
এবং sdb2
(বা যাই হোক না কেন) এর সাথে mkfs
।
তবে পুরো চিত্রটি অনুলিপি করা সহজ! কেন এ নিয়ে বিরক্ত করবেন?
এটা এত কঠিন নয়; আমি 10 মিনিটে একটি ফাঁকা কার্ডে (সেই শেষ লিঙ্ক অনুসারে ফর্ম্যাট করা) পুনরুদ্ধার করেছি। হ্যাঁ, dd
পুরো জিনিসটি ব্যবহার করা সহজতর (যদি আপনি শব্দগুলির মতো বিভ্রান্তিকর শব্দগুলি খুঁজে পান ...), তবে প্রতিবার আপনার ব্যাকআপটি আপডেট করতে চাইলে এটি বেশ খানিকটা সময় নেয় কারণ আপনাকে অবশ্যই প্রতিবার এটির 100% কাজ করতে হবে। ব্যবহার rsync
, একবার একটি ব্যাকআপ বিদ্যমান, এটা আপডেট করার অনেক অনেক দ্রুত, তাই আপনি এই ক্রন মাধ্যমে থাকুন দৈনন্দিন ঘটতে সেট করতে পারেন আপ করুন। এমনকি একটি নেটওয়ার্ক জুড়ে। প্রতি ছয় ঘন্টা। আপনি যত বেশি সময় এটি করেন, কম সময় লাগবে।
rsync
মাধ্যমে ssh
এখানে একটি উদাহরণ:
rsync [options] --rsh="ssh [ssh options]" root@[the pi ip]:/ /backup/rpi/
"বিকল্পগুলি" যেমন, উদাহরণস্বরূপ -av --delete --exclude-from=/rsync-exclude.txt
এবং "ssh বিকল্পগুলি" হ'ল আপনি সাধারণত যা ব্যবহার করেন (যদি কিছু থাকে)। এর মাধ্যমে আপনাকে রুট অ্যাক্সেস থাকতে হবে ssh
একটি সিস্টেম ব্যাকআপ উদ্দেশ্যে (সেট এই কাজ করতে PermitRootLogin=yes
মধ্যে /etc/ssh/sshd_config
এবং সার্ভার পুনরায় আরম্ভ)।
1 আপনার এই ফাইলটি রাখা উচিত। আপনি এটিতে #
বা এর সাথে শুরু করে লাইনে মন্তব্য রাখতে পারেন ;
। rsync
এটিতে আসল কমান্ড অন্তর্ভুক্ত থাকতে পারে , যা পরে অনুলিপি করা যায় যাতে আপনার এটি প্রতিবার মনে রাখতে হবে না।
2 ক্রিসকে নির্দেশ করার জন্য ধন্যবাদ rsync
এটি স্বয়ংক্রিয়ভাবে করে না।
dd
, দেখুনrsync
।