সার্ভার বা এমনকি ব্যক্তিগত লিনাক্স কম্পিউটার পরিচালনার ক্ষেত্রে, একটি বিষয় আছে যা ভাগ্যের উপর ছেড়ে দেওয়া যায় না: ডেটা ব্যাকআপ। আমরা যতই সতর্কতা অবলম্বন করি না কেন, হার্ডওয়্যার বিকল হওয়া, মানুষের ভুল বা নিরাপত্তা আক্রমণের মতো ঘটনা ঘটার বাস্তব সম্ভাবনা থাকে, আর এখানেই rsync-এর ভূমিকা শুরু হয় । এই টুলটি শুধু ফাইল কপি করার একটি প্রোগ্রাম নয়; এটি একটি অত্যন্ত শক্তিশালী সিনক্রোনাইজেশন প্রোটোকল যা আমাদের ডেটা সুরক্ষিত আছে জেনে নিশ্চিন্তে ঘুমাতে সাহায্য করে।
সিস্টেম অ্যাডমিনিস্ট্রেটরদের কাছে rsync-কে পছন্দের তালিকায় শীর্ষে রাখার কারণ হলো এর অবিশ্বাস্য কার্যকারিতা । অন্যান্য পদ্ধতির মতো নয়, যেগুলো বারবার পুরো ফাইলটি কপি করে, rsync শুধুমাত্র পরিবর্তিত অংশগুলোই স্থানান্তর করে, যার ফলে প্রচুর পরিমাণে ব্যান্ডউইথ এবং সময় সাশ্রয় হয়। আপনি আপনার ফোল্ডারগুলোর স্ন্যাপশট তৈরি করতে চাওয়া একজন ডেস্কটপ ব্যবহারকারীই হোন বা একাধিক সার্ভার পরিকাঠামো পরিচালনাকারী একজন বিশেষজ্ঞই হোন, এই ইউটিলিটিটি আয়ত্ত করা অপরিহার্য।
rsync-এর জাদু যেভাবে কাজ করে
rsync কেন এত দ্রুত, তা বুঝতে হলে এর কার্যপ্রণালী খতিয়ে দেখতে হবে। প্রোগ্রামটি একটি ডেল্টা ট্রান্সফার অ্যালগরিদম ব্যবহার করে। প্রথমে, এটি ফাইলের আকার এবং পরিবর্তনের তারিখের উপর ভিত্তি করে উৎস এবং গন্তব্য ফাইল দুটিকে তুলনা করে। যদি এটি কোনো পরিবর্তন শনাক্ত করে, তবে এটি ফাইলটিকে কয়েকটি ব্লকে বিভক্ত করে এবং ঠিক কোন অংশগুলো আলাদা তা নির্দিষ্টভাবে চিহ্নিত করার জন্য চেকসাম গণনা করে। এরপর শুধুমাত্র পরিবর্তিত ব্লকগুলোই পাঠানো হয় এবং গন্তব্য ফাইলটি চূড়ান্ত রূপটি পুনর্গঠন করে। এটি সাধারণ cp বা scp কমান্ডের চেয়ে অনেক বেশি উন্নত একটি প্রক্রিয়া।
ইনস্টলেশন এবং প্রথম পদক্ষেপ
বেশিরভাগ আধুনিক ডিস্ট্রিবিউশন, যেমন উবুন্টু বা ডেবিয়ানে, rsync আগে থেকেই ইনস্টল করা থাকে। যদি কোনো কারণে আপনার ক্ষেত্রে এমনটা না হয়, তবে আপনি দ্রুত এটি ইনস্টল করে নিতে পারেন। sudo apt install rsyncরেড হ্যাট বা সেন্টওএস-ভিত্তিক সিস্টেমে, কমান্ডটি হবে sudo yum install rsyncএকবার ইনস্টল হয়ে গেলে, সবকিছু ঠিক আছে কিনা তা পরীক্ষা করতে আপনি এটি চালাতে পারেন। rsync --version আপনার টার্মিনালে।
সিনট্যাক্স এবং প্রয়োজনীয় বিকল্পগুলি
মূল কাঠামোটি সহজ: rsync origen destinoতবে, এর প্রকৃত সম্ভাবনা এর প্যারামিটারগুলোর মধ্যেই নিহিত। সবচেয়ে বেশি ব্যবহৃত প্যারামিটারগুলোর মধ্যে একটি হলো -a (ফাইল মোড)এটি মূলত এমন একটি প্যাকেজ যা পারমিশন, মালিকানা, টাইমস্ট্যাম্প এবং সিম্বলিক লিঙ্ক সংরক্ষণ করে, এবং নিশ্চিত করে যে কপিটি মূলটির হুবহু অনুরূপ। আপনি যদি রিয়েল টাইমে কী ঘটছে তা দেখতে চান, তাহলে যোগ করুন -v (ভার্বোস)এবং যদি আপনি নেটওয়ার্কের মাধ্যমে ডেটা স্থানান্তর করতে চান, তাহলে বিকল্পটি হলো -z এটি যাত্রাপথে তথ্য সংকুচিত করবে।
একটি প্রযুক্তিগত বিবরণ যা প্রায়শই মাথাব্যথার কারণ হয় তা হলো চূড়ান্ত আঘাত রুটগুলোতে। যদি আপনি লেখেন /directorio/ (স্ল্যাশ সহ) rsync ওই ফোল্ডারের বিষয়বস্তু কপি করবে। যদি আপনি টাইপ করেন /directorio (স্ল্যাশ ছাড়া) পুরো ফোল্ডারটি গন্তব্যে কপি করবে। এটি একটি ছোট সূক্ষ্ম বিষয়, কিন্তু একটি সুসংগঠিত কাঠামো এবং ফোল্ডারের বিশৃঙ্খল স্তূপের মধ্যে এটিই আকাশ-পাতাল পার্থক্য গড়ে দেয়।
ব্যবহারের পরিস্থিতি এবং উন্নত কনফিগারেশন
আপনার প্রয়োজন অনুসারে rsync ব্যবহার করার বিভিন্ন উপায় রয়েছে। আপনি যদি একটি সাধারণ ব্যাকআপ চান , তবে ফাইল মোডই আপনার জন্য সেরা বিকল্প। কিন্তু যদি আপনার গন্তব্যস্থলটি উৎসের হুবহু প্রতিচ্ছবি হতে হয় এবং উৎসে আর বিদ্যমান নেই এমন ফাইলগুলো মুছে ফেলতে হয়, তবে আপনাকে অবশ্যই `--delete` অপশনটি যোগ করতে হবে । ব্যাকআপ পরিষ্কার রাখতে এবং জাঙ্ক ফাইল জমা হওয়া রোধ করার জন্য এটি অপরিহার্য।
আপনি চাইলে বাছাইও করতে পারেন। যদি এমন কোনো ফোল্ডার থাকে যা আপনি ব্যাক আপ করতে চান না (যেমন ক্যাশে বা টেম্পোরারি ফাইল), তাহলে আপনি নির্দিষ্ট প্যাটার্ন নির্ধারণ করতে `--exclude` ব্যবহার করতে পারেন অথবা বর্জনের একটি তালিকা সহ একটি টেক্সট ফাইল তৈরি করে `--exclude-from` ব্যবহার করে সেটিকে কল করতে পারেন। যারা খুব বড় আকারের ফাইল নিয়ে কাজ করেন, তাদের জন্য `--max-size` এবং `--min-size` প্যারামিটার রয়েছে , যা আপনাকে ফাইলের আকারের উপর ভিত্তি করে কী কপি করা হবে তা ফিল্টার করার সুযোগ দেয়।
স্বয়ংক্রিয়করণ: ম্যানুয়ালি কমান্ড চালানোর কথা ভুলে যান।
ম্যানুয়াল ব্যাকআপ বিপর্যয় ডেকে আনে, কারণ আজ হোক বা কাল হোক আমরা ভুলেই যাব। এর চিরাচরিত সমাধান হলো... জন্য cronক্রনট্যাব সম্পাদনা করার সময় crontab -e, আমরা করতে পারেন rsync এবং cron ব্যবহার করে লিনাক্সে ব্যাকআপ স্বয়ংক্রিয় করুন উদাহরণস্বরূপ, প্রতি রাতে ভোর ৩টায় কমান্ডটি চালানোর জন্য সময় নির্ধারণ করে। এই ধরনের একটি লাইন 0 3 * * * rsync -av /home/usuario /mnt/backup সে আমাদের হয়ে কঠিন কাজগুলো করে দেবে।
যারা আরও আধুনিক কিছু পছন্দ করেন, তাদের জন্য সিস্টেমডি টাইমার রয়েছে । এগুলি সুস্পষ্ট নির্ভরতা এবং সিস্টেম লগের সাথে উন্নততর সমন্বয়ের মাধ্যমে আরও শক্তিশালী ব্যবস্থাপনার সুযোগ দেয়। টাস্কটির জন্য একটি .service ফাইল এবং সময়সূচী নির্ধারণের জন্য একটি .timer ফাইল তৈরি করে এগুলি কনফিগার করা হয়, যা পুরোনো ক্রনের চেয়ে অনেক বেশি সূক্ষ্ম নিয়ন্ত্রণ প্রদান করে।
ব্যাকআপ কৌশল: পুশ, পুল এবং তাৎক্ষণিক
পেশাদার পরিবেশে দুটি প্রধান পদ্ধতি রয়েছে। পুশ মডেল হলো যখন প্রোডাকশন সার্ভার ব্যাকআপ সার্ভারে ডেটা পাঠায়। এটি সহজ, কিন্তু এর জন্য প্রাইমারি সার্ভারের গন্তব্যে লেখার অনুমতি (রাইট পারমিশন) থাকা প্রয়োজন। পুল মডেল হলো এর বিপরীত: ব্যাকআপ সার্ভার ডেটার জন্য অনুরোধ করে। এটি অনেক বেশি নিরাপদ, কারণ প্রোডাকশন সার্ভারের ব্যাকআপ সিস্টেম সম্পর্কে জানার বা তাতে অ্যাক্সেস থাকার প্রয়োজন হয় না।
একটি মাত্র ভুলের কারণে সম্পূর্ণ ইতিহাস মুছে যাওয়া রোধ করতে, আদর্শ সমাধান হলো বাস্তবায়ন করা ব্যাকআপ রোটেশনকপিটি ওভাররাইট করার পরিবর্তে, আমরা কমান্ডটি ব্যবহার করে বর্তমান তারিখ দিয়ে ফোল্ডার তৈরি করতে পারি। date +%Y-%m-%dএকটি উন্নত কৌশলের মধ্যে ব্যবহার অন্তর্ভুক্ত হার্ড লিঙ্ক বিরূদ্ধে cp -alএর ফলে ডিস্কের জায়গা অত্যধিক না বাড়িয়েই একাধিক ঐতিহাসিক সংস্করণ (স্ন্যাপশট) তৈরি করা যায়, যেহেতু অপরিবর্তিত ফাইলগুলো সব সংস্করণের মধ্যে শেয়ার করা থাকে।
একটি rsync সার্ভার (ডেমন) কনফিগার করা
যদি আপনি কোনো মেশিনকে ডেডিকেটেড ব্যাকআপ সার্ভারে পরিণত করতে চান, তাহলে আপনাকে অবশ্যই কনফিগার করতে হবে rsync ডেমনএর জন্য ফাইলটি সম্পাদনা করতে হবে। /etc/rsyncd.confযেখানে আমরা ডেটা মডিউল, অনুমোদিত ব্যবহারকারী এবং অ্যাক্সেস শুধুমাত্র পঠনযোগ্য কিনা তা নির্ধারণ করি। নিরাপত্তার জন্য, একটি তৈরি করা অপরিহার্য। আপনার কপিগুলির জন্য এনক্রিপ্টেড ব্যাকআপ এবং পাসওয়ার্ড ফাইলের অনুমতি সীমাবদ্ধ করুন /etc/rsyncd.passwd বিরূদ্ধে chmod 0600 যাতে অন্য কেউ সেগুলো পড়তে না পারে।
সাধারণ সমস্যার সমাধান
সবকিছু নিখুঁত হয় না, এবং কিছু বাধার সম্মুখীন হওয়া স্বাভাবিক। সাধারণত, rsync চালনাকারী ব্যবহারকারীর সোর্সে রিড অ্যাক্সেস এবং ডেস্টিনেশনে রাইট অ্যাক্সেস আছে কিনা তা নিশ্চিত করার মাধ্যমে " পারমিশন ডিনাইড" ত্রুটিটি সমাধান করা হয়। যদি আপনি লক্ষ্য করেন যে ব্যাকআপটি আপনার ইন্টারনেট সংযোগকে পুরোপুরি ব্যবহার করছে, তাহলে আপনি `--bwlimit` অপশনটি ব্যবহার করে ব্যান্ডউইথ সীমিত করতে পারেন ।
আরেকটি সাধারণ সতর্কবার্তা হলো, ফাইল স্থানান্তরের সময় কিছু ফাইল অদৃশ্য হয়ে গেছে । এটি সাধারণত লগ বা টেম্পোরারি ফাইলের ক্ষেত্রে ঘটে, যেগুলো rsync পড়ার সময় সিস্টেম মুছে ফেলে; এটি সাধারণত গুরুতর নয় এবং এটিকে উপেক্ষা করা যেতে পারে অথবা এক্সক্লুশন স্ক্রিপ্ট ব্যবহার করে সমাধান করা যায়।
অনুমোদনের সোনালী নিয়ম
টুল যাই হোক না কেন, rsync একটি বৃহত্তর কৌশলের অংশ হওয়া উচিত, যেমন ৩-২-১ নিয়ম : আপনার ডেটার তিনটি কপি দুটি ভিন্ন স্টোরেজ মিডিয়াতে রাখুন, যার মধ্যে একটি কপি অফ-সাইটে সংরক্ষণ করা থাকবে। মনে রাখবেন যে, ডেটা পুনরুদ্ধার করা যাবে কিনা তা যাচাই না করা পর্যন্ত একটি ব্যাকআপ সত্যিকার অর্থে নির্ভরযোগ্য নয়। ডেটা ধ্বংসকারী কমান্ড চালানোর আগে -n (ড্রাই-রান) অপশন ব্যবহার করে সিমুলেশন চালানো এমন একটি অভ্যাস যা একাধিকবার আপনার জীবন বাঁচাবে।
rsync-এ দক্ষতা অর্জন করার অর্থ হলো সাধারণ ম্যানুয়াল ব্যাকআপ থেকে এমন একটি স্বয়ংক্রিয় ও ভার্সনযুক্ত সিস্টেমে চলে যাওয়া যা ডেটার অখণ্ডতা রক্ষা করে। একটি ডেডিকেটেড সার্ভার স্থাপন করা, ক্রন জব শিডিউল করা, বা হার্ড লিঙ্ক ব্যবহার করে রোটেশন প্রয়োগ করা—যেভাবেই হোক না কেন, এর মূল চাবিকাঠি হলো ধারাবাহিকতা এবং নিয়মিত ডেটা যাচাই করা, যাতে যেকোনো অপ্রত্যাশিত পরিস্থিতিতে ডেটা পুনরুদ্ধার দ্রুত এবং কার্যকর হয়।
সাধারণভাবে বাইট এবং প্রযুক্তির বিশ্ব সম্পর্কে উত্সাহী লেখক। আমি লেখার মাধ্যমে আমার জ্ঞান ভাগ করে নিতে পছন্দ করি, এবং আমি এই ব্লগে এটিই করব, আপনাকে গ্যাজেট, সফ্টওয়্যার, হার্ডওয়্যার, প্রযুক্তিগত প্রবণতা এবং আরও অনেক কিছু সম্পর্কে সবচেয়ে আকর্ষণীয় জিনিস দেখাব৷ আমার লক্ষ্য হল আপনাকে একটি সহজ এবং বিনোদনমূলক উপায়ে ডিজিটাল বিশ্বে নেভিগেট করতে সাহায্য করা।




