- Rsync আপনাকে শুধুমাত্র পরিবর্তনগুলি অনুলিপি করে এবং অনুমতিগুলি সংরক্ষণ করে দক্ষতার সাথে ডেটা সিঙ্ক্রোনাইজ করতে দেয়, যা স্থানীয় এবং দূরবর্তী ব্যাকআপের জন্য আদর্শ।
- কীগুলির সাথে rsync একত্রিত করা , SSH এবং ক্রোন-এ নির্ধারিত কাজগুলি ম্যানুয়াল হস্তক্ষেপ ছাড়াই নিরাপদ ব্যাকআপগুলি স্বয়ংক্রিয় করতে পারে।
- --delete, --link-dest, --exclude, অথবা --dry-run এর মতো উন্নত বিকল্পগুলি আপনাকে পূর্ণ, ডিফারেনশিয়াল এবং ক্রমবর্ধমান ব্যাকআপগুলিকে সূক্ষ্ম-টিউন করতে এবং ত্রুটিগুলি কমাতে দেয়।
- একটি ভাল পরিকল্পনা ব্যাকআপ rsync-এর মধ্যে রয়েছে পুনরুদ্ধার পরীক্ষা, ব্যাকআপ ঘূর্ণন, সংবেদনশীল ডেটার এনক্রিপশন এবং পর্যবেক্ষণ। লগ এবং সতর্কতা।

যদি আপনি সার্ভার পরিচালনা করেন বা প্রতিদিন কাজ করেন লিনাক্সআজ হোক কাল হোক, তোমাকে এটা বিবেচনা করতেই হবে। আপনার জীবনকে জটিল না করে কীভাবে নির্ভরযোগ্য ব্যাকআপ স্বয়ংক্রিয় করবেনএটা এখানেই আসে। rsyncএকটি অভিজ্ঞ টুল, অত্যন্ত পালিশ করা এবং দ্রুত, ক্রমবর্ধমান, এবং সহজে সময়সূচী করা ব্যাকআপ তৈরির জন্য নিখুঁত cron.
এই নির্দেশিকায় আপনি বিস্তারিতভাবে এবং কোনো রকম ভণিতা ছাড়াই দেখতে পাবেন, কীভাবে rsync ব্যবহার করে লোকাল, রিমোট, ফুল, ডিফারেনশিয়াল এবং ইনক্রিমেন্টাল ব্যাকআপ তৈরি করতে হয় , কীভাবে cron-এর সাহায্যে সবকিছু স্বয়ংক্রিয় করতে হয়, কীভাবে পাসওয়ার্ড না চেয়েই এটিকে SSH-এর সাথে সংযুক্ত করতে হয়, কোন সাধারণ ত্রুটিগুলো এড়িয়ে চলতে হবে এবং কোনো সমস্যা হলে কোন সেরা অনুশীলনগুলো আপনাকে অপ্রত্যাশিত পরিস্থিতি থেকে রক্ষা করবে।
rsync কী এবং কেন এটি ব্যাকআপের জন্য এত বেশি ব্যবহৃত হয়?
Rsync হলো একটি কমান্ড -লাইন ইউটিলিটি যা দুটি ভিন্ন অবস্থানের মধ্যে ফাইল এবং ডিরেক্টরি সিঙ্ক্রোনাইজ করার জন্য ডিজাইন করা হয়েছে । এই অবস্থানগুলো একই কম্পিউটারে, ভিন্ন ভিন্ন সার্ভারে, এমনকি লিনাক্স, ইউনিক্স বা ম্যাকওএস-এর মতো ভিন্ন সিস্টেমেও হতে পারে।
এর প্রধান সুবিধা হল সহজ কমান্ডের তুলনায় যেমন cp o scp যে হয় এটি সবকিছু অক্ষরে অক্ষরে অনুলিপি করে না, তবে কেবল উৎস এবং গন্তব্যের মধ্যে যা পরিবর্তিত হয়েছে তা অনুলিপি করে।এটি করার জন্য, এটি উভয় পক্ষের তুলনা করে এবং একটি অ্যালগরিদম প্রয়োগ করে যা শুধুমাত্র পার্থক্যগুলি পাঠায়, যা খরচ অনেকাংশে হ্রাস করে। এল সামাজিক নেটওয়ার্কিং কপি এবং ব্যান্ডউইথ খরচ হয়েছে।
তাছাড়া, rsync ফাইল সিস্টেম মেটাডেটা খুব ভালোভাবে বুঝতে পারে : এটি পারমিশন, ওনার, গ্রুপ, টাইমস্ট্যাম্প, সিম্বলিক লিঙ্ক বা ডিভাইস সংরক্ষণ করতে পারে, যা এটিকে সিস্টেম-লেভেল ব্যাকআপ এবং সার্ভারগুলোর মধ্যে মাইগ্রেশনের জন্য আদর্শ করে তোলে।
এর আরেকটি প্রধান সুবিধা হলো SSH-এর সাথে এর নির্বিঘ্ন সংযোগ , যা এই প্রোটোকলের এনক্রিপশন এবং অথেনটিকেশন গ্রহণ করে। এর ফলে, আপনি আপনার দৈনন্দিন ব্যবহৃত SSH অ্যাক্সেসকে কাজে লাগিয়েই VPN বা অতিরিক্ত পরিষেবা ছাড়াই একটি সুরক্ষিত রিমোট ব্যাকআপ সিস্টেম স্থাপন করতে পারেন।
লিনাক্সে rsync ইনস্টল এবং যাচাই করা হচ্ছে

