প্রশ্ন Ssh উপর diff না কিভাবে?


আমি কিভাবে মেশিনে জুড়ে ফাইল / ফোল্ডার diff না যে উপলব্ধ শুধুমাত্র সংযোগ ssh হয়?


166
2017-08-26 17:17


উত্স


একটি অপেক্ষাকৃত অনুরূপ প্রশ্ন আছে # 16661: কিভাবে আমি দুটি রেডহ্যাট লিনাক্স সার্ভারে পার্থক্য করতে পারি?। সেখানে ক্লিক, সংরক্ষণ করার জন্য, উত্তর rsync -ani --delete / root@remotehost:/ কিন্তু সম্পূর্ণ উত্তর আরো বিস্তারিত দেয়। - Owen Blacker
এখানে অনেক উত্তর, কিন্তু কোন পদ্ধতি দ্রুত? - pl1nk
কেউ ব্যবহার করে না চাক্ষুষ diff সরঞ্জাম? - Dan Dascalescu


উত্তর:


আপনি বাশ এর সাথে এটি করতে পারেন প্রক্রিয়া প্রতিস্থাপন:

 diff foo <(ssh myServer 'cat foo')

অথবা, উভয় রিমোট সার্ভারে থাকলে:

diff <(ssh myServer1 'cat foo') <(ssh myServer2 'cat foo')

143
2017-08-26 17:22



হ্যাঁ, এই মত কিছু, কিন্তু ডিরেক্টরি জন্য :) - Alexey Timanovsky
আপনি ডিরেক্টরি জন্য অর্থ কী, সবসময় ls সঙ্গে বিড়াল প্রতিস্থাপন করতে পারে - Kyle Brandt♦
আমি সন্দেহ করি যে 'ডিরেক্টরিগুলির জন্য' একটি পুনরাবৃত্তিমূলক পার্থক্য করা মানে - Ian Clelland
আমি আমার দূরবর্তী হোস্ট একটি পাসওয়ার্ড প্রয়োজন হলে এই কৌশল আমার জন্য কাজ করে না। পাসওয়ার্ড প্রম্পট পুনঃনির্দেশনার সাথে ভালভাবে কাজ করে বলে মনে হচ্ছে না এবং সফলভাবে সম্পন্ন করা যায়নি। আপনি ssh কী ব্যবহার করলে এটি একটি সমস্যা হতে পারে না। - Adam Franco
এটি অনেক সমস্যার একটি মহান সাধারণ সমাধান। 'Cat foo' এর পরিবর্তে আপনি 'find / foo / bar-type f f ব্যবহার করতে পারেন ফাইল পড়া যখন; echo "**** $ ফাইল"; বিড়াল "$ ফাইল"; সম্পন্ন করা হয়েছে এবং আপনার কাছে ফাইল নাম এবং ফাইল সামগ্রীগুলির একটি তালিকা রয়েছে। - Paul Gear


অবশেষে আমি মহান সমাধান খুঁজে পেয়েছি: vimdiff

vimdiff /path/to/file scp://remotehost//path/to/file

ধন্যবাদ http://linux.spiney.org/remote_diff_with_vim_and_ssh আরো দেখুন http://www.vim.org/scripts/script.php?script_id=1075 ।


99
2018-05-15 08:55



ভিমডিফ মিষ্টি, ধন্যবাদ! - Max Felker
ডিরেক্টরি সম্পর্কে কি? :) - Perlnika
এখানে একটি উদাহরণ: ভিমিডিফ। Bash_profile scp: //vaibhavc@10.217.212.97//home/vaibhavc/.bash_profile - vaichidrewar
2 স্ল্যাশ // পরে remotehost গুরুত্বপূর্ণ। একক স্ল্যাশ কাজ করবে না - Lee Chee Kiam
আপনার বর্তমান হোস্টের থেকে রিমোট হোস্টে আপনার যদি অন্য ব্যবহারকারীর নাম থাকে তবে আপনি এটি ব্যবহার করবেন vimdiff /path/to/file scp://username@remotehost//path/to/file - JaredC


আপনি যদি প্রকৃত ফাইলগুলির একটি পার্থক্যের পরিবর্তে কোনও ফাইলটি দেখতে চান তবে আপনি এটি ব্যবহার করতে পারেন rsync --dry-run


58
2017-09-04 11:14



rsync-n সংক্ষিপ্ত সংস্করণ। - volni
দুর্দান্ত - যদি আপনাকে অন্য পোর্ট ব্যবহার করতে হয় তবে rsync -e "ssh -p 2222" <SRC> <DST> ব্যবহার করুন - Samoth


