স্থানীয় এবং দূরবর্তী ফাইলগুলির মধ্যে একটি পার্থক্য চালান


39

আমি এর মাধ্যমে একটি হোস্টের সাথে সংযুক্ত আছি sshএবং আমি diffঅন্য হোস্টের সাথে তার প্রতিপক্ষের বিরুদ্ধে একটি নির্দিষ্ট কনফিগার ফাইল তুলনা করতে চাই (এর সাথে বলি ) ssh, ডিফটি চালানোর আগে প্রথমে ম্যানুয়ালি দূরবর্তী ফাইলটি ডাউনলোড না করেই এর মাধ্যমে অ্যাক্সেসযোগ্য ।


আপনি রিমোট ডিরেক্টরিটি ব্যবহার করে মাউন্ট করতে পারেন SSHFS, এবং তারপরে এটি স্থানীয় হিসাবে access
বার্মার

উত্তর:


57
ssh user@remote_host "cat remote_file.txt" | diff - local_file.txt

সূত্র


1
পাইপটি কেবলমাত্র ফলাফলগুলি ডাউনলোড করবে না cat, যা বাস্তবে কেবল আসল ফাইল?
স্টিজন ডি উইট

1
পাইপ রিমোট sshকমান্ডের ফলাফলটিকে ধাক্কা দেবে diffযা stdinলোকালফাইলে তুলনা করতে অপেক্ষা করছে ।
fduff

1
সম্ভবত আমি 'দূরবর্তী ফাইলটি ডাউনলোড না করেই' প্রয়োজনীয়তার ভুল ব্যাখ্যা করছি। আমি অনুমান করি ওপি এর অর্থ 'ম্যানুয়ালি দূরবর্তী ফাইলটি ডাউনলোড না করেই'। :) সম্পাদনা: আহ, আপনি ওপি। :)
স্টিজন ডি উইট

@ স্টিজেডেভিট, হ্যাঁ আমি প্রথমে দূরবর্তী ফাইলটি
স্কিপ করা

18

চেষ্টা করুন:

diff local_file <(ssh user@server 'cat remote_file')

বা ব্যবহার vimdiff:

vimdiff local_file scp://server//path/to/remote_file

কি diff local_file <(ssh user@server 'cat remote_file')শুধুমাত্র passwordless, SSH জন্য কাজ করে? আমি এটির সাথে একটি পাসওয়ার্ড প্রম্পট পেতে সক্ষম হবে বলে মনে হচ্ছে না ...
sdbbs

1
@ এসডিবিবিএস: প্রক্রিয়া বিকল্পটি ব্যাকগ্রাউন্ডে ছুটেছিল এবং মানক আউটপুট নামক পাইপে (বা নামবিহীন নামযুক্ত পাইপ) লিখিত হয়, যাতে আপনি পাসওয়ার্ড প্রম্পটটি পান না। ব্যবহার করে দেখুন cat <(ssh user@server 'cat remote_file')এবং cat < <(ssh user@server 'cat remote_file')পার্থক্য দেখতে।
cuonglm

9

সম্ভবত এটি আপনার সঠিক ক্ষেত্রে সহায়ক না তবে আমি প্রায়শই সহজভাবে ব্যবহার করি

sum -r

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


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

1
কমান্ডিং info coreutils 'sum invocation'বলছে, অন্যদিকে: "'যোগফল' সামঞ্জস্যতার জন্য সরবরাহ করা হয়েছে; নতুন অ্যাপ্লিকেশনগুলিতে 'cksum' প্রোগ্রাম (পরবর্তী বিভাগটি দেখুন) ভাল।"
তীমু লেইস্তি

1

আপনি যদি টার্মিনাল সেশনে আরও চাক্ষুষ দৃষ্টিভঙ্গি পছন্দ করেন। মধ্যরাতের কমান্ডারের কাছে একটি রিমোট ফাইল সিস্টেম বিকল্প (মেনুতে এসএফটিপি লিংক ... বিকল্প) এবং ভিজ্যুয়াল ফাইল তুলনা বিকল্প রয়েছে। এটি বেশিরভাগ লিনাক্স সিস্টেমে ডিফল্টরূপে ইনস্টল করা হয় না তবে বেশিরভাগ বেস রেপোজিটরিগুলিতে পাওয়া যায়। পদক্ষেপ:

  1. mcতুলনা করার জন্য ফাইলটি ধারণ করে ফোল্ডারে মধ্যরাতের কমান্ডার (কমান্ড :) শুরু করুন
  2. অন্যদিকে (উদাহরণস্বরূপ ডান মেনু) একই ফোল্ডারে ( sftp://<user>@<servername>/<path>) এর অন্যান্য সার্ভারে একটি এসএফপি লিঙ্ক তৈরি করুন ।
  3. insকী ব্যবহার করে তুলনা করতে ফাইলগুলি নির্বাচন / হাইলাইট করুন। ( tabবাম এবং ডান প্যানেলের মধ্যে পরিবর্তন)।
  4. ইন কমান্ড মেনু, নির্বাচন তুলনা ফাইল

দ্রষ্টব্য: মধ্যরাতের কমান্ডার মেনুটি সাধারণত আপনার টার্মিনাল সেশনে মাউস ব্যবহার করে অ্যাক্সেস পেতে পারে। এটি যে কাজ করে না তা F9আপনাকে মেনুতেও পেয়ে যায়।

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