বেশিরভাগ আধুনিক ডিস্ট্রিবিউশনে rsync আগে থেকেই ইনস্টল করা থাকে । তা সত্ত্বেও, এর ভার্সন যাচাই করে নেওয়া এবং প্রয়োজনে অফিশিয়াল রিপোজিটরি থেকে প্যাকেজটি ইনস্টল বা আপডেট করে নেওয়া সবসময়ই ভালো।
rsync ইনস্টল করা আছে কিনা তা পরীক্ষা করুন
যেকোনো ডেবিয়ান বা রেড হ্যাট-ভিত্তিক ডিস্ট্রিবিউশনে, আপনি সহজ কিছু করতে পারেন যেমন:
rsync --version
যদি কমান্ডটি ভার্সনের তথ্য দেখায়, তার মানে এটি ইতিমধ্যেই উপলব্ধ আছে। যদি আপনি "কমান্ড পাওয়া যায়নি" বা এই ধরনের কোনো বার্তা দেখতে পান, তাহলে আপনাকে আপনার প্যাকেজ ম্যানেজার থেকে এটি ইনস্টল করতে হবে ।
উবুন্টু, ডেবিয়ান এবং ডেরিভেটিভসে rsync ইনস্টল করুন
উবুন্টু বা ডেবিয়ান-টাইপ সিস্টেমে, সহজভাবে:
sudo apt update
sudo apt install rsync
এটি আপনাকে আপনার ডিস্ট্রিবিউশন দ্বারা প্রদত্ত সংস্করণটি দেবে, যা বেশিরভাগ ক্ষেত্রেই স্থানীয় ও দূরবর্তী কপি এবং ক্রন অটোমেশনের জন্য যথেষ্ট।
Red Hat, CentOS, Rocky Linux এবং অনুরূপ ডিভাইসগুলিতে rsync ইনস্টল করুন
Red Hat, CentOS, Rocky Linux বা AlmaLinux ভিত্তিক পরিবেশে আপনি ব্যবহার করতে পারেন:
sudo dnf install rsync
ম্যানেজার rsync ইনস্টল করবে যদি এটি ইনস্টল করা না থাকে এবং যদি আপনার কাছে এটি আগে থেকেই থাকে তবে আপডেটের জন্য পরীক্ষা করবে , যাতে আপনি উৎস এবং গন্তব্য উভয় স্থানেই একটি সাম্প্রতিক সংস্করণ বজায় রাখেন।
rsync এর মৌলিক বাক্য গঠন এবং সর্বাধিক ব্যবহৃত বিকল্পগুলি
কমান্ডের সাধারণ রূপটি খুবই সহজ, তবে পাথগুলির সাথে বিভ্রান্তি এড়াতে সিনট্যাক্সটি ভালভাবে বোঝা উচিত:
rsync ORIGEN DESTINO
SSH এর মাধ্যমে একটি রিমোট সার্ভারের সাথে সিঙ্ক্রোনাইজ করতে, গন্তব্য বা উৎস পথের স্বরলিপিতে যে পরিবর্তন আসে তা হল:
rsync /ruta/local usuario@servidor:/ruta/remota
কিছু মৌলিক বিকল্প যা আপনি ক্রমাগত ব্যবহার করবেন তা হলো:
-a: ফাইল মোড। বেশ কয়েকটি বিকল্পকে গ্রুপ করে (-r,-l,-p,-t,-g,-o,-D) জন্য সাবডিরেক্টরিগুলি অতিক্রম করে এবং অনুমতি, মালিক, গোষ্ঠী, সময়, লিঙ্ক এবং ডিভাইসগুলি সংরক্ষণ করে.-vবিস্তারিত মোড: কী কপি করা হচ্ছে তা দেখায়। বোঝার জন্য কার্যকর প্রতিটি পাসে rsync কী করছে?.-z: স্থানান্তরের সময় ডেটা সংকুচিত করে, যা ধীর বা ভিড়যুক্ত লিঙ্কগুলিতে ব্যান্ডউইথ সংরক্ষণ করুন.--progress: স্থানান্তরিত ফাইলগুলির রিয়েল-টাইম অগ্রগতি দেখায়।--delete: গন্তব্যস্থলে থাকা ফাইলগুলি মুছে ফেলে যা উৎসে আর বিদ্যমান নেই, রেখে একটি সঠিক প্রতিরূপ.--exclude: এটা করতে পারবেন ফাইল বা ডিরেক্টরি বাদ দিন ধরণ অনুসারে, উদাহরণস্বরূপ--exclude="*.log"o--exclude="tmp/".-e ssh: সাধারণত রিমোট শেল নির্দিষ্ট করে নিরাপদ ব্যাকআপের জন্য SSHএটি সাধারণত একটি গন্তব্য ব্যবহার করার সময় অন্তর্নিহিত থাকেusuario@host:কিন্তু এটা স্পষ্টভাবে বলা যেতে পারে।--dry-run: সিমুলেশন মোড, কোন কিছু কপি বা মুছে না ফেলে কী হবে তা দেখায়। বাস্তব জীবনে কমান্ড চালু করার আগে সেগুলো পরীক্ষা করার জন্য উপযুক্ত।.--log-file=/ruta/log: অডিটিং বা ডায়াগনস্টিকসের জন্য একটি লগ ফাইলে এক্সিকিউশনের বিবরণ লেখে।
rsync এর প্রথম ব্যবহারিক উদাহরণ
rsync কীভাবে কাজ করে তা পুরোপুরি বোঝার জন্য, স্থানীয়ভাবে এবং দূরবর্তীভাবে সহজ উদাহরণ দেখা এবং কিছু গুরুত্বপূর্ণ অপশনের প্রভাব পর্যবেক্ষণ করা সবচেয়ে ভালো।
একটি ডিরেক্টরি স্থানীয়ভাবে অনুলিপি করুন
একটি সাধারণ উদাহরণ হল একই সার্ভারের মধ্যে একটি ডিরেক্টরি প্রতিলিপি করা:
rsync -av /origen/ruta/ /destino/ruta/
সেই কমান্ডটি এর বিষয়বস্তু কপি করবে /origen/ruta/ a /destino/ruta/মেটাডেটা সংরক্ষণ করা হচ্ছে। উৎসের পরবর্তী স্ল্যাশটি লক্ষ্য করুন: নির্দেশ করে যে আপনি ডিরেক্টরির বিষয়বস্তু সিঙ্ক্রোনাইজ করতে চান এবং ডিরেক্টরি নিজেই নয়।
SSH এর মাধ্যমে একটি রিমোট সার্ভারের সাথে সিঙ্ক্রোনাইজ করুন
আপনি যদি অন্য সার্ভারে নিরাপদে ডেটা পাঠাতে চান, তাহলে কেবল ব্যবহারকারীর নাম, সার্ভারের আইপি ঠিকানা বা ডোমেন এবং দূরবর্তী পথটি লিখুন:
rsync -avz /local/dir/ [email protected]:/backup/remote/dir/
-z অপশনটি কম্প্রেশন যোগ করে , যা ধীরগতির বা উচ্চ-ল্যাটেন্সিযুক্ত নেটওয়ার্কের জন্য খুবই উপযোগী। আপনার যদি আগে থেকেই SSH অ্যাক্সেস থাকে, তাহলে rsync কোনো অতিরিক্ত কনফিগারেশন ছাড়াই সরাসরি তা ব্যবহার করবে।
-ড্রাই-রান দিয়ে দৌড়ানোর আগে পরীক্ষা করুন
যেমন সূক্ষ্ম বিকল্প ব্যবহার করার আগে --deleteসিমুলেশন চালানোটা একেবারে যুক্তিসঙ্গত:
rsync -avz --dry-run /local/dir/ usuario@remoto:/destino/
এর মাধ্যমে আপনি ডেটাতে সরাসরি হাত না দিয়েই দেখতে পারবেন কোন ফাইলগুলো কপি, আপডেট বা ডিলিট করা হবে। আপনার কমান্ড সূক্ষ্মভাবে সমন্বয় করার সময় এটি একটি চমৎকার সুরক্ষা ব্যবস্থা ।
দুটি ডিরেক্টরি ১:১ অনুপাতের ডুপ্লিকেট করুন
যদি লক্ষ্য থাকে যে গন্তব্যস্থলটি উৎসের একটি সঠিক প্রতিচ্ছবি, মুছে ফেলা সহ, তাহলে আপনি ব্যবহার করতে পারেন:
rsync -av --delete /fuente/ /destino/
এইভাবে, উৎস থেকে যা কিছু অদৃশ্য হয়ে যাবে, তা গন্তব্যস্থল থেকেও মুছে যাবে । হুবহু প্রতিরূপ তৈরির জন্য এটি আদর্শ, তবে বিচক্ষণতার সাথে ব্যবহার করুন।
rsync সহ কপির প্রকার: পূর্ণ, ডিফারেনশিয়াল এবং ক্রমবর্ধমান
একবার আপনি মৌলিক বিষয়গুলো আয়ত্ত করে ফেললে, আপনার ব্যাকআপগুলো কীভাবে মডেল করতে হয় তা বোঝা গুরুত্বপূর্ণ। rsync-এর সাহায্যে আপনি অতিরিক্ত কোনো টুল ছাড়াই ফুল, ডিফারেনশিয়াল এবং ইনক্রিমেন্টাল ব্যাকআপ বাস্তবায়ন করতে পারেন , যদিও লিনাক্সের জন্য Resti টিউটোরিয়ালের মতো বিকল্পগুলো খতিয়ে দেখা যেতে পারে ।
rsync ব্যবহার করে সম্পূর্ণ কপি
একটি সম্পূর্ণ কপি সোর্স ডিরেক্টরি থেকে সমস্ত ফাইল গন্তব্যে স্থানান্তর করে, সাবফোল্ডার সহ:
rsync -a /ruta/al/directorio/fuente/ /ruta/al/directorio/destino/
প্রথমবার ব্যাকআপ সেট আপ করার সময় আপনি সাধারণত এই প্যাটার্নটিই ব্যবহার করবেন। এরপর থেকে, পরবর্তী রানগুলো শুধুমাত্র পরিবর্তনগুলো কপি করবে , কিন্তু ধারণাগতভাবে সেগুলো "সম্পূর্ণ"ই থাকে, কারণ এর ফলে গন্তব্যে উৎসের একটি পূর্ণাঙ্গ প্রতিচ্ছবি তৈরি হয়।
–ডিলিট সহ ডিফারেনশিয়াল কপি
যদি আপনি চান যে গন্তব্যস্থলটি মুছে ফেলা ফাইল সহ উৎসের বর্তমান অবস্থা সঠিকভাবে প্রতিফলিত করুক, তাহলে আপনি যোগ করতে পারেন:
rsync -a --delete /ruta/al/directorio/fuente/ /ruta/al/directorio/destino/
`-delete` অপশনটি গন্তব্যকে উৎসের সাথে নিখুঁতভাবে সিঙ্ক্রোনাইজড রাখে। শুধুমাত্র নতুন বা পরিবর্তিত ফাইলগুলোই স্থানান্তরিত হবে, এবং যে ফাইলগুলো উৎসে আর বিদ্যমান নেই সেগুলো গন্তব্য থেকে মুছে ফেলা হবে, যা একটি নিরবচ্ছিন্ন ডিফারেনশিয়াল কপি হিসেবে কাজ করে।
-লিংক-ডেস্ট সহ বর্ধিত কপি
আরও এক ধাপ এগিয়ে যেতে এবং আরও বেশি জায়গা বাঁচাতে, আপনি ব্যবহার করতে পারেন হার্ড লিঙ্কের উপর ভিত্তি করে ক্রমবর্ধমান কপি বিকল্পটি ব্যবহার করে --link-dest.
মূল ধারণাটি হলো: আপনার কাছে একটি পূর্ববর্তী কপি আছে (উদাহরণস্বরূপ, আগের দিনের) এবং আপনি একটি নতুন দৈনিক 'স্ন্যাপশট' তৈরি করতে চান যেখানে শুধুমাত্র পরিবর্তিত ব্লকগুলো ভৌতভাবে সংরক্ষিত থাকবে , আর অপরিবর্তিত ফাইলগুলো পূর্ববর্তী কপির লিঙ্ক হিসেবে উপস্থাপিত হবে।
একটি সাধারণ কমান্ড দেখতে এরকম কিছু হবে:
rsync -a --link-dest=/backups/dia-anterior/ /datos/ /backups/hoy/
এই ভাবে, ইন /backups/hoy/ শুধুমাত্র নতুন বা পরিবর্তিত ডেটা লেখা হয়, এবং বাকি ফাইলগুলি পূর্ববর্তী ব্যাকআপের লিঙ্ক।
সম্পূর্ণ স্ন্যাপশট নেওয়ার অনুভূতি না হারিয়ে অনেক জায়গা সাশ্রয় করে দিন দিন
rsync ব্যবহার করে ম্যানুয়াল ব্যাকআপ কনফিগার করুন
ধারণাগুলোর বাইরেও, স্থানীয়ভাবে এবং বাহ্যিক ডিস্ক বা রিমোট সার্ভারে নির্দিষ্ট পাথ ব্যবহার করে বাস্তব ব্যাকআপের উদাহরণ কীভাবে সেট আপ করতে হয়, তা জানা অত্যন্ত গুরুত্বপূর্ণ।
আপনার ব্যক্তিগত ডিরেক্টরির ব্যাক আপ নিন
কল্পনা করুন আপনি এর একটি কপি তৈরি করতে চান /home/usuario/ একটি মাউন্ট করা ডিস্কের দিকে /mnt/disco_backup:
rsync -av /home/usuario/ /mnt/disco_backup/
এই কমান্ডটি পারমিশন, মালিক, গ্রুপ এবং সময় সংরক্ষণ করে এবং এক্সটার্নাল ডিস্কের বিষয়বস্তুকে আপনার হোম ডিরেক্টরির সাথে সিঙ্ক্রোনাইজ করে রাখে।
সিস্টেম কনফিগারেশন ব্যাকআপ
সার্ভার কনফিগারেশন দিয়ে আপনার পিঠ ঢেকে রাখার জন্য, আপনি কপি করতে পারেন /etc/ স্থানীয় বা দূরবর্তী রুটে:
rsync -avz /etc/ usuario@servidor-remoto:/backup/etc/
এর ফলে আপনার কাছে কনফিগারেশন ফাইলগুলোর একটি সাম্প্রতিক স্ন্যাপশট সবসময় থাকবে , যা দ্রুত রিস্টোর করার জন্য বা কোনো আপডেটের পর পরিবর্তনগুলো তুলনা করার জন্য খুবই উপযোগী।
/home এর সম্পূর্ণ রিমোট ব্যাকআপ
মাল্টি-ইউজার সার্ভারে একটি সাধারণ দৃশ্য হল সবকিছু কপি করা /home/ অন্য মেশিনে:
rsync -avz --delete /home/usuario/ usuario@servidor-remoto:/ruta/backup/
বিকল্প সহ –delete নিশ্চিত করে যে ব্যাকআপটি হুবহু একটি প্রতিরূপ।। এর সাথে মিলিত -z কম্প্রেশনের জন্য, খুব দ্রুত নয় এমন নেটওয়ার্কগুলিতেও যুক্তিসঙ্গত স্থানান্তর হার অর্জন করা হয়।
অপ্রয়োজনীয় ফাইল এবং ডিরেক্টরি বাদ দিন
অনেক প্রকল্পে, একেবারে সবকিছু অনুলিপি করার কোনও মানে হয় না: লগ, অস্থায়ী ফাইল, বা ডাউনলোডযোগ্য নির্ভরতা প্রায়শই অপ্রয়োজনীয়। এর জন্য, আপনি ব্যবহার করতে পারেন:
rsync -av --exclude='*.tmp' --exclude='node_modules/' /proyecto/ /backup/proyecto/
এইভাবে আপনি গুরুত্বপূর্ণ জিনিসগুলো রাখতে পারেন এবং ডিস্কটিকে এমন অপ্রয়োজনীয় জিনিস দিয়ে ভরিয়ে ফেলেন না যা সহজেই পুনরায় তৈরি করা যায়।
পাসওয়ার্ড ছাড়াই SSH-এর মাধ্যমে Rsync: পরিবেশ প্রস্তুত করা
একটি স্বয়ংক্রিয় ব্যাকআপ সিস্টেমকে সত্যিকারের সুবিধাজনক করতে হলে, rsync-কে প্রতিবার পাসওয়ার্ড না চেয়েই রিমোট সার্ভারে সংযোগ করতে সক্ষম হতে হবে । এটি অর্জন করার প্রচলিত উপায় হলো SSH পাবলিক কী অথেন্টিকেশন ব্যবহার করা।
সোর্স মেশিনে SSH কী জোড়া তৈরি করুন
যে সার্ভার থেকে আপনি ব্যাকআপ চালু করবেন, সেখানে চালান:
ssh-keygen -t ed25519
উপশুল্ক প্রবেশ করান সকল প্রশ্নের ক্ষেত্রে, ডিফল্ট মান ব্যবহার করুন। এটি আপনার ফোল্ডারে একটি ব্যক্তিগত এবং একটি পাবলিক কী তৈরি করবে। ~/.ssh/, Que এগুলি রিমোট সার্ভারে পাসওয়ার্ড ছাড়াই আপনাকে শনাক্ত করতে ব্যবহার করা হবে।.
ব্যাকআপ সার্ভারে পাবলিক কী কপি করুন
একবার আপনার কী জোড়া হয়ে গেলে, যা অবশিষ্ট থাকে তা হল পাবলিক কীটি গন্তব্য সার্ভারে অনুলিপি করা:
ssh-copy-id [email protected]
প্রতিস্থাপন backup এবং আপনার নির্দিষ্ট ব্যবহারকারীর নাম এবং সার্ভারের আইপি ঠিকানা। একবার পাসওয়ার্ড দেওয়ার পরে, চাবিটি রেকর্ড করা হবে ~/.ssh/authorized_keys রিমোট সার্ভারে.
পাসওয়ার্ড ছাড়াই অ্যাক্সেস করার চেষ্টা করুন
সবকিছু ঠিকঠাক কাজ করছে কিনা তা যাচাই করতে, SSH এর মাধ্যমে সংযোগ করার চেষ্টা করুন:
পাসওয়ার্ডের জন্য অনুরোধ ছাড়াই সরাসরি লগ ইন করলে, আপনি ইতিমধ্যেই rsync-কে নন-ইন্টারঅ্যাক্টিভভাবে ব্যবহার করতে পারবেন , যা স্ক্রিপ্ট এবং ক্রন জব থেকে কল করার জন্য আদর্শ।
ক্রোন এবং আরএসএনসিঙ্ক ব্যবহার করে স্বয়ংক্রিয় ব্যাকআপ তৈরি করুন
একবার আপনার rsync কমান্ডটি নিখুঁতভাবে সেট করা হয়ে গেলে এবং কী অথেন্টিকেশন প্রস্তুত হয়ে গেলে, পরবর্তী স্বাভাবিক পদক্ষেপ হলো cron-এর মাধ্যমে রানগুলোকে স্বয়ংক্রিয় করে দেওয়া , যাতে আপনাকে ম্যানুয়ালি ব্যাকআপ চালানোর কথা ভুলে যেতে হয়।
ক্রনের সাথে দ্রুত পরিচিতি
cron এটি ইউনিক্স সিস্টেমের জন্য ক্লাসিক টাস্ক শিডিউলার। এটি আপনাকে চালানোর অনুমতি দেয় নির্দিষ্ট বিরতিতে কমান্ড বা স্ক্রিপ্ট (প্রতি মিনিটে, প্রতি ঘন্টায়, দৈনিক, সাপ্তাহিক, ইত্যাদি)। প্রতিটি ব্যবহারকারীর নির্ধারিত কাজ সহ নিজস্ব টেবিল রয়েছে, যার মাধ্যমে অ্যাক্সেসযোগ্য:
crontab -e
এন্ট্রিগুলি এই বিন্যাস অনুসরণ করে:
MIN HORA DIA-MES MES DIA-SEMANA comando-a-ejecutar
rsync ব্যবহার করে একটি দৈনিক ব্যাকআপ নির্ধারণ করুন
ধরুন আপনি প্রতিদিনের একটি কপি তৈরি করতে চান /var/backups/ সকাল ২:০০ টায় একটি রিমোট সার্ভারে:
0 2 * * * rsync -avz /var/backups/ [email protected]:/mnt/servidor_backups/
আপনার ক্রনট্যাবের এই লাইনটি পাসওয়ার্ডবিহীন SSH অথেনটিকেশনের সুবিধা নিয়ে, কোনো ম্যানুয়াল হস্তক্ষেপ ছাড়াই প্রতিদিন রাত ২:০০ টায় কমান্ডটি চালু করার কাজটি করবে ।
আরও জটিল কাজের জন্য স্ক্রিপ্ট ব্যবহার করুন
আপনার প্রয়োজন বাড়ার সাথে সাথে, ক্রনট্যাবের একটি লাইনে সবকিছু রাখার পরিবর্তে লজিকটিকে একটি স্ক্রিপ্টে আবদ্ধ করা আরও সুবিধাজনক হতে পারে। উদাহরণস্বরূপ:
vi /usr/local/sbin/rsync_backup.sh
স্ক্রিপ্টের মধ্যে আপনার এরকম কিছু থাকতে পারে:
#!/bin/bash
rsync -avz --delete /home/your_user/ [email protected]:/backups/home/ --log-file=/var/log/rsync-home.log
তারপর আপনি এটিকে এক্সিকিউটেবল করে তুলবেন:
chmod +x /usr/local/sbin/rsync_backup.sh
এবং crontab-এ আপনি শুধু যোগ করুন:
0 23 * * * /usr/local/sbin/rsync_backup.sh
এইভাবে আপনি প্রোগ্রামিং থেকে ব্যাকআপ লজিককে স্পষ্টভাবে আলাদা করতে পারবেন , ফলে রক্ষণাবেক্ষণ এবং ডিবাগিং সহজ হবে।
ডেমন হিসেবে Rsync: পাসওয়ার্ড-সুরক্ষিত ফাইল ব্যাকআপ
যদিও rsync ও SSH-এর সমন্বয় সাধারণত সবচেয়ে সুবিধাজনক, আপনি একটি rsync সার্ভারকে ডেমন হিসেবেও সেট আপ করতে পারেন এবং SSH কী-এর পরিবর্তে পাসওয়ার্ড ফাইল দিয়ে প্রমাণীকরণ করতে পারেন।
সাধারণ সেটআপে সম্পাদনা জড়িত থাকবে /etc/rsyncd.conf ডেটা মডিউল, ব্যবহারকারী, গোষ্ঠী এবং কেবল পঠনযোগ্য আচরণ সংজ্ঞায়িত করতে, উদাহরণস্বরূপ:
pid file = /var/run/rsyncd.pid
uid = backup-user
gid = backup-user
read only = yes
path = /path/to/backup
list = yes
auth users = backup-user
secrets file = /etc/rsyncd.passwd
পাসওয়ার্ড ফাইলটি সংজ্ঞায়িত করা হয়েছে /etc/rsyncd.passwd এই ধরণের কন্টেন্ট সহ:
backup-user:mi-pass-secreta
এবং এটি সুরক্ষিত:
chmod 0600 /etc/rsyncd.passwd
ক্লায়েন্টে আপনি ব্যবহার করতে পারেন:
rsync -a --password-file=/etc/rsyncd.passwd backup-user@source-server-ip::data /destino/path/$(date +%Y-%m-%d)/
এভাবেই তারিখ অনুযায়ী ব্যাকআপ ফোল্ডারগুলো তৈরি করা হয় এবং উৎস সার্ভারে ডেটা শুধুমাত্র পঠনযোগ্য (read-only) রাখা হয়, যাতে ভুলবশত কোনো পরিবর্তন না ঘটে।
rsync ব্যবহার করে ব্যাকআপের জন্য সেরা অনুশীলন এবং চেকলিস্ট
একটি কার্যকরী ব্যাকআপ তৈরি করা ভালো, কিন্তু এমন একটি ব্যাকআপ তৈরি করতে যা কোনো ঝামেলা ছাড়াই বছরের পর বছর টিকে থাকে, তার জন্য কিছু বেশ সাধারণ উত্তম অনুশীলন অনুসরণ করতে হয়।
আপনার কপিগুলিতে কী অন্তর্ভুক্ত করবেন
কী ব্যাক আপ করবেন তা ভাবার সময়, স্পষ্ট নথির মধ্যে নিজেকে সীমাবদ্ধ রাখবেন না। এটি কভার করা গুরুত্বপূর্ণ:
- গুরুত্বপূর্ণ তথ্য: ডাটাবেস, অ্যাপ্লিকেশন ডিরেক্টরি, গ্রাহক ফাইল, অর্ডার ইত্যাদি।
- সিস্টেম সেটিংস:
/etc/, পরিষেবা কনফিগারেশন ফাইল, ভার্চুয়াল হোস্ট, ইত্যাদি। - স্ট্যাটিক ফাইল: ছবি, ওয়েব কন্টেন্ট, মাল্টিমিডিয়া উপাদান।
সবচেয়ে সংবেদনশীল ডেটা সাধারণত ব্যবসায়িক ডেটা এবং কনফিগারেশনের মিশ্রণ হয়ে থাকে , কারণ এটি কাজের পরিবেশ দ্রুত পুনর্গঠন করতে সাহায্য করে।
ব্যাকআপ ফ্রিকোয়েন্সি
সকল তথ্য একই হারে উপস্থাপন করার প্রয়োজন নেই। একটি যুক্তিসঙ্গত নিয়ম হবে:
- অত্যন্ত সংবেদনশীল তথ্য (উৎপাদন ডাটাবেস, বিলিং সিস্টেম): দৈনিক কপি বা এমনকি প্রতি কয়েক ঘন্টা অন্তর।
- মাঝারি পরিবর্তন সহ ডেটা: সমালোচনার উপর নির্ভর করে দৈনিক বা সাপ্তাহিক কপি।
- প্রায় স্থির তথ্য (আর্কাইভাল উপাদান, পুরাতন লগ): কম ঘন ঘন ব্যাকআপ বা মাসিক স্ন্যাপশট।
মনে রাখবেন যে, rsync সঠিকভাবে কনফিগার করা হলে দ্রুত ইনক্রিমেন্টাল ব্যাকআপ নিতে পারে , তাই ব্যাকআপে ঘাটতি হওয়ার চেয়ে সতর্কতামূলক ব্যবস্থা হিসেবে আরও ঘন ঘন ব্যাকআপ নেওয়া ভালো।
একাধিক স্থানে ঘূর্ণন এবং সঞ্চয়স্থান
ডিস্ক পূর্ণ না হওয়া পর্যন্ত কপি জমা করার কোনো মানে নেই। একটি প্রচলিত কৌশল হলো সীমিত সংখ্যক কপি (যেমন, শেষ ৭ দিনের) রাখা এবং নতুন কপি তৈরি হওয়ার সাথে সাথে সবচেয়ে পুরোনো কপিগুলো মুছে ফেলা।
আপনার ব্যাকআপগুলো বিভিন্ন স্থানে ছড়িয়ে রাখাও অত্যন্ত জরুরি : যেমন লোকাল ডিস্ক, রিমোট সার্ভার, বা কোনো ক্লাউড স্টোরেজ । এর ফলে আপনি কোনো একটি নির্দিষ্ট ভৌতিক অবস্থানের উপর নির্ভরশীল থাকবেন না।
এনক্রিপশন এবং কপি সুরক্ষা
যদি সংবেদনশীল ডেটা ব্যাকআপে সংরক্ষিত থাকে (এবং প্রায়শই এমনটাই হয়ে থাকে), তবে আপনার উচিত GPG-এর মতো টুল ব্যবহার করে সেগুলোকে এনক্রিপ্ট করা অথবা এনক্রিপ্টেড ভলিউমে সংরক্ষণ করা । একটি নিখুঁত ব্যাকআপ নীতি থাকার কোনো অর্থই থাকে না, যদি পরে কেউ অফিস থেকে একটি ডিস্ক নিয়ে যায় এবং সহজেই তা পড়তে পারে।
টাস্ক মনিটরিং এবং লগিং
যে ব্যাকআপটি নীরবে ব্যর্থ হয় তা অর্থহীন। এটি গুরুত্বপূর্ণ:
- মৃত্যুদণ্ড রেকর্ড করুন লগ ফাইলে
--log-file. - পর্যায়ক্রমে লগগুলি পর্যালোচনা করুন অথবা সতর্কতা সংহত করুন (ইমেল, পর্যবেক্ষণ, ইত্যাদির মাধ্যমে)।
- সময়ে সময়ে পুনরুদ্ধার পরীক্ষাগুলি সম্পাদন করুন নিশ্চিত করুন যে কপিগুলি আসলে ব্যবহারযোগ্য।.
rsync ব্যবহার করার সময় সাধারণ ভুল এবং কীভাবে সেগুলি এড়ানো যায়
rsync খুবই নির্ভরযোগ্য, কিন্তু কিছু ক্লাসিক সমস্যা আছে যেগুলো লক্ষ্য রাখা উচিত যাতে সবচেয়ে খারাপ সময়ে জিনিসপত্র নষ্ট না হয়।
অপর্যাপ্ত অনুমতি
সবচেয়ে সাধারণ ত্রুটিগুলোর মধ্যে একটি হলো, rsync চালনাকারী ব্যবহারকারীর উৎস থেকে পড়ার বা গন্তব্যে লেখার জন্য পর্যাপ্ত অনুমতি না থাকা । যদি আপনি "Permission denied" বার্তাটি পান, তবে যাচাই করুন যে:
- আপনি যে ট্রিটি কপি করতে চান তা ব্যবহারকারীর পড়ার অ্যাক্সেস আছে।
- গন্তব্য রুটটি সেই ব্যবহারকারী দ্বারা লেখা যায়।
- প্রয়োজনে, ব্যবহার করুন
sudoউৎপত্তিস্থল/স্থানীয় দিকে।
দূরবর্তীভাবে সংযোগ করার সময়, নিশ্চিত করুন যে আপনি যে SSH ব্যবহারকারীটি ব্যবহার করছেন তা সঠিক। গন্তব্য রুটের উপর এর অনুমতি রয়েছে (এবং, প্রয়োজনে, কনফিগার করুন) sudo সেখানেও)।
আপেক্ষিক এবং পরম পাথ এবং ট্রেলিং স্ল্যাশ নিয়ে বিভ্রান্তি
রিলেটিভ পাথ ভুল বোঝাবুঝির কারণ হতে পারে, বিশেষ করে স্ক্রিপ্টের ক্ষেত্রে। কমান্ডটি কোন ডিরেক্টরি থেকে চালানো হচ্ছে তার উপর নির্ভর করে অপ্রত্যাশিত পরিস্থিতি এড়াতে, সর্বদা "/" দিয়ে শুরু হওয়া অ্যাবসোলিউট পাথ ব্যবহার করাই শ্রেয়।
শেষ বারগুলি সম্পর্কে, মনে রাখবেন:
/origen/→ সেই ডিরেক্টরির বিষয়বস্তু কপি করুন।/origen→ ডিরেক্টরিটি নিজেই গন্তব্যে কপি করে।
যদি আপনি এখানে ভুল করেন, তাহলে অদ্ভুতভাবে নেস্টেড রুটগুলির সাথে শেষ হওয়া সহজ, তাই পছন্দসই আচরণটি সাবধানে পর্যালোচনা করুন এবং ভরসা করো --dry-run চেক করা।
–delete-এর বিপজ্জনক ব্যবহার
--delete এটি একটি অত্যন্ত শক্তিশালী এবং কার্যকর বিকল্প, কিন্তু এটিই সেই জায়গা যেখানে বেশিরভাগ দুর্যোগ ঘটে। মূলত, এটি rsync কে বলে... গন্তব্যস্থলে থাকা সবকিছু মুছে ফেলুন যা আপনি মূল পৃষ্ঠায় দেখতে পান না।অতএব, উৎস পথের একটি ত্রুটি ব্যাকআপ সার্ভারের একটি ভাল ফোল্ডার খালি করতে পারে।
ঝুঁকি কমাতে:
- সর্বদা কমান্ডটি পরীক্ষা করুন
--dry-runএটি অপসারণের আগে। - উৎপত্তিস্থল এবং গন্তব্যস্থলের রুটগুলি দুবার পরীক্ষা করুন।
- অত্যন্ত সংকটপূর্ণ পরিবেশে আপনি বেছে নিতে পারেন সকল পাসে –delete ব্যবহার করবেন নাকিন্তু শুধুমাত্র নির্দিষ্ট কাজে।
আকার এবং বর্জন নিয়ে সমস্যা
খুব বড় ব্যাকআপের জন্য, কপিতে কী অন্তর্ভুক্ত আছে তা আকার অনুসারে সীমাবদ্ধ করা কার্যকর হতে পারে, যেমন বিকল্পগুলি ব্যবহার করে --max-size o --min-sizeউদাহরণস্বরূপ, শুধুমাত্র ১০ এমবি থেকে ১০০ এমবি আকারের ফাইল কপি করার জন্য:
rsync -av --min-size=10M --max-size=100M /origen/ /destino/
এক্সক্লুশন প্যাটার্নের সাথে মিলিতভাবে, এটি আপনাকে বিশাল লগ, ক্যাশে বা টেম্পোরারি ফাইলের মতো অপ্রয়োজনীয় ফাইলগুলি ফিল্টার করে বাদ দিতে সাহায্য করে , যার ফলে ব্যাকআপ এবং রিস্টোরের গতি কমে আসে।
বাস্তব-বিশ্বের ব্যবহারের ক্ষেত্রে যেখানে rsync জ্বলজ্বল করে
সাধারণ উদাহরণের বাইরেও, এমন বেশ কিছু প্রেক্ষাপট রয়েছে যেখানে rsync এর গতি, নমনীয়তা এবং সরলতার সংমিশ্রণের কারণে প্রায় অপরিবর্তনীয় হয়ে ওঠে।
ই-কমার্স এবং ব্যবসায়িক অ্যাপ্লিকেশন
লিনাক্স সার্ভারে হোস্ট করা অনলাইন স্টোর, ERP বা CRM-এর ক্ষেত্রে, rsync আপনাকে ডাটাবেস (ডাম্প ব্যবহার করে) এবং স্ট্যাটিক ফাইল (পণ্যের ছবি, গ্রাহকের নথি ইত্যাদি) একটি ব্যাকআপ সার্ভার বা অন্য কোনো ডেটা সেন্টারে ব্যাকআপ করার সুযোগ দেয় , যা ডেটা হারানোর ঝুঁকি কমিয়ে আনে।
মিডিয়া আউটলেট, ব্লগ এবং নিউজ পোর্টাল
যেসব সাইটে প্রচুর মাল্টিমিডিয়া কন্টেন্ট এবং প্রচুর পরিমাণে নিবন্ধ রয়েছে, সেখানে rsync এটি সহজ করে তোলে:
- স্ট্যাটিক কন্টেন্ট ডিরেক্টরিগুলি সিঙ্ক্রোনাইজ করুন সার্ভারের মধ্যে (উদাহরণস্বরূপ, একটি প্রাথমিক সার্ভার এবং একটি ব্যাকআপ সার্ভারের মধ্যে)।
- পর্যায়ক্রমে কপি করুন ডাটাবেস এবং কী ফাইল ক্যাপচার বাহ্যিক স্টোরেজে।
শুধুমাত্র যা পরিবর্তন হয়েছে তা স্থানান্তর করার মাধ্যমে, ব্যাকআপ দ্রুত চালানো যায়, এমনকি প্রচুর সংখ্যক ছবি বা ভিডিও থাকা সত্ত্বেও।
উন্নয়ন পরিবেশ এবং সিআই/সিডি
ক্রমাগত ইন্টিগ্রেশন এবং ক্রমাগত স্থাপনার পাইপলাইনে, rsync প্রায়শই নিম্নলিখিত ক্ষেত্রে ব্যবহৃত হয়:
- সোর্স কোড এবং সংকলিত আর্টিফ্যাক্টগুলি সিঙ্ক্রোনাইজ করুন স্টেজিং বা প্রোডাকশন সার্ভারের দিকে।
- একটি সার্ভার ফার্মে বিভিন্ন নোডের মধ্যে ডিরেক্টরিগুলি প্রতিলিপি করুন।
- প্রতিটি রিলিজে সবকিছু পুনরায় আপলোড না করেই শুধুমাত্র একটি অ্যাপ্লিকেশনের পরিবর্তিত অংশ আপডেট করুন।
এর গতি, SSH সাপোর্ট এবং অনুমতি সংরক্ষণের সমন্বয় এটিকে স্ক্রিপ্ট এবং DevOps টুলগুলির সাথে অটোমেশনের জন্য খুবই ব্যবহারকারী-বান্ধব করে তোলে।
এই সমস্ত কিছু মাথায় রেখে, rsync ফাইলগুলির ব্যাকআপ এবং সিঙ্ক্রোনাইজেশনের জন্য এক ধরণের সুইস আর্মি নাইফ হয়ে ওঠে: এটি আপনার ব্যক্তিগত ফোল্ডারের হোম ব্যাকআপের জন্য সমানভাবে ভালো কাজ করে যেমন এটি প্রোডাকশন সার্ভারের একটি বহরের ব্যাকআপ কৌশলের জন্য করে।যদি আপনি এটিকে SSH কী, ক্রোন, ভালো ঘূর্ণন অনুশীলন, নিয়মিত পুনরুদ্ধার পরীক্ষা এবং কিছু সাধারণ জ্ঞানের সাথে একত্রিত করেন যেমন বিকল্পগুলি ব্যবহার করার সময় --deleteআপনার কাছে একটি শক্তিশালী, নমনীয় এবং খুব শক্তিশালী ব্যাকআপ সিস্টেম থাকবে, যার জন্য ভারী বা জটিল সমাধান স্থাপনের প্রয়োজন হবে না।
সাধারণভাবে বাইট এবং প্রযুক্তির বিশ্ব সম্পর্কে উত্সাহী লেখক। আমি লেখার মাধ্যমে আমার জ্ঞান ভাগ করে নিতে পছন্দ করি, এবং আমি এই ব্লগে এটিই করব, আপনাকে গ্যাজেট, সফ্টওয়্যার, হার্ডওয়্যার, প্রযুক্তিগত প্রবণতা এবং আরও অনেক কিছু সম্পর্কে সবচেয়ে আকর্ষণীয় জিনিস দেখাব৷ আমার লক্ষ্য হল আপনাকে একটি সহজ এবং বিনোদনমূলক উপায়ে ডিজিটাল বিশ্বে নেভিগেট করতে সাহায্য করা।