আমি কীভাবে দুটি রেডহাট লিনাক্স সার্ভারের পার্থক্য করতে পারি?


15

আমার দুটি সার্ভার রয়েছে যা জানা পার্থক্য বাদে একই সেটআপ করা উচিত।

চালিয়ে:

find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | sort > allfiles.txt

আমি একটি সার্ভারে সমস্ত ফাইলের একটি তালিকা খুঁজে পেতে পারি এবং অন্য সার্ভারের ফাইলগুলির তালিকার সাথে এটি তুলনা করতে পারি। এটি সার্ভারে থাকা ফাইলগুলির নামের পার্থক্য আমাকে দেখায়।

আমি যা করতে চাই তা হ'ল উভয় সার্ভারের সমস্ত ফাইলে একটি চেকসাম চালানো এবং বিষয়বস্তুগুলি আলাদা কিনা তাও তাদের তুলনা করে তুলনা করুন। যেমন

find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | xargs /usr/bin/sha1sum

এটি করার জন্য এটি কি কোনও বুদ্ধিমান উপায়? আমি ভাবছিলাম যে rysnc এর মধ্যে ইতিমধ্যে বেশিরভাগ কার্যকারিতা রয়েছে তবে এটি কী পার্থক্যের তালিকা সরবরাহ করতে ব্যবহার করা যেতে পারে?


2
পরবর্তী বারের -print0পরিবর্তে -printএবং xargs -0পরিবর্তে আপনার ব্যবহার করা উচিত xargs। "বিজোড়" ফাইলের নাম দ্বারা সৃষ্ট যে কোনও সমস্যা আপনি এড়াতে পারবেন।
ক্রিশ্চিয়ান সিউপিতু

উত্তর:


22

আপনি ঠিক বলেছেন, আরএসএনসি এটির জন্য উপযুক্ত। --itemize-changes(ওরফে -i) ব্যবহার করুন । আপনি উভয় পক্ষেই (বা মেশিনে সম্পূর্ণ অ্যাক্সেস সহ অন্য কোনও ব্যবহারকারী) এটি রুট হিসাবে চালাতে পারেন তা নিশ্চিত করুন:

rsync -ani --delete / root@remotehost:/
  • -a সংরক্ষণাগার জন্য, এবং মূলত rsync একটি সঠিক নকল তৈরি করে (লিঙ্ক জড়িত কিছু ক্ষেত্রে বাদে)
  • -n এটি শুকনো-চালনার জন্য, এবং এর অর্থ আসলে কিছুই পরিবর্তন হবে না (এটি গুরুত্বপূর্ণ! :))
  • -i আইটেমাইজ-পরিবর্তনের জন্য, এবং একবার-একবার-সহজ-সমাপ্তি-সমেত এটির ফর্ম্যাটটি আউটপুট করে যা প্রতিটি ফাইল আপডেট করতে হবে (সিনট্যাক্সটি সেই ট্রিগারটির বিশদ সহায়তার অধীনে ম্যান পৃষ্ঠায় পুরোপুরি ব্যাখ্যা করা হয়েছে)।
  • --delete গন্তব্যস্থলে বিদ্যমান ফাইলগুলিকে আরএসইএনসি মুছে দেয় তবে উত্স নয়।

আপনি যদি কয়েকটি পাথ বাদ দিতে চান তবে কমান্ডগুলি ব্যবহার করুন --exclude /var। বাদ দেওয়া নিদর্শন উত্স ডিরেক্টরি সম্পর্কিত (যা এই ক্ষেত্রে / তাই তারা কার্যকরভাবে পরম হয়)।


আপনি বাদ তাহলে প্রথমেই / var, এছাড়াও আপনি বাদ হবে যেখানে crontabs সংরক্ষণ করা হয়, যা সম্ভবত DO প্রয়োজন পরীক্ষা করতে হবে। যাইহোক, আপনি / var / লগ এবং / var / ক্যাশে জাতীয় জিনিসগুলি বাদ দিতে চান না
শান রিফশনিডার

7

আপনি rsync- এর পতাকাটি তদন্ত করতে চাইতে পারেন। থেকে man rsync:

    -c, --checksum              skip based on checksum, not mod-time & size

আমি অ্যালেক্স জুরকিউইকের উত্তরটির বিষয়ে একটি মন্তব্য রেখেছি, তবে আমার পর্যাপ্ত প্রতিনিধি নেই: '(এখনও ...


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

আমি এটি কেবল ফাইলগুলির বিষয়বস্তু চেকসাম করার জন্য আশা করতাম , যাতে আপনি আধুনিক সময়ে এবং আরও কিছু বিষয়ে মনোযোগ না দিয়ে তুলনা করতে পারেন, তবে দেখা যাচ্ছে যে অ্যালেক্স ঠিকই আছে ... সমস্ত মেটা- উপেক্ষা করার কোনও ভাল উপায় আছে কি? ডেটা এবং কেবল সামগ্রীতে মনোযোগ দিন, গিটটি কীভাবে করে?
আইকনোক্লাস্ট

4

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

উদাহরণ স্বরূপ:

S.5....T  c /root/.bashrc
S.5....T  c /etc/yum/yum-updatesd.conf
.M......    /usr/bin/rdate
..5....T  c /etc/dbbackup.conf
S.5....T  c /etc/webalizer.conf
SM5....T  c /etc/sysconfig/iptables-config

সুতরাং ".bashrc" এবং "yum-আপডেটd.conf" হ'ল "কনফিগারেশন" ফাইল যা আকার, সময় এবং MD5 চেকসামে পরিবর্তিত হয়েছে। "rdate" এর মোড পরিবর্তন হয়েছে ...

আরপিএম ডাটাবেস একটি খুব দরকারী জিনিস।

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