এখানে আরেকটি দ্রুত এবং নোংরা কমান্ড লাইন রেসিপি। নির্বাচিত উত্তর থেকে ভিন্ন, এটি মেকফাইলের ভিতরে কাজ করে:

ssh [login]@[host] "cat [remote file]" | diff - "[local file]"

15
2017-12-27 18:43



যদি আমার সম্পাদনাটি চলতে না পারে: এই পদ্ধতিটি নির্বাচিত উত্তরটির তুলনায় উচ্চতর কারণ এটি মেকফিলগুলির সাথে কাজ করে। - Chris Redford
@ স্টেভ ডিকিনসন - "মেকফিলের ভিতরে কাজ করে" এর অর্থ কী? - Martin Vegter
আপনি নিজেকে মত ভিআইপি এলার্জি ভোগ করছি যদি এটি একটি চমৎকার সমাধান। :) আমি একটি বিশ স্ক্রিপ্ট তৈরি করেছি যা একই ফাইলটিকে দুটি ভিন্ন হোস্টের সাথে তুলনা করে, যখন মেশিনগুলির মধ্যে পরিষেবাগুলি স্থানান্তরিত করা এবং কনফিগারেশন ফাইলগুলির তুলনা করা যায়। দেখ gist.github.com/jhqv/dbd59f5838ae8c83f736bfe951bd80ff - Janek


একটি সাধারণ মেশিনে ফাইল আনতে scp ব্যবহার করুন এবং সেখানে তাদের diff?

অথবা, যদি আপনি শুধু ফাইল জানতে চান হয় বিভিন্ন বা না, তাদের প্রতিটি মেশিনে md5sum সঙ্গে হ্যাশ।

আপনি মত কিছু দেখতে পারে SSHFS, কিন্তু আমি পার্থক্য মত একটি অ্যালগরিদম কত ভাল যে জানি না।


10
2017-08-26 17:19



ফাইল ভিন্ন কিনা তা দেখতে সহজ উপায় rsync --dry-run। - Gerald Combs
আমি SSHFS সম্পর্কে ভুলে গেছি। এটি আমার জন্য কাজ করে মহান... - arod


এক্ষেত্রে, আপনার সিস্টেমে যদি এটি সম্ভব হয় তবে কেবল দূরবর্তী ফাইল সিস্টেমটি মাউন্ট করতে হবে sshfs


7
2017-08-26 17:19



diff সাধারণত কনফিগার পার্থক্য চেক করতে, এক শট কর্ম হয়। মাউন্টিং ফাইল সিস্টেম প্রতিটি সময় সম্ভব, কিন্তু বিশ্বাসযোগ্য নয়। আমি ভাল tar এবং scp চাই। - Alexey Timanovsky


তুমি ব্যবহার করতে পার rsync শুষ্ক রান মোডে, হিসাবে সংক্ষিপ্তভাবে পরামর্শ অন্য উত্তর। এটি বিভিন্ন যে কোন ফাইল তালিকা।

যে জন্য, ব্যবহার করুন rvnc অপশন (r= রিকার্সিভ, v= বাগাড়ম্বরপূর্ণ, n= শুষ্ক রান, c= চেকসাম)। সঙ্গে rsync পুল মোডে (rsync [OPTION...] [USER@]HOST:SRC... [DEST]), একটি উদাহরণ হল:

rsync -rvnc root@182.18.158.207:/var/www/html/dev/ .

মনে রাখা, এটি স্থানীয় বা দূরবর্তী ফাইলটি নতুন কিনা তা সম্পর্কে কোন তথ্য সরবরাহ করে না। তারা ভিন্ন হলে শুধু।


3
2018-04-29 12:21





  • আপনার স্থানীয় মেশিনে, আপনি যে বিভাজকটি বিন্যস্ত করতে চান তার একটি পুনরাবৃত্তিমূলক অনুলিপি তৈরি করুন। এই ক্ষেত্রে:

    cp -R dir replica
    
  • স্থানীয় কপি থেকে রিমোট ডিরেক্টরিটি প্রতিলিপি করতে rsync ব্যবহার করুন:

     rsync remote:/path/to/dir replica
    
  • স্থানীয় ডিরেক্টরি এবং দূরবর্তী একটি স্থানীয় প্রতিলিপি মধ্যে পার্থক্য খুঁজে পেতে diff ব্যবহার করুন:

    diff dir replica
    

2
2018-01-30 13:16





আপনি sshfs আছে এবং ডিফার ডিরেক্টরি প্রয়োজন হলে:

mkdir remote_path
sshfs user@host:/path/ remote_path
diff -r path remote_path

2
2017-11-10 05:22